强制MSI在安装时覆盖程序集

时间:2010-12-26 00:18:30

标签: .net wix windows-installer gac inno-setup

圣诞快乐,StackOverflowians!

我开始使用Inno Setup分发我的.NET GAC定位程序,但由于其各种缺点,我想切换到下一版本的MSI。不幸的是,对于我现有的用户来说,这似乎是一个很大的麻烦...当然,我必须坚持要求我的用户在安装新版本之前手动卸载以前的版本。但似乎即使先前版本已完全卸载,它仍然存在问题。

我不知道这是我错误配置的,或者Inno Setup是不是很愚蠢,但似乎Inno没有完全删除程序集。结果是,当我尝试运行MSI安装程序时,即使在卸载后,我也会在日志中看到以下内容: skipping installation of assembly component: {guid} since the assembly already exists

那我该怎么办?有什么办法可以强迫MSI覆盖程序集,即使它们已经存在了吗?

1 个答案:

答案 0 :(得分:2)

使用相同的强名称(AssemblyVersion)构建DLL,但使用更高的文件版本(AssemblyFileVersion)。请注意,您的类是100%向后兼容的,因为旧的DLL将被替换。