/build/static/layout/Breadcrumb_cap_w.png

How to correctly capture .NET applications and Global Assembly Cache?

Capturing a non-MSI setup and using Wise (Symantec) SetupCapture and Windows Installer Editor 8, the snapshot brings back loads of files and registry entries, and I'm not sure what to delete, largely due to the fact that I don't know anything about .NET apps and the GAC.

In the files section, Wise shows a special Global Assembly Cache directly under Destination Computer with a bunch of files in it. This is good. But then it also captured the same files in subfolders of C:\WINDOWS\ASSEMBLY\GAC, along with a file __AssemblyInfo__.ini. (Q1) So, should I remove the files in C:\WINDOWS\ASSEMBLY\GAC from the MSI? (Q2) Why are they in both places in the MSI when the actual destination on the computer is the same?

In the registry section, it has a lot of entries in HKLM\Software\Microsoft\.NETFramework and HKLM\Software\Microsoft\Fusion. (Q3) If I remove these, will the MSI install the .NET components correctly? (Q4) If I don't remove them, is there a chance that it will mess up an existing GAC? Some of the entries that particularly bother me are below

[HKLM\Software\Microsoft\Fusion\NativeImagesIndex\v2.0.50727_32\IL\11e3e749\69872e66\c8\InvertDependencies]
"290c8a21\5810d7d5\e0"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\NativeImagesIndex\v2.0.50727_32\index11e]
"ILUsageMask"=hex:FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,\
FF,FF,FF,FF,FD,89,A2,F1

"NIUsageMask"=hex:FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FF,FB,FF,\
49,FF,FF,FF,FF,81,7E,FF

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\NativeImagesIndex\v2.0.50727_32\NI\181938c6\7950e2c5\1\InvertDependencies]

"290c8a21\\5810d7d5\\e0"=""

"5e2c2b74\\2529ad28\\da"=""

"6f6fa89a\\435924f\\dc"=""

The above is just a small sample of the many discrete registry entries.

(Q5) Are there any components to .NET other than files and registry entries, like some sort of database similiar to the registry?

 


0 Comments   [ + ] Show comments

Answers (4)

Posted by: dinozilla 12 years ago
Orange Senior Belt
1

the best place for your question is perhaps in this document.

http://www2.wise.com/filelib/DotNet.pdf

Posted by: piyushnasa 12 years ago
Red Belt
0

Check the components. The right registries should be associated with the corresponding components.

Posted by: pjgeutjens 12 years ago
Red Belt
0

In WPS you can have the necessary assemblies generated for the .DLL files by right-clicking them, going to details and filling out the necessary details in the Assembly tab. This will fill out the MSIAssembly and MSIAssemblyName tables.

Posted by: pjgeutjens 12 years ago
Red Belt
0

Another option would be to run regasm.exe for each of the dlls, using a custom action in your msi.

 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