Jump to content

Invalid MSI created?


Recommended Posts

Hello all,

I am attempting to use the "/createMSI" command line switch with Paint.Net 2.61 to create an MSI suitable for Group Policy deployment on a Windows 2000 Active Directory network. The MSI is created successfully, and I can use it to install on individual workstations. When, however, I attempt to add the MSI as a new package in the group policy (under the "User Configuration\Software Settings\Software Installation" key), I receive the following error:

Add operation failed.  Unable to extract deployment information from the package.  Run validation on the package to ensure that the package is correct.

Following the directions of this package, I downloaded Microsoft's Orca MSI editing/validation program (version 3.1.4000.2049) and attempted to validate the MSI under the "Windows 2000 Logo Program Suite" option. Unfortunately, the MSI will not validate. The three errors that I get are as follows:

ICE08	ERROR	Component: C__C08B0CE0650062A8481C7009710B08A1 has a duplicate GUID: {5DB3B30F-F40C-9328-67D8-CB61A1C500D1}

ICE30	ERROR	The target file 'PAINTD~2.DLL|PaintDotNet.Resources.dll' is installed in '[TARGETDIR]\' by two different components on an LFN system: 'C__60B027B3CDE8EE39AE49C7A1C1844214' and 'C__C08B0CE0650062A8481C7009710B08A1'. This breaks component reference counting.

ICE30	ERROR	The target file 'PAINTD~2.DLL|PaintDotNet.Resources.dll' is installed in '[TARGETDIR]\' by two different components on an LFN system: 'C__60B027B3CDE8EE39AE49C7A1C1844214' and 'C__C08B0CE0650062A8481C7009710B08A1'. This breaks component reference counting.

Although I am not an expert at MSI's, it appears that the MSI is configured to install the same file twice. There are also some other warnings that pop up during validation, but these are the only errors.

Is it possible that these errors would be responsible for the difficulties in configuring this MSI as a software package within the group policy, or would something else cause this?

Any help or suggestions appreciated. I can post a full copy of the Orca validation results of the MSI if that would be helpful.

-Chris

Link to comment
Share on other sites

Hmm, other people have had success with this so I'm not sure why it's throwing errors at you. I am not very familiar with AD deployment, nor do I have access to an AD network where I am an administrator, and have had to implement this stuff relatively blindly. I don't know why these errors would cause problems with configuring a group policy deployment.

PaintDotNet.Resources.dll is indeed targeted twice in our MSI, but it's because the setup project in Visual Studio does not handle dependencies correctly in some cases (if you include project A's "primary output" which is an EXE, and some other B.EXE, both of which depend on C, it will include C twice in the MSI).

Go ahead and post the full Orca results, I'll see if I can find anything in there.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Hi Rick,

The feeling I got from searching on Google et. al was that the "/createMSI" option generally worked for people. I suspect that the problem must lie with our AD setup rather than with the MSI created.

Here are the Orca results based on the "Windows 2000 Logo Program Suite" evaluation file. Hopefully they will be of use in further development.

ICE08	ERROR	Component: C__C08B0CE0650062A8481C7009710B08A1 has a duplicate GUID: {5DB3B30F-F40C-9328-67D8-CB61A1C500D1}
ICE30	ERROR	The target file 'PAINTD~2.DLL|PaintDotNet.Resources.dll' is installed in '[TARGETDIR]\' by two different components on an LFN system: 'C__60B027B3CDE8EE39AE49C7A1C1844214' and 'C__C08B0CE0650062A8481C7009710B08A1'. This breaks component reference counting.
ICE30	ERROR	The target file 'PAINTD~2.DLL|PaintDotNet.Resources.dll' is installed in '[TARGETDIR]\' by two different components on an LFN system: 'C__60B027B3CDE8EE39AE49C7A1C1844214' and 'C__C08B0CE0650062A8481C7009710B08A1'. This breaks component reference counting.


