0

为了启用升级,我确实修改了 DLL 的 AssebmlyVersion 并且没有更改 AssemblyFileVersion。我假设当我更改 AssemblyVersion 时,安装程​​序会自动检测最新的 DLL 并在升级时替换。但是,升级未能安装最新的 DLL。

在 VS2015 项目中,当我更改 AssemblyVersion 时,我没有看到 ProductVersion 反映了这一点。后来当我更改时,AssemblyFileVersion 然后我注意到程序集的 ProudctVersion 反映了版本。知道为什么会出现这种行为吗?

4

2 回答 2

1

似乎在 AssemblyInfo.cs 中显式添加 AssemblyInformationalVersion 会影响 Assembly>Property>Details>Product Version

[assembly: AssemblyInformationalVersion("1.1.1.1")]

注意:此属性默认不可用。

此外,我了解到 AssemblyFileVersion 用于安装程序的部署相关工作,因此在我的情况下,它用作程序集的 ProductVersion,而 AssemblyVersion 不用作 Assembly>Property>Details>Product Version。

于 2017-07-12T11:16:32.277 回答
0

Visual Studio 项目中的升级使用 RemovePreviousVersion 项目值集 True。此外,增加安装项目的 ProductVersion 并接受更改(ProductCode 将更改)。此时,就 MSI 而言,升级已准备就绪。仍然相关:

https://www.red-gate.com/simple-talk/dotnet/visual-studio/updates-to-setup-projects/

要真正获取要替换的更新文件,它们的文件版本需要增加,主要是因为覆盖规则:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa367835(v=vs.85).aspx

对于 Win32 文件,这是文件版本,对于托管代码,它是 AssemblyFileVersion。通常最好只更改 AssemblyFileVersion,因为 AssemblyVersion 用于链接到客户端程序集,而这通常是您不想更改的。

于 2017-07-21T20:24:20.307 回答