如何使用InstallShield在构建时自动创建新的产品代码?

时间:2016-08-04 15:20:50

标签: installshield installshield-le

我刚刚了解到,通过在InstallShield中生成新的产品代码,安装程序将升级以前版本的软件,而不是要求用户先卸载以前的版本。这是一个很好的第一步,但是我似乎仍然希望每次构建时都能够自动生成新产品代码的过程。目前,我必须手动记住在构建新安装程序之前执行此操作。

我使用的是InstallShield LE 2015,所以我不确定这是否是LE版本的限制。有人对InstallShield更有经验请解释一下是否可能以及我如何设置它?

2 个答案:

答案 0 :(得分:1)

ProductCode存储为属性,因此您可以编辑.islproj文件(或其用于msbuild语法项目文件的名称)以指定该属性的新guid值。通过添加类似于以下内容的ItemGroup,遵循Customizing the .isproj File中概述的方法。请注意,此示例假定您以某种方式在$(MyNewProductCode)中提供了有效的GUID。

<ItemGroup>
   <InstallShieldPropertyOverrides Include="$(MyNewProductCode)">
       <Property>ProductCode</Property>
   </InstallShieldPropertyOverrides>
</ItemGroup>

答案 1 :(得分:1)

为了扩展Michael Urman的上述答案,我可以使用property function直接从.isproj文件中生成新的GUID。当我的CI机器构建我的安装屏蔽项目时,产品代码会自动更新:

<ItemGroup>
   <InstallShieldPropertyOverrides Include="{$([System.Guid]::NewGuid().ToString().ToUpper())}">
       <Property>ProductCode</Property>
   </InstallShieldPropertyOverrides>
</ItemGroup>

Hooray for automation。