在NAnt中参数化外部xml文件

时间:2012-08-22 13:00:04

标签: nant

在我的构建文件中,我正在使用的构建步骤之一如下:

  <target name="BuildMsDeployPackage" depends="StageForMsDeployPackaging">
    <exec program="${msdeploy.exe}"
          workingdir="${buildDirectory}"
          verbose="true"
          commandline="
           -verb:sync 
           -source:manifest=${currentWorkingDirectory}\${sourceManifest} 
           -dest:package=${publishDirectory}\${webapp.artifact.zip}"/>

在这里,我使用MSDeploy创建一个可以在以后部署的包。源是清单文件的形式。清单文件的内容如下:

<MSDeploy.iisApp> 
    <iisapp path="C:\test" />
    <setAcl path="C:\test\dirOne" setAclAccess="Write" setAclUser="xyz"/>
    <setAcl path="C:\test\dirTwo" setAclAccess="Write" setAclUser="abc"/>
</MSDeploy.iisApp>

我正在使用iisapp和setAcl的路径是硬编码的。我希望能够根据构建文件所在的目录(当前工作目录)指定这些。

是否可以通过NAnt做到这一点?

1 个答案:

答案 0 :(得分:2)

据我了解你的问题,你想编辑清单文件。由于它是纯XML,因此您可以使用NAnt的<xmlpoke>任务。通过XPath指定适当的路径属性并将其设置为构建路径。您可以使用NAnt函数project::get-buildfile-path检索构建文件的路径。