ICE33	WARNING	Reg key _26EC0B49A4E54FDBA59DC57C03576693 is used in an unsupported way. ProgId should be registered via the ProgId table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _7BD27B15AA014EA7B0423863230ADF44 is used in an unsupported way. ProgId should be registered via the ProgId table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _FE40F07DA4D543AD9C929BF7F8FCAF17 is used in an unsupported way. ProgId should be registered via the ProgId table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _851AB270E16546289E6B7A7E53BEF08B is used in an unsupported way. ProgId should be registered via the ProgId table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _92E72AAE95AB4AD09F3A33310BEC95B4 is used in an unsupported way. ProgId should be registered via the ProgId table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _A1C47111B91D4A4B8AD30239B651E156 is used in an unsupported way. ProgId should be registered via the ProgId table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _E412E482A38A40C7A05F07F12C6CCB4C is used in an unsupported way. ProgId should be registered via the ProgId table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _2A85918306A448E1B40ED9A36E1FA2E2 is used in an unsupported way. ProgId - CLSID associations should be registered via the ProgId and Class tables. This entry may overwrite a value created through those tables.
ICE33	WARNING	Reg key _EE20BA1CF45B4AE8887C8D2E0260CD5B is used in an unsupported way. ProgId - CLSID associations should be registered via the ProgId and Class tables. This entry may overwrite a value created through those tables.
ICE33	WARNING	Reg key _DEBF0A77A6144356A49698F168B0E790 is used in an unsupported way. ProgId - CLSID associations should be registered via the ProgId and Class tables. This entry may overwrite a value created through those tables.
ICE33	WARNING	Reg key _2AA27A6213244B88BCE4F1371D40EA92 is used in an unsupported way. ProgId - CLSID associations should be registered via the ProgId and Class tables. This entry may overwrite a value created through those tables.
ICE33	WARNING	Reg key _112E58F7EB5C44989B5938F581740510 is used in an unsupported way. Version Independent ProgId should be registered via the ProgId table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _273AF0EDD118436D8BF314D3BCCD22F6 is used in an unsupported way. Version Independent ProgId should be registered via the ProgId table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _981757EF5CCC496E8C32EFDAA8812228 is used in an unsupported way. Shell extension verbs info should be registered via the Verb table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _172635C5D3274D0AA6A3DF3E888F0899 is used in an unsupported way. Shell extension verbs info should be registered via the Verb table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _72F9F79F7C18406797E09EEFBD65CB17 is used in an unsupported way. Shell extension verbs info should be registered via the Verb table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _F090DFD5D01D4EA0A7AB29953E056D31 is used in an unsupported way. Shell extension verbs info should be registered via the Verb table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _E56C530D53164568AE2889E4A97BB42D is used in an unsupported way. Shell extension verbs info should be registered via the Verb table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _3A51F6EAD0A8498BBE315523F51A3510 is used in an unsupported way. Shell extension verbs info should be registered via the Verb table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _EBBFBA1ECD2F4F8FA8932D3D1BD06F6E is used in an unsupported way. Shell extension verbs info should be registered via the Verb table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _7BD27B15AA014EA7B0423863230ADF44 is used in an unsupported way. Extensions should be registered via the Extension table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _FE40F07DA4D543AD9C929BF7F8FCAF17 is used in an unsupported way. Extensions should be registered via the Extension table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _851AB270E16546289E6B7A7E53BEF08B is used in an unsupported way. Extensions should be registered via the Extension table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _A1C47111B91D4A4B8AD30239B651E156 is used in an unsupported way. Extensions should be registered via the Extension table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _57AE3E4A09E24D1EBB77A547E007D6C4 is used in an unsupported way. ProgId should be registered via the ProgId table. This entry may overwrite a value created through that table.
ICE33	WARNING	Reg key _06DD39B0DCA5489CAB259D0A6412EFF7 is used in an unsupported way. ProgId should be registered via the ProgId table. This entry may overwrite a value created through that table.
ICE48	WARNING	Directory 'TARGETDIR' appears to be hardcoded in the property table to a local drive.


