从Advanced Installer Updater将ProductVersion传递给命令行

时间:2013-10-01 10:35:01

标签: command-line cmd installer advanced-installer

我有一个应用程序,我想提供使用Advanced Installer Updater的更新。

构建更新文件后,我有一个批处理文件,可以自动将更新文件上传到我的服务器。我还想上传应用程序本身,并将其复制到版本目录以进行存档。

例如,如果我发布版本2.0.78,我有一个脚本连接到我的服务器,创建一个'2.0.78'目录,并将应用程序复制到其中。这是一个制作后的活动。

我不想每次更改时都要为脚本指定版本号,所以我想将版本号作为参数传递给我的命令行脚本。
我已经尝试了以下(以及它的大/小写版本),但输出是空白的。

enter image description here

如何在更新项目中获取产品名称和版本?

2 个答案:

答案 0 :(得分:1)

一个想法是从.exe文件中的批处理脚本中获取此信息。

for /f "usebackq delims=" %%A in (`"powershell $shell = New-Object -COMObject Shell.Application; $shellfolder = $shell.Namespace('C:\Folder\Subfolder'); $shellfolder.GetDetailsOf($shellfolder.ParseName('Program.exe'), 156);"`) do set "AppVer=%%A"

这会将应用程序的版本号捕获到AppVer变量中。要获取其他详细信息,只需更改GetDetailsOf编号即可。 176 =产品名称,156 =产品版本等......

答案 1 :(得分:1)

这些属性未设置到更新配置项目中,它们仅在生成安装程序包的项目中设置。更新配置项目不是为存储/管理安装程序属性而设计的。

读取和使用这些属性的唯一方法是创建一个首先gets their values from the setup project的BAT文件,然后构建更新程序项目,然后执行构建后操作(不再使用构建后事件),所有来自同一个BAT文件。