2011-10-21 191 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不会构建它。我想我已经找到了解决方法,但需要看看它是否适用于我们的环境。 –