Symantec CONFLICTMANAGER 8.0 - REFERENCE V1.0, CONFLICTMANAGER Reference

ConflictManager Reference
ConflictManager
The software described in this book is furnished under a license agreement and may be used only in accordance with the terms of the agreement.
Documentation version 8.0
Copyright © 2009 Symantec Corporation. All rights reserved. Symantec, the Symantec Logo, and Altiris are trademarks or registered trademarks of Symantec Corporation or its affiliates in the U.S. and
other countries. Other names may be trademarks of t heir respective owners. The product described in this document is distributed under licenses restricting its use, copying, distribution, and decompilation/reverse
engineering. No part of this document may be reproduced in any form by any means without prior written authorization of Symantec Corporation and its licensors, if any.
THE DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE E XTENT THAT SUCH DISCLAIMERS ARE HELD T O BE LEGALLY INV ALID . SYMANTE C CORPORATION SHALL NOT BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS DOCUMENTATION. THE INFORMATION CONTAINED IN THIS DOCUMENTATION IS SUBJECT TO CHANGE WITHOUT NOTICE.
The Licensed Software and Documentation are deemed to be commercial computer software as defined in FAR 12.212 and subject to restricted rights as defined in FAR Section 52.227-19 “Commercial Computer Software - Restricted Rights” and DFARS 227.7202, “Rights in Commercial Computer Software or Commercial Computer Software Documentation”, as applicable, and any successor regulations. Any use, modification, reproduction release, performance, display or disclosure of the Licensed Software and Documentation by the U.S. Government shall be solely in accordance with the terms of this Agreement.
Symantec Corporation 350 Ellis Street Mountain View, CA 94043
http://www.symantec.com
ConflictManager Reference 2
Technical Support
Symantec Technical Support maintains support centers globally. Technical Support’s primary role is to respond to specific queries about product features and functionality. The Technical Support group also creates content for our online Knowledge Base. The Technical Support group works collaboratively with the other functional areas within Symantec to answer your questions in a timely fashion. For example, the Technical Support group works with Product Engineering and Symantec Security Response to provide alerting services and virus definition updates.
Symantec’s maintenance offerings include the following:
z A range of support options that give you the flexibility to select the right amount of
service for any size organization
z Telephone and Web-based support that provides rapid response and up-to-the-
minute information
z Upgrade assurance that delivers automatic software upgrade protection z Advanced features, including Account Management Services
For information about Symantec’s Maintenance Programs, you can visit our Web site at the following URL:
www.symantec.com/techsupp/
Contacting Technical Support
Customers with a current maintenance agreement may access Technical Support information at the following URL:
www.symantec.com/techsupp/
Before contacting Technical Support, make sure you have satisfied the system requirements that are listed in your product documentation. Also, you should be at the computer on which the problem occurred, in case it is necessary to replicate the problem.
When you contact Technical Support, please have the following information available:
z Product release level z Hardware information z Available memory, disk space, and NIC information z Operating system z Version and patch level z Network topology z Router, gateway, and IP address informa tion z Problem description:
Error messages and log files Troubleshooting that was performed before contacting Symantec Recent software configuration changes and network changes
ConflictManager Reference 3
Licensing and registration
If your Symantec product requires registration or a license key, access our technical support Web page at the following URL:
www.symantec.com/techsupp/
Customer service
Customer service information is available at the following URL:
www.symantec.com/techsupp/
Customer Service is available to assist with the following types of issues:
z Questions regarding product licensing or serialization z Product registration updates, such as address or name changes z General product information (features, language availability, local dealers) z Latest information about product updates and upgrades z Information about upgrade assurance and maintenance contracts z Information about the Symantec Buying Programs z Advice about Symantec’s technical support options z Nontechnical presales questions z Issues that are related to CD-ROMs or manuals
Maintenance agreement resources
If you want to contact Symantec regarding an existing maintenance agreement, please contact the maintenance agreement administration team for your region as follows:
Asia-Pacific and Japan customercare_apac@symantec.com Europe, Middle-East, and Africa semea@symantec.com North America and Latin America supportsolutions@symantec.com
Additional enterprise services
Symantec offers a comprehensive set of services that allow you to maximize your investment in Symantec products and to develop your knowledge, expertise, and global insight, which enable you to manage your business risks proactively.
Enterprise services that are available include the following:
Symantec Early Warning Solutions
Managed Security Services
These solutions provide early warning of cyber attacks, comprehensive threat analysis, and countermeasures to prevent attacks before they occur.
These services remove the burden of managing and monitoring security devices and events, ensuring rapid response to real threats.
ConflictManager Reference 4
Consulting Services
Educational Services
To access more information about Enterprise services, please visit our Web site at the following URL:
www.symantec.com
Select your country or language from the site index.
Symantec Consulting Services provide on-site technical expertise from Symantec and its trusted partners. Symantec Consulting Services offer a variety of prepackaged and customizable options that include assessment, design, implementation, monitoring, and management capabilities. Each is focused on establishing and maintaining the integrity and availability of your IT resources.
Educational Services provide a full array of technical training, security education, security certification, and awareness communication programs.
ConflictManager Reference 5
Contents
Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Chapter 1: Introduction to ConflictManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
About ConflictManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Starting ConflictManager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Opening and Closing Software Manager Databases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
About the ConflictManager Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Customizing the ConflictManager Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Refreshing the ConflictManager Display. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Viewing Package Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
About Conflicts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Hash Value Comparisons in Conflict Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Finding and Viewing the Right Conflicts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Resource Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Types of Conflicts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Product Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Chapter 2: Setting Up ConflictManager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
About Conflict Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Defining Types of Conflicts to Detect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Excluding Files and Directories From Conflict Detection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Excluding Registry Keys From Conflict Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Conflict Resolution Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Predefined Rule Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Creating a New Rule Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Chapter 3: Conflict Detection and Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
About Conflict Detection and Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Prerequisites for Conflict Detection and Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Process for Resolving Conflicts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Detecting Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Stopping Conflict Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Viewing Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
When Conflict Detection Yields Unexpected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Filtering the Conflict Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Hiding Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Conflict Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Guidelines for Resolving File Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Copying File Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Isolating Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Resolving File Conflicts With Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Resolving File Conflicts Individually. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Resolving Registry Conflicts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Resolving INI Conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Restrictions on Resolving and Exporting Package Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Package Export After Conflict Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Exporting a Single Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Exporting and Recompiling Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
ConflictManager Reference 6
ConflictManager Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Generating a ConflictManager Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Saving a ConflictManager Report Directly to a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Using the Report Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Interpreting the Conflict Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
ConflictManager Reference 7
Chapter 1
Introduction to ConflictManager
This chapter includes the following topics:
z About ConflictManager on page 8 z Starting ConflictManager on page 9 z About the ConflictManager Window on page 10 z About Conflicts on page 13 z Product Documentation on page 17
About ConflictManager
ConflictManager is a tool in the Professional Edition of Wise Package Studio. Use ConflictManager to detect and resolve conflicts between packages in the Software
Manager database. After conflicts are resolved, you export and recompile resolved installations, which are then ready for deployment.
Conflicts between software packages are a time-consuming and costly issue in the Windows workstation environment. Software packages that run independently without incident often fail when installed together due to file and other conflicts. Conflicts can occur for many reasons, but they most commonly occur when two installed packages use a DLL with the same name. Example: Suppose Package 1 installs version 1.0.0.4 of a file named report.dll. Package 2 installs a newer version of the same file, version
2.0.0.1. When the two packages are installed on the same computer, Package 1 might conflict with the newer version of report.dll that is installed by Package 2. This conflict could cause a General Protection Fault, a hung application, or some other problem.
ConflictManager helps you avoid software conflicts. It detects conflicts that would be virtually impossible to find efficiently using any other method and helps you achieve conflict-free computers throughout your organization.
Major features of ConflictManager include:
z A means to detect and view conflicts between packages. z Conflict resolution rules that let you resolve conflicts automatically, saving time,
reducing errors, and providing consistency in conflict resolution. You can create and edit the resolution rules.
z A Resolve wizard that steps you through the process of resolving file conflicts. z Reports that help you review and analyze conflicts detected by ConflictManager. z The ability to export and recompile resolved installations individually or in a batch.
Note
(Enterprise Management Server only.) ConflictManager menu commands that you do not have permission to use are unavailable. Functional security for ConflictManager is set in the Wise Package Studio Security Setup.
ConflictManager Reference 8
See Setting Software Manager and ConflictManager Security in the Wise Package Studio Help.
Starting ConflictManager
To start ConflictManager
1. In Wise Package Studio, do one of the following:
On the Projects tab, click the Run link to the right of the task or tool associated
with ConflictManager.
On the Tools tab, double-click ConflictManager.
2. If the database contains packages but conflicts have not been detected yet, the Detect Conflicts dialog box appears. If you previously were working in multiple databases, a message appears listing the databases requiring conflict detection.
To detect conflicts, select applications and click OK.
See Detecting Conflicts on page 30.
To start ConflictManager without detecting conflicts, click Cancel.
Introduction to ConflictManager
Which Database is Opened?
The first time you start ConflictManager, it opens the Software Manager database that you connected to during installation. Thereafter, ConflictManager opens the database most recently used by either Software Manager or ConflictManager. With Enterprise Management Server, multiple databases might open.
When you start ConflictManager from a task that specifies the database in its command­line options, the specified database is opened.
If ConflictManager cannot find the default Software Manager database, the Database Setup wizard starts. Do the following:
z If the Applications in Use dialog box appears, close the applications listed, close
ConflictManager, and click Next.
z On the Share Point Directory page, specify the share point you are using and click
Next. Then set up the database as described in Setting Up Database Connections and Authentication in the Getting Started Guide.
Opening and Closing Software Manager Databases
¾ Enterprise Management Server only.
You can open multiple Softw are Manager databases simultaneously. This lets you browse multiple databases in Software Manager and ConflictManager, and work in a second database without closing the first one.
One database must always be open in ConflictManager.
To open an additional database
1. If the database does not exist, create a new database and then create an ODBC DSN entry. See Creating Software Manager Databases in the Getting Started Guide.
2. Select File menu > Open Database.
ConflictManager Reference 9
The Select Data Source dialog box appears. This is a standard Windows ODBC connection wizard, which lets you connect to a database through an ODBC data source.
3. Connect to the database. If you need help, ask your database administrator. The database’s contents are listed in the Applications/Packages pane.
4. To make a database active, click anywhere in its tree. All ConflictManager activities are performed within the active database.
To close a database
1. Select File menu > Close Database. The Close Database dialog box appears.
2. Mark the check box next to the database or databases to close and click OK.
See About the Software Manager Database and Multiple Software Manager Databases in the Software Manager Help.
About the ConflictManager Window
Introduction to ConflictManager
Toolbar
Groups pane
Applications/ Packages pane
When you start ConflictManager, you see the main Confl ictManager window . Some of the panes might be empty if no packages are in the Software Manager database.
Panes of the ConflictManager window
Status bar
Summary pane
Conflict List
Conflict Details pane
ConflictManager Reference 10
Introduction to ConflictManager
Toolbar
Contains buttons for quick access to many ConflictManager commands and to Software Manager. While conflict detection is running, its status appears at the right end of the toolbar.
Summary Pane
Displays different information depending on what is selected in the Applications/ Packages pane:
z When you select a database, the Summary pane displays the current filter criteria. z When you select an application, the Summary pane lists the packages contained in
that application.
z When you select a package, the Summary pane displays a summary of the types of
conflicts, if any, in that package. If the package is read-only, Read Only appears in parentheses at the end of the second line.
The Summary pane initially appears immediately below the toolbar, but you can move or hide it.
Groups Pane
Displays the package group defined for each database. A package group consists of a subset of the packages in the database. When a group is selected, the Applications/ Packages pane lists only the packages assigned to that group. This lets you reduce the number of conflicts that appear.
See Package Groups in the Software Manager Help. The Groups pane initially appears on the left side of the window below the Summary
pane, but you can move or hide it.
Applications/Packages Pane
Displays the applications and packages in the Software Manager database. Expand an application to display its packages. Select a package to make it the active package.
(Enterprise Management Server only.) When multiple databases are open, select a database in the Applications/Packages pane to make it the active database. All ConflictManager activities are performed within the active database.
Icons appear in this pane to help you quickly identify items in the database. See Icons in Software Manager in the Software Manager Help.
Conflict List
Displays conflicts between the package selected in the Applications/Packages pane and all other packages in the database. If a package group is selected in the Groups pane, only the conflicts between the selected package and the packages in the group are displayed.
Icons appear in this pane to help you quickly identify the types of resources and conflicts that are displayed.
See Resource Conflicts on page 16 and Types of Conflicts on page 17.
ConflictManager Reference 11
Conflict Details Pane
Displays resources in other packages that conflict with the item selected in the Conflict List. You can sort the items in this pane by clicking a column header, and you can re­order the columns by dragging the column headers. Double-click an item in this pane to display the Properties dialog box.
See Viewing Conflicts on page 31.
Customizing the ConflictManager Workspace
z Hide or show the Packages or Groups panes by clicking the Select tool on the
toolbar. Because you often don’t need these panes after you use them to make your initial selections, this tool can quickly make your working area less cluttered.
z Hide or show the toolbar or the Summary pane by selecting its name from the View
menu.
z Move, dock, and undock the panes as you would any Windows pane, by dragging
their title area.
The Conflict List and Conflict Details panes cannot be hidden or moved.
Refreshing the ConflictManager Display
Introduction to ConflictManager
z Select File menu > Refresh.
This clears the Conflict List and Conflict Details panes, rereads the package data, and redisplays the conflict information. This can be useful if packages have been added to the Software Manager database since you started this ConflictManager session.
Viewing Package Attributes
In ConflictManager, you can view package attributes but, except for meta data, you cannot edit them. To edit package attributes, use Software Manager.
See Viewing and Editing Package Attributes in the Software Manager Help.
To view package attributes
1. In the Applications/Packages pane, select a package.
Note
Be sure to select a package; you cannot display attributes for an application.
2. Select Packages menu > Attributes. The Package Attributes dialog box appears.
3. Click the General tab to view general information about the package, or to edit package meta data.
The Package Meta Data section contains both predefined and custom meta data fields. To edit custom meta data, click in the Value column and enter or select a value. If the field requires a URL, include http:// or other tag (mailto:, ftp:, file:) so that the field will become an active hyperlink on the Package pane.
The predefined meta data is read-only. To edit predefined meta data, use the Product Details page in Windows Installer Editor.
ConflictManager Reference 12
With Enterprise Management Server, Security Setup determines whether you can edit meta data in Software Manager and ConflictManager.
4. Click the Source tab to view the location of the package installation file and any transforms and patches that were applied to the package.
5. Click OK.
See also: About Package Meta Data in the Software Manager Help
About Conflicts
ConflictManager finds and lets you resolve conflicts caused when different packages install the same resources. To save time during conflict detection, ConflictManager only searches for the following situations:
z Duplicate files, of any type, in the Common Files directory and any subdirectory of
Windows, including the System directory. Example: If two packages install readme.txt in the Common Files directory, ConflictManager marks them as conflicts. If you don’t want ConflictManager to find conflicting readme.txt files, you can exclude that file, or any other files you don’t care about, from the conflict detection.
Introduction to ConflictManager
z Duplicate executable files only (.exe, .dll, and .ocx) in all other directories. Example:
If two packages install sslib.dll in the Program Files directory, it is considered a conflict.
z When multiple packages install the same system resource, such as registry keys,
Autoexec.bat, Config.sys, ODBC, NT services, devices, .ini files, shortcuts, and the PATH variable. Experienced users can resolve registry key and .ini file conflicts in ConflictManager. The other types of conflicts cannot be resolved in ConflictManager and are displayed for informational purposes only.
What Kind of Information Does ConflictManager Compare?
During conflict detection, ConflictManager searches the following information for each package and marks items that conflict:
File hash value File name Version Binary version Size Date/time Path Company Product 16 bit (Yes or No) Registry key value
ConflictManager searches the following information for Windows Installer installations only:
Component GUID KeyPath Resource count Shared DLL
ConflictManager Reference 13
View this information:
z In the Conflict Details pane when you select a conflict in the Conflict List. z In the Resolve wizard, which you start by selecting Conflicts menu > Resolve. z On the Properties dialog box, which you open by double-clicking a package in the
Conflict Details pane.
Hash Value Comparisons in Conflict Detection
The Import Wizard in Software Manager scans every source file in a package and, if it can find the file, it generates a hash value for that file. If the file cannot be found (example: if its source path is broken), a hash value is not generated.
A hash value is a number that is generated from every byte in the file, in such a way that it is extremely unlikely that some other file will produce the same hash value. ConflictManager can use the file hash value to find conflicts.
Example: Two packages install files with identical names at the same location.
z If both files have a hash value, ConflictManager compares them. Matching hash
values mean that the files are the same and a conflict will not occur; non-matching hash values mean that the files are not the same and there is a conflict. Further conflict checks are not necessary.
Introduction to ConflictManager
z If only one file has a hash value, or neither file has a hash value, then
ConflictManager compares other file information (version, size, date/time, and so on).
See About Conflicts on page 13.
Generating the hash values can slow the package import. However, using hash value comparisons results in faster conflict detection and analysis because, once it compares the hash values, ConflictManager does not have to compare anything else. Hash value comparison also results in 100% accurate file conflict detection because it eliminates false positives (example: files that are the same at the byte level but have different date/time stamps).
The hash value is displayed in the Conflict Details pane in ConflictManager, and on the conflict resolution dialog boxes.
T o us e hash v alue comparison, mark the Use file hash values to determine conflicts check box in Conflict Settings.
See Defining Types of Conflicts to Detect on page 19.
Finding and Viewing the Right Conflicts
ConflictManager provides flexibility in the types of conflicts you can detect, and lets you filter out items that might otherwise be identified as conflicts. This lets you see only the types of conflicts that are important in your environment.
Define conflict settings.
Conflict settings determine the type of conflicts that are detected and the files and registry keys that are excluded from conflict detection.
See About Conflict Settings on page 19.
ConflictManager Reference 14
Introduction to ConflictManager
Filter the conflict display.
The conflict display filter determines which packages and conflicts appear in the Applications/Packages, Conflict List, and Conflict Details panes.
See Filtering the Conflict Display on page 33.
Ignore conflicts when components are permanent.
When two Windows Installer applications install components with identical resources, but different component GUIDs, ConflictManager detects a conflict. This happens because Windows Installer installs and uninstalls resources at the component level. Therefore, uninstalling one of the applications could result in the removal of one or more of the resources required by the other application. However, when the components for all such applications are marked to remain permanently installed, this conflict does not occur. The permanent component remains installed even if all of the applications associated with that component are uninstalled. ConflictManager does not consider such cases to be conflicts.
Hide conflicts.
Conflicts that are identified by ConflictManager are often found to be harmless upon further testing. To filter these harmless conflicts from the conflict display, you can designate certain conflicts between specific packages to be ignored, or hidden.
To designate a conflict as hidden, (or to remove the “hidden” designation), click the Application Name column and then right-click the conflict in the Conflict Details pane.
The Conflict Settings dialog box contains a check box, Display Conflicts Marked as Hidden, that lets you show hidden conflicts.
See Hiding Conflicts on page 34.
Resolve Formatted Registry Values for Conflict Detection
Registry entries in Windows Installer and WiseScript packages can use formatted text strings that, when evaluated literally, might lead to false positives during conflict
detection. To avoid this problem, Software Manager resolves the formatted text strings during import of the following types of packages: .WSI, .MSI, .MSM, .MSP, .MST, .WSE.
Example: Application 1 creates a registry key under HKLM\Software\InstallDirK ey with a value of [$comp1]. Application 2 creates a registry key under HKLM\Software\InstallDirKey with a value of [$comp4]. During installation, both [$comp1] and [$comp4] evaluate to the same value. If these values were not resolved, ConflictManager would identify this as a conflict. However, because Software Manager resolves the values during import, and stores them in the Software Manager database, a conflict is not detected, which is the correct behavior.
SoftwareManager resolves all properties in a Windows Installer installation. In a WiseScript installation (.WSE), SoftwareManager resolves only the following predefined variables:
WiseScript variable Resolves to
%Common% Program Files\Common %fonts% Windows\Fonts
ConflictManager Reference 15
WiseScript variable Resolves to
%MainDir% Program Files\default maindir
%Program_Files% Program Files %Sys% Windows\System %Sys32% Windows\System32 %Win% Windows
When the package resource appears in Software Manager and ConflictManager, the resolved value is displayed instead of the formatted text string.
Resource Conflicts
You use ConflictManager primarily to find file conflicts, but it also can find conflicts between other resources. The resource type is indicated by an icon that appears to the left of the conflict item in the Conflict List and Conflict Details panes.
Introduction to ConflictManager
or, if default maindir is empty: Program Files
An icon to the left of the resource icon indicates the conflict type. See Types of Conflicts on page 17.
Icon Resource type Conflict caused by
Files and components
Registry Registry keys and named values that are set differently by multiple packages
Autoexec.bat Changes to Autoexec.bat that are made by multiple packages. These conflicts do
Config.sys Changes to Config.sys that are made by multiple packages. These conflicts do not
ODBC ODBC data source and driver conflicts that occur when the registry entries of
Service Windows NT services of the same name that are installed by multiple packages
z Files with identical names and different file hashes that are installed at the
same location by multiple packages
z Windows Installer components that have matching key files, but one or both
contain additional non-advertising resources
z Windows Installer components that have additional resources that conflict with
a file in a WiseScript installation
not occur in Windows Installer installations.
occur in Windows Installer installations.
multiple packages configure the same driver differently
Device Device drivers that are installed in Win.ini by multiple packages. These conflicts do
not occur in Windows Installer installations.
.INI file .INI files and entries that are changed by multiple packages
Shortcut Shortcuts of the same name that are installed by multiple packages
ConflictManager Reference 16
Icon Resource type Conflict caused by
Path Changes to the PATH variable made by multiple packages. These conflicts do not
occur in Windows Installer installations.
Types of Conflicts
Conflicts are classified as either warnings, errors, or information. After conflict detection, conflicts are displayed in the Conflict List and Conflict Details panes. An icon to the left of the resource icon indicates the conflict type.
See Resource Conflicts on page 16. An icon whose color is dimmed indicates that the conflict has been designated as hidden. See Hiding Conflicts on page 34.
Icon Conflict type Represents
Warning Conflicts that are not critical but might require some attention. A warning occurs
when multiple packages install a non-16-bit file with the same file name but different hash values or different file information (file ve rsion number or date/time) to different directories.
Error More serious conflicts that deserve careful inspection. Errors can occur in the
following situations:
Introduction to ConflictManager
z When multiple packages install files of the same name and different hash
values to the same directory.
z When multiple packages install files of the same name and same hash value to
the same directory, but the component GUIDs do not match.
z When multiple packages install a non-16-bit file of the same name with
different file information to the same directory . Because 16-bit DLLs are shared by all packages, any 16-bit DLLs installed to different directories with the same file name but different file information are marked as errors.
z When multiple packages set the same registry key to different values.
Other types of errors are possible. See Guidelines for Resolving File Conflicts on page 35.
Information
z When multiple packages install a non-16-bit file with identical file information
or the same hash value to the same directory or to different directories.
z When multiple packages set the same registry key to the same value.
Because these are not true conflicts, they do not appear in ConflictManager. However, they appear in the Package Details pane in Software Manager.
Product Documentation
This documentation assumes that you are proficient in the use of the Windows operating system. If you need help using the operating system, consult its user documentation.
Use the following sources of information to learn about this product.
ConflictManager Reference 17
Introduction to ConflictManager
Online Help
The online help contains detailed technical information and step-by-step instructions for performing common tasks.
Access help in the following ways:
z To display context-sensitive help for the active window or dialog box, press F1. z To select a help topic from a table of contents, index, or search, select Help menu >
Help Topics.
Reference Manual
All the material in the online help is also available in a .PDF-format reference manual, which you can access by selecting Help menu > Re ference Manual.
Getting Started Guide
The Getting Started Guide contains system requirements, installation in structions, and a tutorial. You can access a .PDF version of the Getting Started Guide from the Windows Start menu.
The installation and repository management sections of the Getting Started Guide are also available as online help. In the Wise Repository Manager, select Help menu > Help Topics, or click the Help button on any of the Wise Package Studio installation dialog boxes.
Release Notes
The product release notes cover new features, enhancements, bug fixes, and known issues for the current version of this product. T o access the release not es, select Release
Notes from the Symantec program group on the Windows Start menu.
ConflictManager Reference 18
Chapter 2
Setting Up ConflictManager
This chapter includes the following topics:
z About Conflict Settings on page 19 z Conflict Resolution Rules on page 24
About Conflict Settings
Conflict settings determine the type of conflicts that are detected and the files and registry keys that are excluded from conflict detection. This helps eliminate conflicts that don’t have a negative impact on any installation. Example: readme.txt is installed by many packages, but generally is not a conflict that you need to resolve. Therefore, you could specify that file to be excluded from conflict detection.
These settings are stored in the Software Manager database and affect any user who is connected to that database.
You define the conflict settings on the Conflict Settings dialog box, which you access by selecting Setup menu > Conflict Settings. This dialog box contains the following tabs:
Types Define the kinds of conflicts to detect.
See Defining Types of Conflicts to Detect.
Files / Directories Specify the directories and files to ignore during conflict
detection. See Excluding Files and Directories From Conflict Detection
on page 22.
Registry Keys Specify the registry subtrees and individual keys to ignore
during conflict detection. See Excluding Registry Keys From Conflict Detection on
page 23.
Note
If you change conflict settings after you run conflict detection, you must rerun conflict detection to apply the changes.
Defining Types of Conflicts to Detect
These settings are stored in the Software Manager database and affect any user who is connected to that database.
To define types of conflicts to detect
1. Select Setup menu > Conflict Settings > Types tab.
ConflictManager Reference 19
Setting Up ConflictManager
2. From File Conflicts, select an option.
Normal file conflicts (warnings and errors only)
Find files with the same name but different file information that are installed to the same directory or to different directories by multiple packages.
Normal conflicts plus informational
Find files with identical file information that are installed to the same directory or to different directories by multiple packages. Finding information conflicts slows conflict detection.
Do not detect file conflicts
Run conflict detection without looking for file conflicts. You might select this option to check for a specific type of conflict other than file conflicts.
3. Use file hash values to determine conflicts The Import Wizard in Software Manager scans every source file in a package and, if
it can find the file, it generates a hash value for that file. Mark this to use the hash value to find conflicts. Using hash value comparisons results in faster conflict detection and analysis because, once it compares the hash values, ConflictManager does not have to compare anything else.
See Hash Value Comparisons in Conflict Detection on page 14.
4. If file has version information, ignore date/time for conflict detection Mark this to ignore date and time differences between files that have the same
version and size. Clear this to have the conflict detection find date and time differences when all other file information is the same.
5. Ignore Component GUID mismatches if both files have the shared DLL counter set
Normally, installing two files with the same name to the same location when their component GUIDs do not match causes a conflict, even if th e shar ed DLL c ounter i s set for both files. When the shared DLL counter is set, problems are not likely to occur. Mark this check box to ignore such conflicts.
6. From Registry Conflicts, select an option.
Normal Registry conflicts (warnings and errors only)
Find registry keys that are set to different values by multiple packages.
Normal Registry plus informational conflicts
Find registry keys that are set to the same value by multiple packages. Finding information conflicts slows conflict detection.
Do not run registry conflicts
Run conflict detection without looking for registry conflicts. Y ou might select this option to check for file conflicts only, or for a specific type of conflict other than registry conflicts.
7. From Component Conflicts, select an option to determine whether to detect Windows Installer component conflicts.
Component conflicts involving files only
ConflictManager Reference 20
Find component conflicts involving files (example: components that install the same file but have different component GUIDs). Although these conflicts are legitimate, some organizations choose to ignore them because they believe that the Windows Installer self-healing functionality will resolve most of the problems they might cause.
Setting Up ConflictManager
Component conflicts involving registry keys only
Find component conflicts involving registry keys (example: components that update or create the same registry key but have different component GUIDs). Because these conflicts cannot be resolved from within ConflictManager, you might not want to see them.
Component conflicts involving files or registry keys
Find both types of component conflicts.
Do not display any component conflicts
Ignore component conflicts.
8. Mark any of the following check boxes to find additional conflicts.
Note
These check boxes are not often used because these types of conflicts are rarely found and cannot be resolved. Leaving these check boxes cleared speeds conflict detection.
Autoexec.bat
Find changes to Autoexec.bat that are made by multiple packages.
Config.sys
Find changes to Config.sys that are made by multiple packages.
ODBC
Find Open Data Base Connectivity (ODBC) data sources that are configured differently by multiple packages.
NT Services
Find Windows NT services that are installed by multiple packages.
Devices
Find device drivers that are installed in Win.ini by multiple packages.
INI Files
Find changes to .ini files that are made by multiple packages.
Shortcuts
Find shortcuts that are installed by multiple packages.
Path Additions
Find changes to the PATH variable that are made by multiple packages.
9. To run conflict detection when a package is imported into the Software Manager database, mark Detect conflicts during package import. This is marked by default.
You can override this setting during import by marking or clearing the Detect conflicts during package import check box on the Import Type page of the Import Wizard.
When conflict detection runs during import, it checks for conflicts between the imported package and all other packages; it does not re-detect conflicts between all packages.
10. To show conflicts that are designated as hidden, mark Display Conflicts Marked as Hidden.
You can designate certain conflicts between specific packages to be ignored during conflict detection. This lets you filter out conflicts that you determine to be
ConflictManager Reference 21
Setting Up ConflictManager
unimportant. To designate a conflict to be ignored, (or to remove the “ignore” designation), right-click the conflict in the Conflict Details pane.
11. To define additional settings, see:
Excluding Files and Directories From Conflict Detection on page 22 Excluding Registry Keys From Conflict Detection on page 23
12. Click OK on the Conflict Settings dialog box.
See also:
Finding and Viewing the Right Conflicts on page 14 Types of Conflicts on page 17
Excluding Files and Directories From Conflict Detection
On the Files/Directories tab of the Conflict Settings dialog box, specify files and directories to ignore during conflict detection. You can use wildcards to ignore all instances of a particular type of file within a directory.
Examples:
z Readme.txt z MSCREATE.DIR, entered as a wildcard under All Directories z *.txt
As you use ConflictManager, you might find additional files and directories that can be ignored. You can add them to the conflict settings at any time.
These settings are stored in the Software Manager database and affect any user who is connected to that database.
The upper-left list box contains a composite of all directories created on the destination computer by all packages in the Software Manager database. Some installed files or directories might be located in the Windows directory or the Program Files di rectory. When you select a directory in the upper-left list box, the upper-right list box contains the files in that directory.
Note
The upper-left list box contains information for all packages, even if a package group is selected in the Groups pane.
The lower list boxes contain the directory trees and files to ignore during conflict detection.
To exclude files from conflict detection
1. Select Setup menu > Conflict Settings. The Conflict Settings dialog box appears.
2. Click the Files/Directories tab.
3. In the upper-left list box, navigate to a directory.
4. In the upper-right list box, select a file name and click Add File. The file is added to the lower-right list box, and the corresponding directory
structure appears in the lower-left list box.
ConflictManager Reference 22
Setting Up ConflictManager
5. To define additional settings, see:
Defining Types of Conflicts to Detect on page 19 Excluding Registry Keys From Conflict Detection on page 23
6. Click OK on the Conflict Settings dialog box.
Note
If you delete a file from the lower-right list box and it empties the directory, the directory structure is still displayed temporarily but disappears after you close the Conflict Settings dialog box.
To exclude directories or wildcards from conflict detection
1. Select Setup menu > Conflict Settings. The Conflict Settings dialog box appears.
2. Click the Files/Directories tab.
3. In the upper-upper-left list box, navigate to a directory and click Add Tree. The Add Wildcard dialog box appears.
4. On the Add Wildcard dialog box:
To ignore all files in the directory, leave the Wildcard field blank. To ignore only certain files in the directory, enter a wildcard in the Wildcard
field. (Example: *.txt)
To apply your choice to all subdirectories of the directory also, mark Include
Sub-directories.
5. Click OK on the Add Wildcard dialog box. The Conflict Settings dialog box reappears with the directory added to the lower-left
list box. The lower-right list box contains files in that directory that should be ignored, and indicates whether they are applied to subdirectories. If you entered a wildcard, it appears in the Filename column. If you left the Wildcard field blank, a single asterisk (*) appears in the Filename column.
6. To define additional settings, see:
Defining Types of Conflicts to Detect on page 19 Excluding Registry Keys From Conflict Detection on page 23
7. Click OK on the Conflict Settings dialog box.
Excluding Registry Keys From Conflict Detection
On the Registry Keys tab of the Conflict Settings dialog box, specify registry key subtrees and registry values to ignore during conflict detection. As you use ConflictManager, you might find additional registry keys that can be ignored. You can add them to the conflict settings at any time.
These settings are stored in the Software Manager database and affect any user who is connected to that database.
The upper list boxes contain registry keys and values for all packages in the Software Manager database. The lower list boxes contain the keys and values to be ignored
ConflictManager Reference 23
Setting Up ConflictManager
during conflict detection. The left list boxes contain key structure, and the right list boxes contain values.
Note
The upper-left list box contains information for all packages, even if a package group is selected in the Groups pane.
To exclude registry keys from conflict detection
1. Select Setup menu > Conflict Settings. The Conflict Settings dialog box appears.
2. Click the Registry Keys tab.
3. In the upper-left list box, navigate to a registry key or value.
To ignore an en tire tree, select the key in the upper-left list box and click Add
Tree.
To ignore a value, select the value in the upper-right list box and click Add
Value.
The registry key tree or value is added to the corresponding lower list box.
4. To define additional settings, see:
Defining Types of Conflicts to Detect on page 19 Excluding Files and Directories From Conflict Detection on page 22
5. Click OK on the Conflict Settings dialog box.
Note
If you delete a value from the lower-right list box and it makes the key empty, the corresponding registry key subtree is still displayed temporarily but disappears after you close the Conflict Settings dialog box.
Conflict Resolution Rules
The ConflictManager resolution rules let you resolve file conflicts automatically. Using resolution rules saves time, reduces errors, and provides consistency in conflict resolution.
After you detect conflicts, you resolve the conflicts according to a rule set you select. The majority of conflicts can be resolved this way. If conflicts remain after resolving with rules, use the Resolve wizard.
See:
Resolving File Conflicts With Rules on page 39 Resolving File Conflicts Individually on page 40
About Rule Sets
A rule set is a collection of rules. A rule consists of actions, conditions, and sort options.
z An action states how a conflict will be resolved. z A condition determines the criteria that a conflict must meet in order for the action
to be performed. Example: If you select the condition Version differs, the Resolve
ConflictManager Reference 24
Setting Up ConflictManager
with Rules process performs the action only on conflicts caused by files having different version numbers.
z A sort option determines how conflicting files are sor ted and thus whic h one is used
to resolve the conflict. Example: If you sort by version number, then the file with the highest version number is used.
ConflictManager contains predefined rule sets. You can edit the predefined rule sets or create new rule sets to reflect your corporate standards.
See Creating a New Rule Set on page 26. Before you create your own rule sets, experiment with the predefined rules. You might
find that the predefined rule sets resolve your conflicts satisfactoril y and y ou don’t have to create your own.
Rule sets are stored with the Software Manager database, therefore, if you use multiple databases, you must set up rule sets separately in each one. The predefined rule sets are added to each new database you create. If you open a database created in a previous version of ConflictManager, it is updated and the predefined rule sets are added.
See also Predefined Rule Sets on page 25.
How Conflict Resolution Rules Are Applied
Conflict resolution rules are applied in the order they appear from top to bottom in the list of rules on the Conflict Resolution Rules dialog box.
When a rule contains multiple conditions, only conflicts that meet all of the conditions have the rule applied to them.
Predefined Rule Sets
ConflictManager contains the following predefined rule sets:
Conservative This rule set change s as little as possible to get the
package to work. It replaces files in the active package only with the corresponding files in the conflicting packages. An active package file is changed only if its version and date are lower than that of the conflicting file, and only if the manufacturer is the same as in the conflicting file.
This rule set ignores conflicts that cannot be resolved in a conservative way. This can result in more conflicts for you to resolve with the Resolve wizard.
ConflictManager Reference 25
Setting Up ConflictManager
Aggressive (using application paths)
Aggressive (using isolated components)
Restore original conflicts This empty rule set provides an easy way to undo a
Creating a New Rule Set
If the predefined rule sets do not meet your needs, and you don’t want to edit a predefined rule set, you can create a new rule that reflects your corporate standards.
These rule sets change as many files as possible in the active package and can change files in other conflicting packages. They replace all conflicting files with the most recent version; this means that files in the other conflicting packages might be replaced. Do this only when you have access to the other packages’ source files and can recompile the other packages.
The aggressive rule sets also try to isolate any files that are shared by multiple packages.
The aggressive rule sets can resolve more conflicts than the conservative rules. The disadvantage is that you must export, recompile, and retest any other packages that are changed.
package’s conflict resolutions and revert to its original file versions and locations. When you resolve with rules, the first thing any rule set does is revert all previous conflict resolutions for the selected package. Because this rule set contains no rules, that’s all it does.
To create a new rule set
1. Select Setup menu > Conflict Resolution Rules. The Conflict Resolution Rules dialog box appears. The upper list box contains the
rules in the selected rule set. Select a rule to display its details in the lower list box (the Rule description list).
2. From Rule Set Name, select <new>. The Enter Rule Set Name dialog box opens.
3. In Rule Set Name, enter a unique name to identify this rule set and click OK.
4. On the Conflict Resolution Rules dialog box, click Add to add the first rule for this rule set.
The Rules wizard starts and opens the Name page.
5. Enter a name for this rule and click Next. The Actions page appears.
6. In Which action(s) do you want to perform?, mark the check box next to each action to perform, in the order they should be performed.
The actions you mark appear in the Rule description list.
Note
When you mark an action, any other actions that are incompatible with it are unavailable.
ConflictManager Reference 26
Setting Up ConflictManager
7. If an action contains underlined text, click the underlined text to open a Rule Detail Settings dialog box, where you can specify a value for the underlined text.
Example: If you marked the action Isolate the file via AppPaths into the directory Shared, you would click the word AppPaths method, and then click the word Shared
8. When you finish adding actions, click Next on the Actions page. The Conditions page appears.
9. In Which condition(s) do you want to check?, mark the check box next to each condition to check, in the order they should be checked.
As you mark check boxes, the conditions appear in the Rule description list.
10. If a condition contains underlined text, click the underlined text to open a Rule Detail Settings dialog box, where you can select a value for the underlined text.
Example: If you marked the condition File is executable, you would click the word
and select either is or is not.
is
11. When you finish adding conditions that comprise the rule, click Next on the Conditions page.
The Sort Order page appears.
and enter a directory name.
and select the isolation
12. In Which sort(s) do you want to perform?, mark the check box next to each sort option to perform, in the order they should be performed. You can rearrange the sort order later.
As you mark check boxes, the sort options appear in the Rule description list.
13. To rearrange the sort order, select a sort option in the Rule description list and click Move Up or Move Down.
14. When you finish adding and arranging sort options, click Finish on the Sort Order page.
The Conflict Resolution Rules dialog box reappears. The new rule is displayed in the upper list box and its details are displayed in the Rule description list.
15. To edit a rule’s details, delete a rule, or rearrange the rule order, use the buttons on the Conflict Resolution Rules dialog box.
16. T o change the v alue in an action or condition, click its underlined text and enter new text on the Rule Detail Settings dialog box.
17. You can continue to add and edit rules. When you finish, click OK on the Conflict Resolution Rules dialog box.
See also:
Guidelines for Resolving File Conflicts on page 35
ConflictManager Reference 27
Chapter 3
Conflict Detection and Resolution
This chapter includes the following topics:
z About Conflict Detection and Resolution on page 28 z Prerequisites for Conflict Detection and Resolution on page 28 z Process for Resolving Conflicts z Detecting Co nflicts on page 30 z Viewing Conflicts on page 31 z Conflict Resolution on page 35 z Package Export After Conflict Resolution on page 45 z ConflictManager Reports on page 48
About Conflict Detection and Resolution
After you import packages into the Software Manager database, use ConflictManager to:
z Detect conflicts. z Display conflicts. z Resolve conflicts. z Export the changes to the original installation file and recompile it. z Generate ConflictManager reports.
You also can detect and resolve conflicts in Windows Installer Editor. Do this to compare a package that is still in the authoring phase with those that have already been deployed, without importing the package into the Software Manager database. This lets you:
z Streamline repackaging by identifying conflicts earlier in the process. z Maintain your Software Manager database as a pristine image of packages that have
already been deployed in the production environment.
See Resolving File Conflicts Within Windows Installer Editor in the Windows Installer Editor Help.
Prerequisites for Conflict Detection and Resolution
Before you use ConflictManager to detect and resolve conflicts:
z Define conflict settings, which determine the type of conflicts that are detected and
the files and registry keys that are excluded from conflict detection. See About Conflict Settings on page 19.
z Decide whether to use conflict resolution rules and, if so, decide which predefined
rule sets to use. You can edit the predefined rule sets or create new rule sets.
ConflictManager Reference 28
See Conflict Resolution Rules on page 24.
z Import packages into the Software Manager database, using Software Manager.
See Package Import in the Software Manager Help.
Note
Conflict detection requires package resources to be in the Software Manager database. If a package’s meta data is in the database but not its resources, you must perform an import in Software Manager.
Process for Resolving Conflicts
T ypically, you will follow the steps below in the order listed. In some cases, however, you might not follow all these steps. Example: During the analysis phase of a repackaging project, you might want to check for conflicts but not resolve them. In that case, you would perform the conflict detection step only.
1. Detect conflicts. ConflictManager compares the resources each package installs. When it finds
resources that conflict, it populates the Software Manager database with conflict information.
Conflict Detection and Resolution
View conflicts in the Applications/Packages pane and the Conflict List, or use the ConflictManager reports to display and print conflict information.
See Detecting Conflicts on page 30 and Viewing Conflicts on page 31.
2. Resolve conflicts. Resolving a conflict involves looking at each file that is installed by multiple
packages and selecting the version to install on the destination computer. You also can change the location of conflicting files so that each package can use its version of the file.
You can use conflict resolution rules to resolve conflicts automatically, or run the Resolve wizard, which lets you review and resolve file conflicts one at a time.
See Conflict Resolution on page 35.
3. Export resolved packages. After you resolve conflicts, export the changes to the original Windows Installer or
WiseScript installation to produce an installation that does not conflict with other packages.
See Package Export After Conflict Resolution on page 45.
4. Test the resolved installation. After you save and recompile a resolved package, install it on a clean machine and
test it.
Note
It is important to test the package on a clean machine. A machine that is not clean might contain newer versions of some of the files you resolved. Because these newer files are not overwritten during the installation, you do not get a true representation of the resolved installation.
5. Redo conflict resolution if necessary.
ConflictManager Reference 29
Conflict Detection and Resolution
If the package does not work, return to ConflictManager and redo the conflict resolution in any of the following ways.
To revert changes for just one or a few files
To redo the conflict resolutions with rules
To revert all previou s resolutions without applying a new rule set
After you redo the conflict resolution, repeat the steps to export and test the package.
z Select Conflicts menu > Resolve. z In the Resolve wizard, select one or more files
and click Revert to undo your previous conflict resolutions for those files.
z Try other ways to resolve the conflicts. z Select Conflicts menu > Resolve with Rules. z Select a different rule set. This reverts all the
previous conflict resolutions for that package and then resolves them using the different rule set.
z Select Conflicts menu > Resolve with Rules. z Select the Restore original conflicts rule set.
This reverts all previous conflict resolutions but does not resolve the conflicts.
z Resolve conflicts with a different rule set or
with the Resolve wizard.
Detecting Conflicts
ConflictManager compares the resources each package installs. When it finds resources that conflict, it populates the Software Manager database with conflict information. The database contains the combined results of all the detection processes you have performed. Repeating the detection process for a package overwrites previous conflict information for that package only.
The settings in Setup menu > Conflict Settings > Types determine which conflicts are detected.
If Detect conflicts during package import is marked in Conflict Settings, then conflict detection runs automatically when a new package is imported into the Software Manager database. When conflict detection runs during import, it checks for conflicts between the imported package and all other packages; it does not re-detect conflicts between all packages.
To detect conflicts
1. (Enterprise Management Server only.) If multiple databases are open, select a database in the Applications/Packages pane.
2. Select Conflicts menu > Detect. The Detect Conflicts dialog box appears.
3. Mark one of the following:
ConflictManager Reference 30
Conflict Detection and Resolution
Detect conflicts between all packages
Find conflicts between every package and all other packages in the database.
Detect conflicts for selected packages
Find conflicts between the package you select and all other packages in the database.
Marking this option enables the list of packages on the dialog box. In the list, select one or more packages to find conflicts for.
Example: Suppose your database contains Microsoft Word, Lotus Notes, and Adobe Acrobat. When you select Word, Co nflictManager finds resources in W ord that conflict with Lotus or Acrobat. It also finds resources in Lotus and Acrobat that conflict with Word. It does not find resources in Lotus that conflict with Acrobat.
4. Click OK.
Depending on the number of packages in the Software Manager database and the speed of your computer, conflict detection can take several minutes. While conflict detection is running:
z Its status appears at the right end of the toolbar. z You can continue to use ConflictManager. z You cannot close ConflictManager.
When conflict detection is complete, the right end of the toolbar displays Idle and you can review conflicts.
See Viewing Conflicts on page 31.
Stopping Conflict Detection
Stop conflict detection if you need to close ConflictManager. Stopping conflict detection before it finishes can leave partial records in the database. If
you must stop conflict detection, be sure to rerun it later. You cannot revert the database to its previous state unless you have a current backup copy.
z Select Conflicts menu > Stop.
The right end of the toolbar displays Idle.
Viewing Conflicts
The Conflict List displays conflicts between the selected package and all other packages in the database. You can view conflicts for only one package at a time.
You can view additional information about a conflicting resource by displaying its Properties dialog box. You also can view, but not edit, properties in the Package Details pane in Software Manager.
You can use package groups to reduce the number of conflicts that appear. A package group consists of a subset of the packages in the database.
See Package Groups in the Software Manager Help.
ConflictManager Reference 31
Conflict Detection and Resolution
To view conflicts
1. (Enterprise Management Server only.) If multiple databases are open, select a database in the Applications/Packages pane.
2. If you are using package groups, select a group name in the Groups pane. The Applications/Packages pane displays only packages that are assigned to that
group.
3. In the Applications/Packages pane, select a package.
4. The package’s conflicts appear in the Conflict List and are grouped by type. See Resource Conflicts on page 16. If a package group is selected in the Groups pane, only the conflicts between the
selected package and the packages in the group are displayed.
5. To change the types of conflicts that appear, select Conflicts menu > Filter and set the filter criteria.
See Filtering the Conflict Display on page 33.
Note
The settings in Setup menu > Conflict Settings > Types determine which conflicts are detected. Example: If your conflict settings are set to detect file conflicts only, then registry conflicts do not appear even when the conflict filter is set to display registry conflicts.
6. In the Conflict List, select a conflict. The conflicting resources in other packages appear in the Conflict Details pane.
7. To view a conflicting resource’s properties, double-click it in the Conflict Details pane.
The Properties dialog box appears.
Note
Because they are rare, the Properties dialog box is not available for Autoexec.bat, Config.sys, service, device, shortcut, and path conflicts.
Warning
Changing the information on the Properties dialog box is not recommended except for registry keys and .ini files, and then only if you are the developer of the package and you have extensive knowledge of how Windows operates. Changing property information incorrectly can damage the package.
See Resolving Registry Conflicts on page 42 and Resolving INI Conflicts on page 43.
When Conflict Detection Yields Unexpected Results
If conflict detection results in conflicts that you did not expect, or ignores conflicts that you did expect, here’s what to do:
z Review how ConflictManager detects conflicts. See:
About Conflicts on page 13 Hash Value Comparisons in Conflict Detection on page 14 Finding and Viewing the Right Conflicts on page 14
ConflictManager Reference 32
Resource Conflicts on page 16
z Check your conflic t settings to verify th at ConflictManager is detecting the types of
conflicts that are important to you. See About Conflict Settings on page 19
z Verify that ConflictManager is set to display the types of conflicts that you want to
see. See:
Filtering the Conflict Display Hiding Conflicts on page 34
Filtering the Conflict Display
You can specify filter criteria to determine which packages and conflicts appear in the Applications/Packages, Conflict List, and Conflict Details panes. Y ou can filter the display by conflict attributes and package attributes. The filter criteria you specify remain the same for subsequent uses of ConflictManager.
To filter the conflict display
1. Select Conflicts menu > Filter. The Filters dialog box appears.
Conflict Detection and Resolution
2. To filter by conflict attributes, click the Conflicts tab and mark any combination of check boxes.
Errors
Include conflicts that will cause problems.
Warnings
Include conflicts that are not critical but might require some attention.
File Conflicts Registry Conflicts Other Conflicts
Include ODBC and .ini file conflicts.
Only display packages with conflicts Display resolved conflicts
Include resolved conflicts in addition to those that haven’t been resolved.
3. To specify filter criteria to determine which packages appear in the Applications/ Packages pane, click the Packages tab.
To filter by package status, mark any combination of check boxes in the
Package Status to Display section.
(Enterprise Management Server only.) If multiple databases are open, select
from Database a database containing the meta data field to filter by.
To filter by whether the package is defined, mark check boxes in the Filter
Based on Package Definition section.
ConflictManager Reference 33
Display Defined Packages displays packages that were defined in
Workbench and Software Manager.
Display Undefined Packages displays all undefined packages.
Conflict Detection and Resolution
To filter the display by a meta data value, mark Filter Based on Meta Data.
Then specify the following filter criteria:
Name
Select a meta data field name to filter packages by. The drop-down list contains meta data fields that are defined in the selected database.
Operation
Select the operation to use when comparing the meta data value to the value you enter below. The oper ations th at are av ailable depend on the data type of the meta data field.
Value
Specify the meta data value to match.
T o filter by package type, mark an y combination of check boxes in the Package
Type to Display section.
To clear or mark a group of package types, select the group of package types and click one of their check boxes.
4. Click OK.
Note
The settings in Setup menu > Conflict Settings > Types determine which conflicts are detected. Example: If your conflict settings are set to detect file conflicts only, then registry conflicts do not appear even when the conflict filter is set to display registry conflicts.
Hiding Conflicts
Conflicts that are identified by ConflictManager are often found to be harmless upon further testing. Normally, ConflictManager will continue to display these conflicts. To filter these harmless conflicts from the conflict display, you can designate certain conflicts between specific packages to be ignored, or hidden. Example: Designate that any conflicts involving abc.dll between Package A and Package B should be ignored
When you hide a conflict, it does not appear in:
z The Conflict Details pane. z The Resolve wizard. z ConflictManager reports.
To designate a conflict as hidden
In the Conflict Details pane, right-click the conflict and select Hide Conflict. The icon to the left of the conflict is dimmed.
To show or hide hidden conflicts
1. Select Setup menu > Conflict Settings and click the Types tab.
2. Mark or clear Display Conflicts Marked as Hidden to determine how ConflictManager filters hidden conflicts.
ConflictManager Reference 34
Conflict Resolution
Resolving a conflict involves looking at each file that is installed by more than one package and selecting the version to install on the destination computer. You also can change the location of conflicting files so that each package can use its version of the file.
See Guidelines for Resolving File Conflicts. Your options for resolving conflicts are as follows:
Conflict Detection and Resolution
Resolve conflicts automatically
Resolve individual conflicts manually
The Resolve with Rules and Resolve commands resolve file conflicts only. To resolve registry key value and .ini file conflicts, you must use the Properties dialog box.
See Resolving Registry Conflicts on page 42 and Resolving INI Conflicts on page 43. You cannot resolve conflicts in:
z Packages that are marked as read-only on the Package Attributes dialog box in
Software Manager.
z Certain types of packages.
See Restrictions on Resolving and Exporting Package Types on page 44.
Use conflict resolution rules to resolve file conflicts automatically.
See Resolving File Conflicts With Rules on page 39. Run the Resolve wizard, which lets you review and
resolve file conflicts one at a time. See Resolving File Conflicts Individually on page 40.
Guidelines for Resolving File Conflicts
Before you resolve a conflict, analyze the conflicting file’s version, date/time, size, and other information to determine the cause of the conflict. You can view the file information in either the Conflict Details pane or the Resolve wizard pages. If you use conflict resolution rules, the rules perform the conflict analysis and resolution.
The following table provides guidelines for resolving file conflicts. The Recommended Resolution column describes in general terms how to resolve the conflict, specifies the button to click to resolve the problem in the R esolve wizard, and specifies the rule action to use when resolving with conflict resolution rules.
ConflictManager Reference 35
Conflict Detection and Resolution
Conflict Problem Recommended resolution
Two files with the same name have different hash values, or a different version, date/time, or size.
Two files with the same name and the same hash value are installed to the same directory , but component GUIDs do not match, and none of the components are marked to be permanently installed.
If the installation does not use versioning rules (WiseScript replacement options or the Windows Installer REINSTALLMODE property), the older version can install over the newer version, causing a problem when each package requires a specific version of the file. Also, the new file might not be compatible with the old one.
After both packages are installed, uninstalling one of them will remove the file, breaking the remaining package.
Copy the file information (source path included) from one package to another, or isolate the file.
See Copying File Information on page 37 and Isolating Files on page 38.
Match GUIDs for identical files across packages.
Resolve wizard:
Copy Up or Copy Down button
Rule action:
Replace the MSI component GUID with the matching conflicting file’s GUID
File is KeyPath to a component in one package, but not in another.
After both packages are installed, uninstalling one of them will remove the file, breaking the remaining package.
Or Use the MSI component GUID in the active
package to replace the MSI component GUID in the conflicting packages
Make both files KeyPaths to their respective components.
Resolve wizard:
Fix Comp button
Rule action:
Use the MSI component KeyPath in the active package to replace the MSI component KeyPaths in the conflicting packages
Or Replace the MSI component KeyPath with
the matching conflicting file’s KeyPath
ConflictManager Reference 36
Conflict Detection and Resolution
Conflict Problem Recommended resolution
The shared DLL counter is not set for a file shared by a WiseScript package and a Windows Installer package.
In a mixed WiseScript/Windows Installer environment, shared DLL counters must be set so the WiseScript’s shared DLL reference counts are up to date. Otherwise, uninstalling either package will break the other.
Set the Shared DLL flag on one or both files.
Resolve wizard:
Fix Comp button
Rule action:
Set shared DLL counters if required
Copying File Information
When you resolve a conflict by copying file information, you either replace the active package’s file with the matching conflicting file or replace the conflicting file with the active package’s file.
When to copy file information
Copy file information when the conflicting files are two versions of the same file, that is, all information is the same except version, date/time, or size.
Do not copy file information when:
z The older file is substantially larger than the newer file. The older file might contain
functions that the new version does not. In this case, you might have to experiment to find which file works best.
z Two files have the same name but different values in the Company field, meaning
they were created by different manufacturers. These errors are difficult to resolve, because the two files might be entirely different. Exampl e: If they are DLL files, they might have different APIs and different functions. In this case, it is best to isolate the files.
See Isolating Files on page 38.
How to copy file information
You can c opy files using a conse rv ativ e method, whic h does not ch ange other packages, or an aggressive method, which changes other packages. You must export, recompile, and test any other packages that you change.
The following table describes how to copy file information using a conservative or aggressive method.
Method How to copy with the
Resolve wizard
Conservative Use the Copy Up or Latest
button
How to copy with rules
z Use a conflict resolution rule containing this
action: Replace the active application’s file with the
matching conflicting file
ConflictManager Reference 37
z Add a condition to compare the package file
version to the conflicting files, and sort by version.
Conflict Detection and Resolution
Method How to copy with the
Resolve wizard
Aggressive Use the Copy Down button
Isolating Files
Isolating files to resolve conflicts is generally safer than copying them.
When to isolate files
z When different packages install the same executable file (.dll, .ocx, or .exe) to the
System directory or to any common directory.
z When different packages install files having the same name but different values in
the Company field, meaning they were created by different manufacturers.
Isolation works by moving one or both of the files to their respective application directories and telling the operating system to look for the file in the application directory before looking in the System directory.
Note
When you isolate a file, the file is still copied to the System directory in addition to the application directory. If the System directory already contains an earlier version of the file, the earlier version is replaced. This could cause a problem in any package that uses the earlier version of the file. Therefore, it is best to isolate both versions of the file in their respective packages.
How to copy with rules
z Use a conflict resolution rule containing this
action: Replace the conflicting files with the active
application’s file
z Add a condition to compare the package file
version to the conflicting files.
File isolation methods
Isolation method How it works When to use
Isolated components Isolate files using Windows Installer
isolated components. The isolation is managed by the operating system.
Application paths (AppPaths)
ConflictManager Reference 38
Moves files out of the System directory and into a private directory, typically the application directory.
When the conflicting files are listed in the registry, using an application path to move them to a private application directory can cause problems. ConflictManager updates the
z For .MSI and .WSI packages only z Whether or not conflicting files are listed
in the registry
z For Windows Installer and WiseScript
packages
z For installations intended for any Windows
operating system
z When conflicting files are not listed in the
registry (No programs will try to find it by looking
in the registry.)
Conflict Detection and Resolution
registry when a file is moved to a private application directory. This can cause other packages to follow the moved file and result in a further conflict. Experiment to determine which packages find the file in the registry and which look in the path. Then move the file for the packages that look in the registry, and leave a copy in the System directory for packages that look in the path.
How to isolate a file with the Resolve wizard
In the Wel come page of th e Resolve wizard, select one of the following options from the Isolation Method drop-down list:
z Isolated Components z Application Paths
Selecting this option enables the Application Path Settings field. Enter the path where Windows should look for the files. This path is created under the main application directory.
Continue using the Resolve wizard. See Resolving File Conflicts Individually on page 40.
How to isolate a file with rules
Use a rule containing the following action:
Isolate the file via [AppPaths OR Isolated Components]
Both of the predefined aggressive rule sets contain this action. If you create your own rules, add this action and set its v ariable to AppP aths or Is olated
Components. When you select the AppPaths variable, a second line is added to the action:
into directory Shared
If you leave this line as is, the application pa th is set to a directory named Shared under the main application directory. To use a diffe rent application path, cl ick the word Shared and type a new directory name.
See Creating a New Rule Set on page 26.
Resolving File Conflicts With Rules
Using conflict resolution rules is the fastest way to resolve conflicts. The rules do the conflict analysis and resolve the conflicts automatically. This saves time, reduces errors, and provides consistency in conflict resolution.
Resolving with rules always deletes all previous conflict resolutions for the selected package.
To resolve file conflicts with rules
1. (Enterprise Management Server only.) If multiple databases are open, select a database in the Applications/Packages pane.
2. Select Conflicts menu > Resolve with Rules. The Resolve with Rules dialog box appears.
3. Specify the application and package to resolve conflicts for.
4. From Rule Set Name, select the rule set to use.
ConflictManager Reference 39
5. Click OK. The Resolving Conflicts dialog box appears, and conflicts are resolved. If there are
few conflicts to resolve, the dialog box appears briefly.
6. When conflict resolution is finished, view conflicts for that package. If conflicts appear, they could not be resolved with rules. Resolve the remaining conflicts manually. See:
Resolving File Conflicts Individually on page 40 Resolving Registry Conflicts on page 42 Resolving INI Conflicts on page 43
See also:
Conflict Resolution Rules
Resolving File Conflicts Individually
Use the Resolve wizard to resolve file conflicts without using resolution rules, or to resolve conflicts that cannot be resolved automatically with rules.
Conflict Detection and Resolution
To resolve individual file conflicts
1. (Enterprise Management Server only.) If multiple databases are open, select a database in the Applications/Packages pane.
2. Select Conflicts menu > Resolve. The Welcome page appears.
3. Specify the application and package to resolve conflicts for.
4. From Isolation Method, select an option. Selecting an isolation method activates the Move button on the File Conflicts and File Conflicts in Registry dialog boxes.
See Isolating Files on page 38.
Do not move files
Do not allow file isolation.
Isolated Components
Isolate files using Windows Installer isolated components. The isolation is managed by the operating system. This method works with .MSI and .WSI packages only.
Application Paths
Moves files out of the System directory and into a private directory. This method works for Windows Installer and WiseScript packages, and is supported by all Windows operating systems.
By default, the files are placed in the application directory. To place files in a different directory , in Application Path Settings, specify a subdirectory of the application directory or the full path to a different directory. You can use variables in the path.
5. Click Next. The File Conflicts page appears. The upper list box contains files in the selected
package that have conflicts and are not listed in the registry. You usually can move
ConflictManager Reference 40
Conflict Detection and Resolution
such files without causing problems. The lower list box contains the conflicting files in other packages.
6. In the upper list box, select one or more files and take one of the following actions. See Guidelines for Resolving File Conflicts on page 35. When you resolve a conflict, the exclamation point to the left of the file name
changes from red to white.
To move the selected file to a private directory and change the file path in the
package, click Move. This button is not available if you selected the Do not move files isolation method.
Note
In most cases, when you move a non-executable file, such as a help file, to an isolated or private directory, the application still uses the version in the shared directory. The advantage of using isolation is that the different versions of the file are saved in the isolated directories and will not be overwritten by other packages. You can add a shortcut to the application to point to the appropriate file location.
To use the most recent version of the file for the active package, click Latest. If
one file has a newer version but another has a newer date/time, the Latest File Selection dialog box appears, where you specify whether to use the file with the newest modified date or the highest internal version number.
To change the file’s component, click Fix Comp.
If the file is a K eyPath to a component in one package but not in another, the
file becomes a KeyPath to its own component.
If the file has extra non-advertising resources, they are moved to a new
component.
If the file’s shared .DLL counter is not set, it is set.
If the component has more than one of these issues, a Fix Options dialog box appears, where you select which actions to take.
To apply a file in the upper list box to a package in the lower list box, select a
file in each list and click Copy Down. The file remains in its current location but will be used to install the package in the lower list box.
T o apply a file in the lower lis t box to the active package, select a file in each list
and click Copy Up. The file remains in its current location but will be used to install the package in the upper list box.
To undo changes, click the file and click the upper or lower Revert button,
depending on whether the file is in the upper or lower list box. This resets the file to the state it was in when you imported the package.
7. Click Next on the File Conflicts page. The File Conflicts in Registry page appears. The upper list box contains files in the
selected package that have conflicts and are listed in the registry . The lower list bo x contains the conflicting files in other packages.
8. In the upper list box, select one or more files and take one of the following actions. See Guidelines for Resolving File Conflicts on page 35.
ConflictManager Reference 41
Conflict Detection and Resolution
When you resolve a conflict, the exclamation point to the left of the file name changes from red to white.
To move the selected file to a private directory and change the file path in the
package, click Move. This button is not available if you selected the Do not move files isolation method.
Warning
When conflicting files are listed in the registry, moving them to a private application directory can cause problems. ConflictManager updates the registry when a file is moved to a private application directory. This can cause other packages to follow the moved file and result in a further conflict.
To use the most recent version of the file for the active package, click Latest. If
one file has a newer version but another has a newer date/time, the Latest File Selection dialog box appears, where y ou choose whethe r to use the file with the newest modified date or the highest internal version number.
To apply a file in the upper list box to a package in the lower list box, select a
file in each list and click Copy Down. The file remains in its current location but will be used to install the package in the lower list box.
T o apply a file in the lower lis t box to the active package, select a file in each list
and click Copy Up. The file remains in its current location but will be used to install the package in the upper list box.
To open a separate dialog box listing the registry keys that contain the path to
the selected file, click Reg Details.
To undo changes, click the file and click the upper or lower Revert button,
depending on whether the file is in the upper or lower list box. This resets the file to the state it was in when you imported the package.
9. When you have resolved all file conflicts, click Finish on the File Conflicts in R egistry page.
The Resolve wizard makes the changes you specified and closes.
Resolving Registry Conflicts
The Resolve with Rules and Resolve commands resolve file conflicts only. To resolve registry key conflicts, use the Properties dialog box.
Warning
Resolve registry key conflicts only if you are the developer of the package and you have extensive knowledge of how Windows operates. Changing registry information incorrectly can damage the installation. In particular, changing information in HKEY_CLASSES_ROOT can damage the operating system.
To resolve registry conflicts
1. (Enterprise Management Server only.) If multiple databases are open, select a database in the Applications/Packages pane.
2. If you are using package groups, select a group name in the Groups pane. The Applications/Packages pane displays only packages that are assigned to that
group.
ConflictManager Reference 42
Conflict Detection and Resolution
3. In the Applications/Packages pane, select a package. The package’s conflicts appear in the Conflict List and are grouped by type. See Resource Conflicts on page 16.
4. If you do not see the conflicts you expected, select Conflicts menu > Filter and make sure the Errors and Registry Conflicts check boxes are marked.
See Filtering the Conflict Display on page 33.
Note
The settings in Setup menu > Conflict Settings > Types determine which conflicts are detected. Example: If your conflict settings are set to detect file conflicts only, then registry conflicts do not appear even when the conflict filter is set to display registry conflicts.
5. In the Conflict List, select a registry item. The conflicts for the item appear in the Conflict Details pane.
6. In the Conflict Details pane, double-click the package containing the registry value to use.
The Properties dialog box appears.
7. On the Registry Key Settings tab: a. Click in the Data Value field. b. Copy the value to the clipboard. c. Click Cancel.
8. In the Conflict Details pane, double-click the package containing the registry conflict to resolve.
The Properties dialog box appears.
9. In the Registry Key Settings tab, a. Select the contents of the Data Value field. b. Paste the value you copied from the other registry entry, overwriting the
existing value.
c. Click OK.
In a few seconds, the Conflict Details pane is refreshed.
Resolving INI Conflicts
The Resolve with Rules and Resolv e commands resolve file confli cts only. T o resolv e .INI file conflicts, use the Properties dialog box.
Warning
Resolve .INI file conflicts only if you hav e extensive knowledge of how Windows operates and you understand how changing an .INI file affects the installation.
To resolve .INI conflicts
1. (Enterprise Management Server only.) If multiple databases are open, select a database in the Applications/Packages pane.
ConflictManager Reference 43
Conflict Detection and Resolution
2. If you are using package groups, select a group name in the Groups pane. The Applications/Packages pane displays only packages that are assigned to that
group.
3. In the Applications/Packages pane, select a package. The package’s conflicts appear in the Conflict List and are grouped by type. See Resource Conflicts on page 16.
4. If you do not see the conflicts you expected, select Conflicts menu > Filter and make sure the Errors and Other Conflicts check boxes are marked.
See Filtering the Conflict Display on page 33.
Note
The settings in Setup menu > Conflict Settings > Types determine which conflicts are detected. Example: If your conflict settings are set to detect file conflicts only, then .INI conflicts do not appear even when the conflict filter is set to display .INI conflicts.
5. In the Conflict List, select an .INI item. The conflicts for the item appear in the Conflict Details pane.
6. In the Conflict Details pane, double-click the package containing the .INI value to use.
The Properties dialog box appears.
7. On the Edit INI File Settings tab: a. In the INI File Contents section, click in the Entry column. b. Copy the value to the clipboard. c. Click Cancel.
8. In the Conflict Details pane, double-click the package containing the .INI conflict to resolve.
The Properties dialog box appears.
9. In the Edit INI File Settings tab, a. In the INI File Contents section, click in the Entry column. b. Paste the value you copied from the other .INI file, overwriting the existing
value.
c. Click OK.
In a few seconds, the Conflict Details pane is refreshed.
Restrictions on Resolving and Exporting Package Types
You cannot resolve conflicts in or export certain types of packages.
Device drivers Device drivers typically are provided by a vendor and should not be
ConflictManager Reference 44
changed. Instead, change the package that conflicts with a device driver.
Conflict Detection and Resolution
Group Policy Objects Conflicts between packages and Group Policy Objects are not typical
conflicts that you can resolve by changing files or registry keys, r ather, they are provided to inform you of packages that might override your group policies.
Merge modules Changing a merge module affects all packages that use it. Instead, consider
adding the merge module to the package it conflicts with.
Microsoft hotfix Hotfixes typically are signed and cannot be changed. Alternative: Create a
WiseScript wrapper that installs the hotfix and then performs a post­installation operation to install a changed source file.
Transforms If the transform was applied to a base package when it was imported, you
can resolve conflicts in and export the transform package. If the transform was applied to a blank Windows Installer database, you cannot resolve conflicts in or export the transform package.
Patches Patch files contain binary differences instead of full files. Alternatives:
z Apply the patch during import of the base package. Then the patch’s
resources are added to the resources of the base package and you can resolve conflicts for the base package.
z Create a WiseScript wrapper that installs the patch and then performs a
post-installation operation to install a changed source file.
SOE Snapshots SOE Snapshot files are created solely to let you import a standard operating
environment into the Software Manager database. You cannot compile an SOE snapshot file into an executable installation. Instead, change the package that conflicts with an SOE Snapshot.
Subscribed packages that you copied from another database by package subscription
InstallShield® Developer installations that you imported from an InstallShield executable
Non-Windows Installer or non­WiseScript installations that you imported with the Universal Import option
You cannot change the source package files. Instead, change the packages in your database.
Neither the original .EXE nor its embed d ed .MSIs can be edited.
The original installation file cannot be edited.
Package Export After Conflict Resolution
After you resolve conflicts, you must export the changes to the original Windows Installer or WiseScript installation to produce an installation that does not conflict with other packages on your organization’s computers.
You have the following options for exporting packages:
Export Export changes for a single package. After you export
ConflictManager Reference 45
the package you must compile it in Windows Installer Editor or WiseScript Editor.
See Exporting a Single Package on page 46.
Conflict Detection and Resolution
Export and recompile Export changes for all packages whose conflicts have
been resolved. You also can have the installations recompiled automatically after exporting.
See Exporting and Recompiling Packages on page 47.
In order for you to export a package:
z The original package installation must exist. The export process cannot create a new
installation.
z The source files in the original installation and any files you added during conflict
resolution must have valid source paths.
z The Prevent Package Export check box on the Package Attributes dialog box must
not be marked.
You cannot export:
z Packages that are marked as read-only on the Package Attributes dialog box in
Software Manager.
z Certain types of packages.
See Restrictions on Resolving and Exporting Package Types on page 44.
Exporting a Single Package
After you resolve conflicts for a package, you can export the changes to the original Windows Installer or WiseScript installation, which you then recompile in Windows Installer Editor or WiseScript Editor.
To export a single package
1. (Enterprise Management Server only.) If multiple databases are open, select a database in the Applications/Packages pane.
2. Select Packages menu > Export. The Export Package dialog box appears.
3. Complete the dialog box:
Application Name
Select the application to export.
Package Name
Select the package to export.
Installation File
Specify the path and file name of the Windows Installer installation (.WSI or .MSI) or WiseScript (.WSE) to export to. Normally, you should accept the default, which is the file that was originally imported into Software Manager. If you are exporting a WiseScript, you can export to a different file. You must export to the same type of file that was originally imported.
The remaining options are different depending on the type of file you are exporting.
4. If you are exporting a WiseScript, select one of the following:
ConflictManager Reference 46
Conflict Detection and Resolution
Overwrite existing installation
Replaces the entire package installation with information in the Software Manager database.
Merge changes with existing installation
Adds only the conflict resolution changes to the existing installation.
5. If you are exporting a Windows Installer package that you previously distributed to end users, select an option in Upgrade Type to change the installation so that it can function as an update.
None (Do not modify)
Select this option if you have never distributed this package to end users. It adds only the conflict resolution changes to the existing installation.
Small (Change PackageCode)
Select this option to export the package as a patch or reinstall. This option creates an installation containing conflict resolution changes plus a new package code, which will reinstall over the previous version to update it. The version of the installed package will not be updated. To create a patch between the package you are exporting and the previous version, use the Patch Creation tool.
Minor (Change Version and PackageCode)
Select this option to ship this version of the package as a patch or reinstall. This option creates a package installation containing conflict resolution changes plus a new package code and version, which will reinstall over the previous version to update it. To create a patch between the package you are exporting and the previous version, use the Patch Creation tool.
Major (Change ProductCode, Version and PackageCode)
Select this option to ship this version of the package as an upgrade. This option creates a package installation containing an upgrade entry, which will upgrade previous versions.
6. If you are exporting an .MSI and you do not want to change the original package installation, specify a transform file (.MST) in Transform File. The conflict resolution changes are saved in the transform file, which you can apply to the original package installation.
7. Click OK. The changes are exported to the original package installation.
8. If you exported a .WSI or .WSE, open the package in Windows Installer Editor or WiseScript Editor and compile it. You do not have to compile .MSI files.
Exporting and Recompiling Packages
After you resolve conflicts for multiple packages, you can export the changes t o the original Windows Installer or WiseScript installations. Y ou also can hav e the inst allations recompiled automatically after exporting. This is useful when you resolve conflicts using the Resolve with Rules command, because you don’t have to keep track of which packages have changed, and you don’t have to recompile them individually.
This process always overwrites the original installation files.
ConflictManager Reference 47
To export and recompile a package
1. (Enterprise Management Server only.) If multiple databases are open, select a database in the Applications/Packages pane.
2. Select Packages menu > Export and Recompile. The Export Changed Applications and Recompile dialog box appears. This lists all
packages with conflict resolution changes that have not been exported. All check boxes are marked by default.
3. Clear the check boxes for packages you do not want to export.
4. To recomp ile the packages automatically after exporting them, mark Compile t he packages after export.
5. Click OK.
The selected packages are exported to their original installation files. If you marked
Compile the packages after export, they are recompiled.
ConflictManager Reports
ConflictManager lets you generate the following reports that provide information about the packages in the Software Manager database.
Conflict Detection and Resolution
Note
When you install Wise Package Studio, triggers are added to the Software Manager database. Because the default SQL Server backup process does not include triggers, you should change your backup configuration to include them.
File Conflicts by Package Lists all file conflicts between selected packages
and the packages of all other applications. The conflicts are grouped by application and package name and arranged in each group by file name.
File Conflicts By Group Lists all file conflicts for a group of packages. The
conflicts are grouped by application and package name and arranged in each group by file name.
File Conflicts By Group Lists all packages that have conflicts with the file
you specified. The conflicts are grouped by file name and arranged in each group by conflict level and application and package name.
Registry Conflicts By Package Lists all registry conflicts between selected
packages the packages of all other applications. The conflicts are grouped by application and package name and arranged in each group by registry key.
Registry Conflicts By Group Lists all registry conflicts for a group of packages.
The conflicts are grouped by application and package name and arranged in each group by registry key.
ConflictManager Reference 48
Registry Conflicts By Key Lists all registry conflicts by registry key. The
Generating a ConflictManager Report
You can gener ate a ConflictManager report t hat displays in a report viewer window , from which you can save or print it. You can also generate a report directly to a file.
See Saving a ConflictManager Report Directly to a File on page 50.
To generate a ConflictManager report
1. (Enterprise Management Server only.) If multiple databases are open, select a database in the Applications/Packages pane.
2. From the Reports menu, select a report. The Report Parameters dialog box appears. The fields that appear on this dialog box
vary depending on the type of report that was selected.
3. For predefined reports, complete the Report Parameters dialog box:
Conflict Detection and Resolution
conflicts are grouped by registry key and arranged in each group by conflict level and application and package name.
Entries Per Page
Enter the number of conflicts to display per page. (Example: If you enter 1, each page of the report displays a single entry, therefore, a report with 10 entries results in 10 pages.) The lower the number, the faster the report generates. The default value is 6000.
Note
If you save a report as an HTML file, an HTML file is created for each page of the report.
Conflict Types to Display
Errors are conflicts that deserve attention. Warnings are conflicts that probably will not cause a problem.
Application and Package Name
(Conflicts by Package only.) Specify the applications and packages on which to run reports. SQL wildcards are accepted. If you select an application from Application Name, only its packages appear in Package Name.
Group Name
(Conflicts by Group only.)
File Name
(File Conflicts by File only.) SQL wildcards are accepted.
Key Path and Value Name
(Registry Conflicts by Key only.) SQL wildcards are accepted.
4. Click OK. The report opens in the report viewer window. See Using the Report Viewer on page 50.
ConflictManager Reference 49
Saving a ConflictManager Report Directly to a File
You can generate and save a ConflictManager report to a file without opening it in the report viewer. You might do this if you want to generate a large report overnight. This involves creating an .INI file that contains the instructions for gener ating the r eport and then using a command line to generate the report.
To create the .INI file
1. Open the ReportConfig.ini file located in the share point Reports directory.
2. Read the comments that preced e each variable and determine what v alues you need to enter to generate your report.
Each line of comments begins with a semicolon.
3. Enter the values for the appropriate variables. Some variables apply only to specific reports.
4. Save the .INI file with a name that clearly identifies it.
To generate the report from a command line
Use the following command line:
Conflict Detection and Resolution
Wise Package Studio installation directory\Workbench\IMReport.ex e” /infofi le=“path to ReportConfig.ini file
When you run the command line, the report is saved in the directory you specify in the .INI file. A report.log is also created in the same directory. If you generate multiple reports, save them in different directories to prevent the report.log from being overwritten.
Using the Report Viewer
After you generate a report, it is displayed in a report viewer window.
z To save a report, click Save As in the lower right of the report viewer window. You
can save a report in HTML, XML, or CSV format. When you save a report as HTML, an HTML file is created for each page of the report, and each file has the same name with its page number appended.
z To print a report, click Print in the lower right of the report viewer window. z The date and time when the report was generated appears in the lower left corner of
the report.
z To perform a text search, click on the report and press Ctrl+F. z The first column in each table displays one or more letters that represent the
conflict level. To access an explanation of the conflict levels, click the conflict letter. This displays a Conflict Levels legend in the lower right of the report.
z If there are no conflicts, the report viewer opens and No Conflicts appears in the
middle of the report.
z At the top of the report, you can see the number of Packages in the Software
Manager database and the number of Packages on which conflicts were run.
ConflictManager Reference 50
Interpreting the Conflict Level
When you view a ConflictManager report in the report viewer, you can easily access a legend that explains the conflict level.
See Using the Report Viewer on page 50. If you save a report as a .CSV file, the conflict level appears as a number at the
beginning of each conflict. The conflict level can have one of the following values.
1 Informational, not a true conflict and not likely to cause a problem 2 Warning, a possible conflict 4 File error, deserves attention 8 Component error, deserves attention
A file can have a combination of conflicts with different applications. In that case, the conflict level has one of the following values.
3 informational + warning (1+2) 5 file error + informational (4 + 1) 6 file error + warning (4 + 2) 9 informational + component error (1 + 8) 10 component error + warning (8 + 2) 12 component error + file error (8 + 4)
Conflict Detection and Resolution
ConflictManager Reference 51
Index
Numerics
16-bit .DLLs 17
A
action, in resolution rule 24, 26 active database 10 aggressive rule set 26 Applications/Packages pane 11 AppPath
about 38 in Resolve wizard 40
Autoexec.bat conflict
about 16 detecting 21
Properties unavailable 32 automatic conflict resolution 24, 39 automatic recompile 47
C
clean machine 29 close database 10 compile
after exporting 46
automatically 47 component conflict
about 16
fixing 41
ignoring permanent
components 15
options 20 component error 51 component GUID
conflict 36
ignoring 20 condition, in resolution rule 24, 27 Config.sys conflict
about 16
detecting 21
Properties unavailable 32 conflict
.INI file 43
about 13
filtering list 33
hiding 34
icons 16
level 51
permanent components 15
properties 31
registry key 16, 42
resource 16
settings. See conflict settings
type. See conflict type
unexpected 32 viewing 31
Conflict Details pane
about 12 refreshing 12
conflict detection
during import 21, 30 running 30 status 31 stopping 31
conflict level
interpreting 51
Conflict List pane
about 11 filtering conflicts 33 refreshing 12 viewing conflicts 31
conflict resolution
about 35 Also see resolve conflicts guidelines 35 process 29 redoing 29 undoing 26, 41, 42
conflict resolution rules
See resolution rules
conflict settings
about 19 command unavailable 8 defining 19 excluding directory 22 excluding file 22 excluding registry key 23 excluding wildcard 23 type, specifying 19
conflict type 51
about 17 defining in settings 19 error 20 icons 17 informational 17, 20 warning 17, 20
ConflictManager window
about 10 customizing 12
toolbar 11 ConflictManager, about 8 conservative rule set 25 copy file information to resolve
conflict 37 customize workspace 1 2
D
data source, select 9 database, Software Manager
See Software Manager database
database, Wise Software Repository
See Software Manager database
date/time
conflict 36 ignoring 20
detect conflicts
See conflict detection
device conflict
about 16 detecting 21 Properties unavailable 32
device driver
cannot resolve or export 44 directory, exclude from detection 22 DLL file conflict 13 documentation, Wise 17
E
error conflict
detecting 20
displaying 33 exclude from detection
directory 22
file 22
registry key 23 EXE file conflict 13 export
about 45
and recompiling 47
changes for multiple
applications 47 changes for one application 46 command unavailable 8 to transform 47
F
file
conflict, about 16 copying to resolve conflicts 37 exclude from detection 22 isolating with application path 38,
40 isolating with component 38, 40 moving to resolve conflict 41, 42 reverting to original 41, 42 using latest to resolve conflict 41,
42
File Conflicts report 48
ConflictManager Reference 52
file error 51 file hash
See hash value comparison file size does not match 36 filter, conflict display 33 fix component 41 formatted text string 15
G
Getting Started Guide 18 Group Policy Object
cannot resolve or export 45 group, package
viewing conflicts 31 Groups pane
in ConflictManager 11 GUID
conflict 36
ignoring 20 guidelines for resolution 35
H
hardware driver
cannot resolve or export 44 hash value comparison
about 14
does not match 36
using 20 help
about 18
using 18 hidden conflict
designating 34
displaying 21
icons 17 hide conflict 34 hotfix
cannot resolve or export 45
I
icons
conflict type 17
dimmed 17
resource 16 informational conflict 51
about 17
detecting 20 INI file conflict
about 16
detecting 21
resolving 43 InstallShield Developer .EXE
cannot resolve or export 45 isolated component 38, 40 isolation
method 38, 40
when to use 38
with application paths 38
with components 38 with Resolve wizard 39, 40 with rules 26, 39
K
KeyPath
fixing 41 not consistent 36
L
latest file, select to resolve confli ct 41, 42
M
Major upgrade 47 manual, reference 18 merge module
cannot resolve or export 45
meta data
filtering package display 34 Minor update 47 move file to resolve conflict 41, 42 multiple databases
opening 9
N
new features
Refer to Release Notes NT service conflict
about 16
detecting 21
O
OCX file conflict 13 ODBC conflict
about 16
detecting 21 open database 9 order, rule set 27 overwrite original installation file 47,
47
P
package
attributes, viewing 12
read-only 35, 46
reverting to original 26
testing after resolution 29
viewing conflicts 31 package definition
filtering package display 33 patch
cannot resolve or export 45 PATH variable conflict
about 17
detecting 21
unavailable 32 path, application 38, 40
permanent components, ignore conflicts 15
predefined resolution rules 25 private directory 38, 40 process for resolving conflicts 29 properties
dialog box unavailable 8, 32 resolving .INI conflicts 43 resolving registry conflicts 42 viewing for conflicts 31, 32
R
readme
See release notes
read-only, package
cannot export 46 cannot resolve 35
recompile
after exporting 46
automatically 47 reference manual 18 refresh display 12 Registry Conflicts report 48 registry key
conflict, about 16
conflict, resolving 42
excluding from detection 23
formatted text string 15 release notes 18 report
conflict level 51
generating 49
predefined 48
printing 50
saving directly to a file 50
text search, performing 50
viewer 50 ReportConfig.ini 50 repository database
See Software Manager database resolution rules
about 24
action 24, 26
Also see rule set
command unavailable 8
condition 24, 27
creating rule set 26
deleting rule set 27
editing rule set 27
guidelines 35
how applied 25
isolating file 39
order of rule set 27
predefined 25
sorting files 25, 27 resolution, conflict
See conflict resolution resolve conflicts
about 35
ConflictManager Reference 53
automatically 39 command unavailable 8 copying file 37 fixing component 41 individually 40 isolating files 38 moving file 41, 42 process 29 using latest file 41, 42 with Resolve wizard 40
with rules 39 Resolve wizard 40 restore original conflicts 26, 41, 42 rule
See rule set rule set
aggressive 26
conservative 25
creating 26
deleting 27
editing 27
in multiple databases 25
order 27
predefined 25
S
security settings 8 service conflict
about 16
detecting 21
Properties unavailable 32 shared .DLL counter
fixing 41
not set 37 shortcut conflict
about 16
detecting 21
Properties unavailable 32 Small update 47 SOE Snapshot
cannot resolve or export 45 Software Manager database 9
active 10
closing 10
opening multiples 9 sort files, in rules 25, 27 SQL Server
backing up triggers 48 start ConflictManager 9 status, conflict detection 11, 31 status, package
filtering package display 33 stop conflict detection 31 subscription
cannot resolve or export 45 Summary pane 11 system requirements, Wise product
Refer to Getting Started Guide
system resource conflict 13
T
test resolved package 29 toolbar
ConflictManager 11
transform
cannot resolve or export 45 exporting to 47
triggers
adding to backup process 48
tutorial
Refer to Getting Started Guide
U
update
Major 47 Minor 47 Small 47
V
version does not match 36
W
warning conflict 51
about 17 detecting 20
displaying 33 wildcard, adding 23 Win.ini 16 Windows Installer Editor, detect
conflicts in 28 Windows NT service conflict
about 16
detecting 21 Wise Software Repository database
See Software Manager database
ConflictManager Reference 54
Loading...