gpt4 book ai didi

wix - 强制安装程序升级 GAC 中的文件,无论版本号如何

转载 作者:行者123 更新时间:2023-12-02 14:38:19 25 4
gpt4 key购买 nike

我有一个 WiX 安装程序,需要将 Interop.FOOBARLib.DLL 的新位安装到 GAC。问题在于版本号与旧版本相同,并且升级时新位不会写入 GAC。我们在InstallFinalize 操作之后执行RemoveExistingProducts 操作。

我们无法将“RemoveExistingProducts”操作移至安装的早期位置。

foobar.dll 组件不是我的组件,因此我无法增加类型库版本(这会导致互操作版本增加,所有这些问题都会消失)。

即使版本相同,是否有办法强制在 GAC 中升级文件?我想要类似于“gacutil.exe/f”的行为。

组件看起来像:

<Component Id="Interop.FOOBARLib.dll" Guid="{4E0C173E-34DF-4249-A3A6-5530047FA65B}" >
<File Id="Interop. FOOBARLib.dll" Name="Interop.FOOBARLib.dll" KeyPath="yes" Assembly=".net"/>
</Component>

最佳答案

您尝试执行的操作称为 GAC 中程序集的就地更新。为了使其正常工作,两个 Interop.FOOBARLib.dll 库必须具有相同的程序集版本,但较新的 dll 必须具有更高的文件版本。文件版本属性必须包含在新 MSI 的 MsiAssemblyName 表中。 Wix 默认情况下不包含此属性,因此您必须将以下参数添加到您的 .wixproj 文件中:

<SetMsiAssemblyNameFileVersion>True</SetMsiAssemblyNameFileVersion>

另请参阅:

In-place updating using Wix

关于wix - 强制安装程序升级 GAC 中的文件,无论版本号如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1797884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com