为了支持升级,我修改了DLL的AssebmlyVersion,没有更改AssemblyFileVersion。我假设当我更改AssemblyVersion时,安装程序会自动检测最新的DLL并在升级时进行替换。但是,升级未能安装最新的DLL。
在VS2015项目中,当我更改AssemblyVersion时,没有看到反映这一点的ProductVersion。后来,当我更改时,AssemblyFileVersion注意到程序集的ProudctVersion反映了版本。知道为什么会有这种行为吗?
发布于 2017-07-12 11:16:32
似乎在AssemblyInformationalVersion中添加AssemblyInfo.cs会影响Assembly>Property>Details>Product版本。
[assembly: AssemblyInformationalVersion("1.1.1.1")]注意:默认情况下,此属性不可用。
另外,我了解到AssemblyFileVersion被安装程序用于与部署相关的工作,因此在我的例子中,它被用作组装的ProductVersion,而AssemblyVersion不用作Assembly>Property>Details>Product版本。
发布于 2017-07-21 20:24:20
Visual项目中的升级使用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用于链接到客户端程序集,这通常是您不想更改的。
https://stackoverflow.com/questions/45032739
复制相似问题