检索存储在 msi 中的应用程序的程序集版本

ato*_*oms 5 c# windows-installer winforms

我无法弄清楚如何从安装程序 msi 中得知它将安装的应用程序的 AssemblyVersion 是什么。

我想每隔几个小时向网络位置发出一个请求,检查 setup.msi 以检测更改,然后提示用户更新。

我可以将两个 AssemblyVersion 绑定在一起,以便当我增加应用程序时,它也会增加安装程序吗?这样我可以检查安装程序版本吗?

或者,有没有办法从 msi 中得知它将安装什么应用程序版本?

或者我应该以不同的方式解决这个问题,比如将带有修订号的文本文件放在网络共享上?(不优选)

注意我已经用来SetupProject创建我的安装程序。

Phi*_*lDW 1

冒着重复 Michael U 的一些回答的风险,我要指出,没有人在 Windows Installer 环境中这样做。当 Visual Studio MSI 构建中的任何文件需要部署到客户端时,VS 安装项目的唯一解决方案是主要升级,您可以增加安装项目的版本(接受更改),将RemovePreviousVersions 设置为 true,然后您可以必须增加需要更新的文件的文件版本。您不需要更改 AssemblyVersion 来执行此操作,但需要增加 AssemblyFileversion。这应该有帮助:

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

但它缺少有关更新文件版本的部分。

一般来说,更新机制相当简单。主要升级基于UpgradeCode,因此您的应用程序只需在某处进行Web服务调用,传递当前ProductVersion和UpgradeCode,然后您需要下载高于当前ProductVersion的任何版本,然后安装它。这是适用于客户端系统上的多个产品的总体思路,如果您知道只有一种产品,则有更简单的解决方案。