PDA

View Full Version : Uninstall .NET 2.0 assemblies from GAC



eengelen
12-15-2005, 06:58 AM
When I create a new Basic MSI project, add a .NET 2.0 assembly, set it's location to the GAC, build a release, install and unstall: the assembly is not removed from the GAC.

When I open the MSI-file in InstallShield and look at the MsiAssemblyName table there are rows with 'Name', 'Version', 'PublicKeyToken', 'Culture' and 'FileVersion'.
.NET 2.0 requires that a row with the 'ProcessorArchitecture' is supplied. That why uninstall fails. Manually adding a 'ProcessorArchitecture' row solves the problem.

Is there a way to let Installshield add a row 'ProcessorArchitecture' automatically'? IS 11.5 supports .NET 2.0 so it should be possible.

Thanks

MichaelU
12-15-2005, 11:24 AM
We definitely want to track this down and fix it. I just performed an inconclusive test with Microsoft.Build.Framework.dll, as we didn't include the processorArchitecture but Lutz Roeder's .NET Reflector doesn't show it either. However http://msdn.microsoft.com/library/en-us/msi/setup/msiassembly_table.asp suggests all these values are available in the manifest; which I would have hoped we were implicitly referencing. Do you have the processorArchitecture value set in your assembly's manifest?

eengelen
12-16-2005, 02:32 AM
No it is not set:

// Assembly Ascon.Common, Version 1.0.2137.22546
Location: F:\Ascon\Common\Ascon.Common\bin\Release\Ascon.Common.dll
Name: Ascon.Common, Version=1.0.2137.22546, Culture=neutral, PublicKeyToken=2088aa7ba8a49089

I don't know whether/how I can set it manually, but I shouldn't, should I?

eengelen
12-19-2005, 08:21 AM
Another problem:
Upgrading/patching doesn't remove the old assembly from the GAC. :mad:

Anyone?

pctaylor
02-10-2006, 10:57 AM
I have this problem too.

My MsiAssemblyName table is empty. Do I have to manually populate this table? And the table doesn't have a PublicKey column.

eengelen
02-13-2006, 12:58 AM
I have this problem too.

My MsiAssemblyName table is empty. Do I have to manually populate this table? And the table doesn't have a PublicKey column.
Yes. For each assembly in the GAC you need to add one 'ProcessorArchitecture'-row.
This problem is not yet solved by Macrovision.

MichaelU
05-15-2006, 01:06 PM
We (finally) have an unofficial hotfix for this one, applicable only to InstallShield 11.5. Since it's unofficial, it hasn't gone through any QA on our side. While it's expected to resolve this problem, there are no guarantees.

To apply this unofficial hotfix, download the attached zip and extract either ISWIBuild.dll (for the IDE) or SABuild.dll (for standalone build). Back up your existing file of the same name in the System (or main install) folder, and place the newly extracted file where the original was.

Note: for this to extract a ProcessorArchitecture row, the .NET 2.0 framework must be installed on the building machine. Otherwise it will fall back to leaving the row out. Please direct any feedback here, to me, especially if there are any difficulties with the architecture detected.

Steve Mallam
05-16-2006, 07:06 AM
That seems to work - any idea on approximately how long the "official" hotfix will be?

Thanks!

Gunsun
05-17-2006, 07:56 AM
Will there be a hotfix for this issue for 10.5 as well?

MichaelU
05-17-2006, 09:57 AM
I have no estimates on an official 11.5 hotfix; our QA lead is under more than enough pressure without this. :o

I wouldn't expect a hotfix for 10.5; while things by and large will work with .NET 2.0 assemblies, InstallShield 10.5 does not officially support .NET 2.0.

juergen.haigis
10-03-2006, 10:38 AM
This problem still exists in IS 12
Installing into GAC works, uninstalling does not. Processor Arcitecture can not be found in MSIAssembly Table or MSIAssemblyName Table after building setup and viewing the *.msi with orca. Both Tables keep empty in IS12 project viewing them in direct mode.
in http://community.macrovision.com/showthread.php?t=161546 you can see that some work has been "done for 12 to fix GAC uninstallation problems with .NET 2.0 assemblies requiring processor architecture information" But it seems that this work is not tested very well.
What is to do dear Installshield supporters ?

MichaelU
10-03-2006, 10:42 AM
Yes, we finalized the fix too late for inclusion in the original 12 release. You can get the hotfix for 11.5 or for 12 at:

http://support.installshield.com/kb/view.asp?articleid=Q112155

juergen.haigis
10-04-2006, 01:30 AM
Dear Installshield crew,

interesting to hear about this hotfix in this way. Have you ever heard about update service ? Its a way to tell the customers that neccessary software updates are availabe. You should have a look at installshield. They offer something like that and it works fine, if you use it in the correct way.
Have you ever heard about a 'Quick Patch Project' ? It is used to replace already existing files on target machines. Deploying a zip file without any instructions inside is a shame. You are a company who wants to earn money with selling software used to create setups, patches and update notification to customers and act like this ? Shame on you.

GerardOBrien
10-08-2006, 11:54 PM
Dear Installshield crew,

interesting to hear about this hotfix in this way. Have you ever heard about update service ? Its a way to tell the customers that neccessary software updates are availabe. You should have a look at installshield. They offer something like that and it works fine, if you use it in the correct way.
Have you ever heard about a 'Quick Patch Project' ? It is used to replace already existing files on target machines. Deploying a zip file without any instructions inside is a shame. You are a company who wants to earn money with selling software used to create setups, patches and update notification to customers and act like this ? Shame on you.

I whole-heartedly agree. This is ridiculous. Especially when considering your product line.

kimcarlsen
12-13-2006, 08:22 AM
Yes It could be nice if the update services actually works for their own product..
I wonder how many bugs, that are fixed, that we donīt know about. Can we get a list of fixes?

Regards
Kim

ricko2001
07-26-2007, 07:10 PM
My last installer left several assemblies in the GAC on customers' systems.

Can anyone suggest how my new major update installer can cleanup those old assemblies?

I have read that it is not advisable to use GACutil.exe in installers.

Thanks.