0

我有一个名为 A.dll 版本 3.303.1.1 的 .NET DLL。
我有一个带有补丁的新 A.dll,但它具有相同的版本 3.303.1.1,我需要在我的应用程序的即将发布的版本中提供它。

我需要做的是在安装过程中用来自 GAC 的新补丁 A.dll 强制替换旧 A.dll。我正在使用 Installshield 创建安装程序。

DLL 是应用程序所需的第三方 DLL。旧 DLL 的文件版本也是 3.303.1.1;但对于新的 DLL,它是 3.3.1.1。

假设仍然安装旧版本的应用程序,并且在我们使用新设置安装新版本应用程序时应该保留。

所以旧版本也应该指向新的dll A.dll。

如何使用 Installshield(2011) 自定义设置以实现该行为?

我的试验:当我简单地将新 DLL 添加到设置中并尝试将其安装在已安装旧版本应用程序的机器上时,新 DLL 未安装在 GAC 中,因为两个 DLL 的版本相同。但是,当我使用 GACUTIL.exe 强制安装新的 DLL 时,我能够这样做,并且旧的 DLL 被机器中的新 DLL 替换。

谢谢你。

4

1 回答 1

0

使用递增的 AssemblyFileVersion 重建 DLL,但相同的 AssemblyVersion 和 InstallShield / Windows Installer 应该会自动执行您要查找的操作。

于 2013-01-02T19:51:00.963 回答