通过NAnt Build构建MSI

时间:2011-10-21 18:45:45

标签: windows-installer nant

我被分配了通过NAnt让我们的MSI建设的任务。如果我“有”,我将使用NAntContrib或WiX,但是给我这张票的时间并不能让我开始研究新的构建技术。这是我第一次与NAnt合作。

我们现有的解决方案是80个项目,6个服务(拥有自己的MSI安装项目)和少数几个网站。

构建脚本首先构建解决方案,然后开始将所有构建的库,文件,zip,配置复制到其特定位置,以便直接部署。唯一的问题是它不构建任何MSI文件。

Build框上安装了Visual Studio。从快速查看网络,我看到如果您安装了VS,那么运行deven.com可以构建MSI文件......

正在构建的解决方案包含服务的安装项目,但是没有创建MSI。是否有必须传入的特定设置/命令行参数才能完成此操作?

构建解决方案的XML如下所示。

$ builtype是“/ build”

<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 个答案:

答案 0 :(得分:1)

NAnt是一个构建工具,它与安装包没有任何关系。它构建项目,它不会自己生成文件。所以你需要一个生成MSI包的项目。

这可以通过多种方式创建:

请注意,创建安装包并非易事。因此,在选择之前,请分析所有设置创作工具。