为什么 AssemblyFileVersion 会自动更改产品版本?
Why AssemblyFileVersion automatically changes Product version?
为了升级,我确实修改了DLL的AssebmlyVersion,并没有改变AssemblyFileVersion。我假设在更改 AssemblyVersion 时,安装程序会自动检测最新的 DLL 并在升级时进行替换。但是,升级未能安装最新的 DLL。
在 VS2015 项目中,当我更改 AssemblyVersion 时,我没有看到 ProductVersion 反映这一点。后来当我更改时,AssemblyFileVersion 然后我注意到程序集的 ProudctVersion 反映了版本。知道为什么会出现这种行为吗?
似乎在 AssemblyInfo.cs 中显式添加 AssemblyInformationalVersion 会影响 Assembly>属性>Details>Product Version
[assembly: AssemblyInformationalVersion("1.1.1.1")]
注意:此属性默认不可用。
此外,我了解到 AssemblyFileVersion 用于安装程序的部署相关工作,因此在我的例子中它用作程序集的 ProductVersion 而 AssemblyVersion 不用作 Assembly>属性>Details>Product Version。
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 用于链接到客户端程序集,这通常是您不想更改的内容。
为了升级,我确实修改了DLL的AssebmlyVersion,并没有改变AssemblyFileVersion。我假设在更改 AssemblyVersion 时,安装程序会自动检测最新的 DLL 并在升级时进行替换。但是,升级未能安装最新的 DLL。
在 VS2015 项目中,当我更改 AssemblyVersion 时,我没有看到 ProductVersion 反映这一点。后来当我更改时,AssemblyFileVersion 然后我注意到程序集的 ProudctVersion 反映了版本。知道为什么会出现这种行为吗?
似乎在 AssemblyInfo.cs 中显式添加 AssemblyInformationalVersion 会影响 Assembly>属性>Details>Product Version
[assembly: AssemblyInformationalVersion("1.1.1.1")]
注意:此属性默认不可用。
此外,我了解到 AssemblyFileVersion 用于安装程序的部署相关工作,因此在我的例子中它用作程序集的 ProductVersion 而 AssemblyVersion 不用作 Assembly>属性>Details>Product Version。
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 用于链接到客户端程序集,这通常是您不想更改的内容。