我遇到了一些与 MSI 安装升级相关的奇怪问题,也许有人可以帮助我:
我有两个 MSI,一个是原始的,一个是升级的:
- 微星 1.0 版
- 包含要安装到 GAC 的 .NET 程序集 foo.dll
- foo.dll 在 MSI 文件系统 gui 中属于“Assembly”(不是“Output”)类型。
- 微星 2.0 版
- 还包含 foo.dll(相同版本),以及一堆额外的程序集。
- 我希望 MSI 2.0 完全取代 1.0,所以我将 RemovePerviousVersion 设置为 False。
现在两种安装场景:
我运行 MSI 1.0。Foo.dll 已正确安装到 GAC。然后我运行 MSI 2.0 并且Foo.dll 似乎已从 GAC 中删除,但其他程序集在那里。我没有办法。但是,如果我去添加/删除程序并单击“修复”,就会放入 Foo.dll。
MSI 1.0 从未安装,我运行的是 MSI 2.0。正如预期的那样, Foo.dll(和其他程序集)在那里。
任何想法为什么 foo.dll 在升级过程中被删除?提前致谢!
-肯
更新 经过一些刷新/重建后,它现在似乎可以工作了。但是,现在当我卸载 MSI 时它不会删除 foo.dll,即使它的属性“Permanent”设置为 false。问题不大,但很高兴知道发生了什么。