2011-10-21 426 views
0

我被賦予通過NAnt獲取MSI構建的任務。如果我「有」,我會使用NAntContrib或者WiX,但是給我這張票的時間不足以支付我研究新構建技術的奢侈。這是我第一次和NAnt合作。通過NAnt構建MSI構建

我們現有的解決方案是80個項目,6個服務(使用他們自己的MSI安裝項目)以及少數幾個網站。

構建腳本首先構建解決方案,然後開始將所有構建的庫,文件,zips,配置複製到其特定位置,以便部署非常簡單。唯一的問題是它不會構建任何MSI文件。

生成框安裝了Visual Studio。從快速瀏覽網絡我看到,如果你有VS安裝,然後運行deven.com可以建立MSI文件...

正在構建的解決方案包含安裝項目的服務,但沒有MSI的創建。是否有一個特定的設置/命令行參數需要傳入以完成此操作?

構建解決方案的XML如下所示。

$ builtype是 「/編譯」

<target name="BuildOnly" depends="ConfigureBuild"> 
    <if test="${property::exists('Distribution') and Distribution == 'True'}" > 
    <call target="ConfigureBuild.Release"/> 
</if> 

<call target="StopServices"/> 
<call target="CleanSUOFiles"/> 
<!--<call target="BuildEnterpriseLibrary" />--> 
<property name="build.dir" value="${directory::get-current-directory()}"/> 

<echo message="######### ${buildtype} ${StandardProjectTarget}"/> 

<exec program="${deven.com}" workingdir="${build.dir}" failonerror="true" commandline="&quot;BC_HM.sln&quot; ${buildtype} ${StandardProjectTarget}"/> 

<call target="BuildSchematronFiles"/> 
</target> 

感謝。

回答

1

NAnt是一個構建工具,它與安裝包沒有任何關係。它建立項目,它不會自行生成文件。所以你需要一個生成MSI包的項目。

這可以通過多種方式來創造:

請注意,創建安裝包並不是一件容易的事。因此,在選擇之前先分析所有設置創作工具。

+0

我們打電話給devenv.com構建安裝程序。是的不是最好的,但給我的票時間限制,我沒有改變它。當我們轉移到更好的構建箱並擺脫巡航控制時,它會更好。但與此同時,devenv並沒有建立一個msi。 –

+0

devenv.com構建Visual Studio項目,而不是安裝包。安裝程序不是自動創建的。您需要創建一個安裝項目並構建它以獲取安裝程序。你有安裝項目嗎?或者你是否在隨機構建項目,希望生成一個安裝程序? –

+0

我已經有我的安裝程序包,腳本和一切設置。然而,通過NANT運行我的devenv.com不會構建它。我想我已經找到了解決方法,但需要看看它是否適用於我們的環境。 –