ICE01	INFO	ICE01 - Simple ICE that doesn't test anything
ICE01	INFO	Created 04/29/1998. Last Modified 08/17/1998.
ICE01	INFO	Called at 9:11:13.
ICE02	INFO	ICE02 - ICE to test circular references in File and Component tables
ICE02	INFO	Created 05/18/1998. Last Modified 10/12/1998.
ICE03	INFO	ICE03 - ICE to perform data validation and foreign key references

ICE03	INFO	Created 05/19/1998. Last Modified 10/03/2001.
ICE04	INFO	ICE04 - ICE to validate File table sequences according to Media table
ICE04	INFO	Created 05/19/1998. Last Modified 09/24/1998.
ICE04	INFO	Max Sequence in Media Table is 204
ICE05	INFO	ICE05 - ICE to validate that required data exists in certain tables.
ICE05	INFO	Created 05/20/1998. Last Modified 01/26/1999.
ICE06	INFO	ICE06 - ICE that looks for missing columns in database tables
ICE06	INFO	Created 05/20/1998. Last Modified 02/18/1999.
ICE07	INFO	ICE07 - ICE that ensures that fonts are installed to the fonts folder. Only checked if you have a Font table
ICE07	INFO	Created 05/21/1998. Last Modified 02/18/1999.
ICE08	INFO	ICE08 - Checks for duplicate GUIDs in Component table
ICE08	INFO	Created 05/21/98. Last Modified 10/08/98.
ICE09	INFO	ICE09 - Checks for components whose Directory is the System directory but aren't set as system components 
ICE09	INFO	Created 05/21/98. Last Modified 10/09/2000.
ICE10	INFO	ICE10 - ICE that ensures that advertise states of feature childs and parents match
ICE10	INFO	Created 05/22/1998. Last Modified 10/02/2000.
ICE11	INFO	ICE11 - ICE that validates the Product Code of a nested install (advertised MSI) custom action type
ICE11	INFO	Created 05/22/1998. Last Modified 08/17/1998.
ICE12	INFO	ICE12 - ICE that validates the Property type custom actions
ICE12	INFO	Created 05/29/1998. Last Modified 01/14/2000.
ICE13	INFO	ICE13 - ICE that validates that no dialogs are listed in the *ExecuteSequence tables
ICE13	INFO	Created 06/08/1998. Last Modified 08/17/1998.
ICE14	INFO	ICE14 - ICE that ensures that Feature_Parents do not have the ifrsFavorParent attribute set
ICE14	INFO	Created 06/08/1998. Last Modified 01/27/1999.
ICE15	INFO	ICE15 - ICE that ensures that a circular reference exists between the Mime and Extension tables
ICE15	INFO	Created 06/11/1998. Last Modified 01/05/1999.
ICE16	INFO	ICE16 - ICE that ensures that the ProductName in the Property table is less than 64 characters
ICE16	INFO	Created 06/11/1998. Last Modified 10/03/2001.
ICE17	INFO	ICE17 - ICE that validates foreign key dependencies based upon control types in the Control table.
ICE17	INFO	Created 06/16/1998. Last Modified 05/15/1999.
ICE18	INFO	ICE18 - ICE that validates the nulled KeyPath columns of the Component table.
ICE18	INFO	Created 06/18/1998. Last Modified 03/24/1999.
ICE19	INFO	ICE19 - ICE that validates that ComponentIDs and KeyPaths for advertising.
ICE19	INFO	Created 06/18/1998. Last Modified 01/21/1999.
ICE20	INFO	ICE20 - ICE that validates for Standard Dialogs if UI is authored.
ICE20	INFO	Created 06/25/1998. Last Modified 10/04/1998.
ICE21	INFO	ICE21 - ICE that validates that all components reference a feature.
ICE21	INFO	Created 06/29/1998. Last Modified 03/02/1999.
ICE22	INFO	ICE22 - ICE that validates that the feature and component referenced by a PublishedComponent actually map.
ICE22	INFO	Created 06/29/1998. Last Modified 03/02/1999.
ICE23	INFO	ICE23 - ICE that validates the tab order of all dialogs.
ICE23	INFO	Created 07/02/1998. Last Modified 01/17/2000.
ICE24	INFO	ICE24 - ICE that validates specific properties in the Property table.
ICE24	INFO	Created 07/15/1998. Last Modified 01/15/2004.
ICE25	INFO	ICE25 - ICE that validates module dependencies/exclusions.
ICE25	INFO	Created 07/20/1998. Last Modified 08/31/1998.
ICE26	INFO	ICE26 - ICE that validates required and prohibited actions in the Sequence tables.
ICE26	INFO	Created 08/13/1998. Last Modified 04/06/1999.
ICE27	INFO	ICE27 - ICE that validates sequence table organization and sequence table dependencies.
ICE27	INFO	Created 08/04/1998. Last Modified 04/22/1999.
ICE27	INFO	AdminExecuteSequence TABLE: Validating organization. . .
ICE27	INFO	AdminExecuteSequence TABLE: Validating sequence of actions and dependencies. . .
ICE27	INFO	AdminUISequence TABLE: Validating organization. . .
ICE27	INFO	AdminUISequence TABLE: Validating sequence of actions and dependencies. . .
ICE27	INFO	AdvtExecuteSequence TABLE: Validating organization. . .
ICE27	INFO	AdvtExecuteSequence TABLE: Validating sequence of actions and dependencies. . .
ICE27	INFO	AdvtUISequence TABLE: Validating organization. . .
ICE27	INFO	AdvtUISequence TABLE: Validating sequence of actions and dependencies. . .
ICE27	INFO	InstallExecuteSequence TABLE: Validating organization. . .
ICE27	INFO	InstallExecuteSequence TABLE: Validating sequence of actions and dependencies. . .
ICE27	INFO	InstallUISequence TABLE: Validating organization. . .
ICE27	INFO	InstallUISequence TABLE: Validating sequence of actions and dependencies. . .
ICE28	INFO	ICE28 - ICE that validates actions that can't be separated by ForceReboot.
ICE28	INFO	Created 08/13/1998. Last Modified 10/27/1998.
ICE29	INFO	ICE29 - ICE that validates stream names.
ICE29	INFO	Created 08/11/1998. Last Modified 10/27/1998.
ICE29	INFO	Stream Column Found In Patch Table
ICE29	INFO	Stream Column Found In Icon Table
ICE29	INFO	Stream Column Found In MsiPatchHeaders Table
ICE29	INFO	Stream Column Found In MsiDigitalSignature Table
ICE29	INFO	Stream Column Found In MsiDigitalCertificate Table
ICE29	INFO	Stream Column Found In SFPCatalog Table
ICE29	INFO	Stream Column Found In Binary Table
ICE30	INFO	ICE30 - ICE that detects cross-component file collisions.
ICE30	INFO	Create 08/25/1998. Last Modified 06/26/2001.
ICE30	INFO	Resolving Component Paths...
ICE30	INFO	Checking for colliding files...
ICE31	INFO	ICE31 - ICE to verify that controls use valid text styles.
ICE31	INFO	Created 07/24/1998. Last Modified 01/21/2005.
ICE33	INFO	ICE33 - ICE to verify that Registry entries do not duplicate or collide with registry tables.
ICE33	INFO	Created 09/01/1998. Last Modified 04/19/2001.
ICE34	INFO	ICE34 - ICE to verify that all radio groups have a default.
ICE34	INFO	Created 08/06/1998. Last Modified 10/27/1998.
ICE35	INFO	ICE35 - ICE that validates that compressed files are not set RFS, and ensures they have CABs.
ICE35	INFO	Created 08/18/1998. Last Modified 10/17/2000.
ICE36	INFO	ICE36 - ICE that flags unused icons in the icon table, increasing performance.
ICE36	INFO	Created 08/17/1998. Last Modified 01/17/2000.
ICE38	INFO	ICE38 - ICE that verifes that components in the user profile use HKCU reg entries as KeyPaths.
ICE38	INFO	Created 08/28/1998. Last Modified 01/17/2000.
ICE39	INFO	ICE39 - ICE that validates summary information stream properties.
ICE39	INFO	Created 09/03/1998. Last Modified 01/14/2004.
ICE40	INFO	ICE40 - ICE that checks various miscellaneous problems.
ICE40	INFO	Created 09/07/1998. Last Modified 12/02/2000.
ICE41	INFO	ICE41 - ICE that verifes that Feature/Component references are valid in advertising tables.
ICE41	INFO	Created 09/08/1998. Last Modified 09/11/1998.
ICE42	INFO	ICE42 - ICE that verifes arguments and context values in the Class Table.
ICE42	INFO	Created 09/10/1998. Last Modified 07/21/1999.
ICE43	INFO	ICE43 - ICE that verifes non-advertised shortucts are in components with HKCU keypaths.
ICE43	INFO	Created 09/27/1998. Last Modified 01/17/2000.
ICE44	INFO	ICE44 - ICE that verifes Dialog events refer to valid Dialog entries.
ICE44	INFO	Created 09/28/1998. Last Modified 09/30/1998.
ICE45	INFO	ICE45 - ICE that verifes reserved bits are not set in attributes columns.
ICE45	INFO	Created 10/01/1998. Last Modified 06/15/1999.
ICE46	INFO	ICE46 - ICE that checks for property usage where the property differs only by case from a defined property.
ICE46	INFO	Created 10/14/1998. Last Modified 10/02/2000.
ICE47	INFO	ICE47 - ICE that checks for features with more than 800 components.
ICE47	INFO	Created 10/20/1998. Last Modified 03/17/1999.
ICE48	INFO	ICE48 - ICE that checks for directories that are hardcoded to local drives.
ICE48	INFO	Created 10/26/1998. Last Modified 10/26/1998.
ICE49	INFO	ICE49 - ICE that checks for non-REG_SZ default registry entries.
ICE49	INFO	Created 10/27/1998. Last Modified 10/27/1998.
ICE50	INFO	ICE50 - ICE that verifies the icon extension matches the shortcut target extension.
ICE50	INFO	Created 10/27/1998. Last Modified 10/29/1998.
ICE51	INFO	ICE51 - ICE to verify that only TTC/TTF fonts are missing titles.
ICE51	INFO	Created 10/28/1998. Last Modified 10/28/1998.
ICE52	INFO	ICE52 - ICE to verify that APPSearch properties are public properties.
ICE52	INFO	Created 11/16/1998. Last Modified 11/16/1998.
ICE53	INFO	ICE53 - ICE to verify that registry entries do not overwrite private installer data.
ICE53	INFO	Created 11/19/1998. Last Modified 07/21/1999.
ICE54	INFO	ICE54 - ICE to check that Component KeyPaths are not companion files.
ICE54	INFO	Created 12/07/1998. Last Modified 12/07/1998.
ICE55	INFO	ICE55 - ICE to check that LockPermission objects exist and have valid permissions.
ICE55	INFO	Created 12/14/1998. Last Modified 12/14/1998.
ICE56	INFO	ICE56 - ICE to check that the Directory structure has a single, valid, root.
ICE56	INFO	Created 12/15/1998. Last Modified 03/29/1999.
ICE57	INFO	ICE57 - Checks that components contain per-machine or per-user data, but not both.
ICE57	INFO	Created 02/11/1999. Last Modified 01/17/2000.

-Chris

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...