2014-01-21 32 views
1

我想使用MSBuild创建一个目标,它将创建一个InstallShield 2012安装程序。我很难理解如何访问InstallShield。我遇到了一个InstallShield task,但我不确定如何访问它。我想我需要一个UsingTask指令,但不知道要导入什么。有人能给我一个关于如何实现这个目标的指针吗?谢谢。访问MSBuild中的InstallShield任务

回答

4

您需要导入目标文件。花了我一段时间来解决这个问题,因为它在一个dll的msbuild扩展目录中。下面是如何使用它的一个基本的样品(注意,这是2012Spring,但你的想法):

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

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

顺便说一句,如果这不因某种原因失效了,你总是可以在调用ISCmdBld.exe执行任务,它会做的工作一样好。

+0

要为那些正在研究的... MSBuildExtensionsPath32是“C:\ Program Files文件(x86)\ MSBuild \ InstallShield” – doobop

2

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

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