将参数传递给NAnt构建脚本

时间:2014-04-04 11:20:53

标签: nant build-script nantcontrib

这是我的情景:

我有build.bat持有:

call tools\nant-0.92\bin\nant.exe -buildfile:deploy.build %* -logfile:deploy_NAnt.log

deploy.build的一部分成立:

<project 
    name="EdpClient" 
    basedir="." default="build" 
    xmlns="http://nant.sf.net/release/0.92/nantContrib.xsd">
        <!--INIT -->
        ...
        <property name="version" value="1.48.0.4" />
        ...
        <!--RELEVANT TARGET-->
        <target name="BuildProductionApplication" description="Build">
            <property 
                name="publishFolderParameter" 
                value="/p:PublishDir=${productionPublishFolder}" />
            <echo message="Building..." />  
            <exec 
                program="${msbuildExe}" 
                workingdir="." verbose="true">
                    <arg value="${projectFile}" />
                    <arg value="/target:Clean;Publish" />
                    <arg value="${publishFolderParameter}" />
                    <arg value="/property:ApplicationVersion=${version}" />
                    <arg value="/property:PublisherName=&quot;${publisherName}&quot;" />
            </exec>
            <echo message="Built" />
        </target>
    ...
</project>

现在我的问题是:

  • 如何调用"build.bat -version 1.48.0.4"并替换参数 在我的结构?
  • 如果未提供-version参数,脚本应该抛出一些 在命令行中回复一下msg?

感谢所有帮助!

1 个答案:

答案 0 :(得分:2)

我就这样做了:

在我更改的deploy.build文件中:

<property name="version" value="1.48.0.4" />

为:

<property name="version" value="${arg.version}" />

这就是build.bat(批处理)现在的样子:

@ECHO OFF
IF %1.==. GOTO ERROR
ECHO:BUILDING VERSION: %1 ...
CALL tools\nant-0.92\bin\nant.exe -buildfile:deploy.build -D:arg.version=%1 -logfile:deploy_NAnt.log
GOTO END
:ERROR
ECHO.
ECHO Please provide the version parameter (eg. "deploy 1.1.1.1")
ECHO.
GOTO END
:END

现在我可以调用build 1.48.0.4命令。 它符合我的所有需求。