我刚刚开始使用NAnt。我当时正在学习一个教程,只是试图设置一个目标以在构建时清理我的解决方案。我的Visual Studio解决方案结构如下:

  • 解决方案文件夹
  • 项目文件夹
  • 项目文件夹
  • 工具文件夹
  • NAnt文件夹

  • NAnt .exe文件位于Tools/NAnt文件夹中。我的.build文件也在那里。这是我的.build文件:
    <?xml version="1.0" encoding="utf-8" ?>
    <project name="NAntTest" default="build" xmlns="http://nant.sf.net/release/0.86-beta1/nant.xsd">
      <property name="solution.file.name" value="NAntTest.sln" />
      <property name="project.config" value="debug" />
    
      <target name="build" depends="clean.source" />
    
      <target name="clean.source">
        <exec program="${framework::get-framework-directory(framework::get-target-framework())}\msbuild.exe"
              commandline="${solution.file.name} /t:Clean /p:Configuration=${project.config} /v:q"
              workingdir="."/>
      </target>
    
    </project>
    

    这就是我遵循的示例的格式。如果我尝试运行此版本,则会收到一条错误消息,指出该项目文件不存在。在clean.source目标中,如果将工作目录属性替换为基本解决方案文件夹的硬编码路径,则脚本将编译并正确运行。显然,如果我需要将项目移动到任何地方,这对于可移植性来说都不是理想的选择。

    如何获得NAnt来查看基本工作目录?

    最佳答案

    我的建议是始终将构建文件放在解决方案级别。然后,构建文件中的所有相对路径将等于解决方案的路径。

    关于visual-studio - 如何在NAnt中设置工作目录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/755722/

    10-13 07:58