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

发布于 2024-10-09 01:04:15 字数 387 浏览 0 评论 0原文

圣诞快乐,StackOverflowians!

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

我不知道是否是我配置错误,或者 Inno Setup 只是这样愚蠢,但看起来 Inno 并没有完全删除程序集。其结果是,当我尝试运行 MSI 安装程序时,即使在卸载之后,我也会在日志中看到以下内容: 由于程序集已存在,因此正在跳过程序集组件的安装:{guid}

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

Merry Christmas, StackOverflowians!

I started out distributing my .NET GAC-located program using Inno Setup, but due to its various shortcomings, I want to switch over to MSI for the next version. Unfortunately, it seems like this is going to be a major hassle for my existing users... Of course, I'm going to have to insist that my users manually uninstall the previous version before installing the new one. But it seems like even if the previous version is completely uninstalled, it's still problematic.

I don't know if it's something I misconfigured, or if Inno Setup is just stupid this way, but it seems like Inno does not fully remove the assemblies. The result of this is that when I try to run my MSI installer, I see the following in the log, even after uninstallation:
skipping installation of assembly component: {guid} since the assembly already exists

So what do I do here? Is there any way I can force MSI to overwrite the assemblies even if they already exist?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

塔塔猫 2024-10-16 01:04:15

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

Build your DLL's with the same strong name ( AssemblyVersion ) but with a higher File Version ( AssemblyFileVersion ). Be careful that your classes are 100% backwards compatible as the old DLL will be replaced.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文