为什么AssemblyFileVersion会自动更改产品版本?

时间:2017-07-11 11:04:01

标签: .net assemblies visual-studio-setup-proje

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

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

2 个答案:

答案 0 :(得分:1)

似乎在AssemblyInfo.cs中明确地添加AssemblyInformationalVersion会影响Assembly> Property> Details> Product Version

[assembly: AssemblyInformationalVersion("1.1.1.1")]

注意:默认情况下,此属性不可用。

另外,我了解到AssemblyFileVersion用于安装程序的部署相关工作,因此在我的情况下,它用作程序集的ProductVersion,AssemblyVersion不用作程序集>属性>详细信息>产品版本。

答案 1 :(得分: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用于链接到客户端程序集,这通常是您不想更改的内容。