2014-01-21 60 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平臺。