Inno Setup卸载程序不会从GAC中删除程序集

时间:2012-03-14 16:35:52

标签: .net installation inno-setup gac

安装程序成功将程序集安装到GAC中。但是,卸载程序会将程序集保留在GAC中。

我错过了什么吗?我真的不想在卸载时使用 gacutil.exe 删除程序集。

Source: "..\TestHelperInject\bin\x86\Release\TestHelperInject.dll"; DestDir: "{app}"; Flags: gacinstall sharedfile uninsnosharedfileprompt; StrongAssemblyName: "TestHelperInject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ccbe9854a3cee58d, processorArchitecture=x86"

更新:好的,所以在卸载过程中从GAC移除程序集在WinXP上运行,但在Win7上不行。

3 个答案:

答案 0 :(得分:2)

来自Inno设置documentation

  

<强> gacinstall

     

将文件安装到.NET全局程序集缓存中。什么时候   与sharedfile结合使用时,只会卸载该文件   当参考计数达到零时。

     

要卸载文件,卸载程序将使用强组件名称   由参数StrongAssemblyName指定。

     

如果尝试使用此标志,则会引发异常   没有.NET Framework的系统。

因此,似乎Inno Setup会为您处理卸载。

答案 1 :(得分:0)

如果它没有卸载它,那么它被标记为使用/共享(请参阅sharedfile标志)或StrongAssemblyName不正确。 请注意,Inno仅要求指定StrongAssemblyName,而不是正确或有效。

尝试使用/log参数运行卸载,以查看卸载时报告的内容。

答案 2 :(得分:0)

可能是&#34; processorArchitecture = x86&#34;强名是一个问题。如果您将其更改为&#34; ProcessorArchitecture = MSIL&#34;?

,这是否有效

(这是我从http://odd-staff.blogspot.com.au/2010/04/well.html获得的提示)