圣诞快乐,StackOverflowians!
我开始使用Inno Setup分发我的.NET GAC定位程序,但由于其各种缺点,我想切换到下一版本的MSI。不幸的是,对于我现有的用户来说,这似乎是一个很大的麻烦...当然,我必须坚持要求我的用户在安装新版本之前手动卸载以前的版本。但似乎即使先前版本已完全卸载,它仍然存在问题。
我不知道这是我错误配置的,或者Inno Setup是不是很愚蠢,但似乎Inno没有完全删除程序集。结果是,当我尝试运行MSI安装程序时,即使在卸载后,我也会在日志中看到以下内容:
skipping installation of assembly component: {guid} since the assembly already exists
那我该怎么办?有什么办法可以强迫MSI覆盖程序集,即使它们已经存在了吗?
答案 0 :(得分:2)
使用相同的强名称(AssemblyVersion)构建DLL,但使用更高的文件版本(AssemblyFileVersion)。请注意,您的类是100%向后兼容的,因为旧的DLL将被替换。