在MSBuild中访问InstallShield任务

时间:2014-01-21 04:04:56

标签: msbuild installshield

我正在尝试使用MSBuild创建一个目标,该目标将使用InstallShield 2012创建一个安装程序。我很难理解如何访问InstallShield。我跑过去提到InstallShield task,但我不确定如何访问它。我想我需要一个UsingTask指令,但不知道要导入什么。有人可以给我一个关于如何实现这一目标的指针吗?感谢。

2 个答案:

答案 0 :(得分:4)

您需要导入目标文件。我花了一段时间来解决这个问题,因为它与msdild扩展目录一起使用了dll。这是一个如何使用它的基本样本(注意这是2012春季,但你明白了):

<Import Project="$(MSBuildExtensionsPath32)\InstallShield\2012Spring\InstallShield.targets" />

<Target Name="BuildInstaller">
  <InstallShield.Tasks.InstallShield
    Project="/path/to/my.ism"
    ProductConfiguration="Package"
    ReleaseConfiguration="MSI" />
</Target>

顺便说一下,如果由于某些原因这不起作用,你总是可以在Exec任务中调用ISCmdBld.exe,它就可以正常工作了。

答案 1 :(得分:2)

InstallShield提供Visual Studio集成。在VS中创建InstallShield项目时,它会创建一个项目文件(.ISPROJ),该文件为该版本的InstallShield导入InstallShield.targets文件。项目文件包含大量关于如何构建特定配置并传递合并模块路径,属性,路径变量覆盖等内容的示例。

请注意,由于COM组件,构建InstallShield需要x86 MSBuild平台。