【问题标题】:Building with CruiseControl.Net uses wrong outputdir使用 CruiseControl.Net 构建使用错误的 outputdir
【发布时间】:2013-05-06 14:54:23
【问题描述】:

我有一个项目将输出目录更改为 bin\Debug。它在我的开发机器上构建良好,输出目录正确...bin\Debug。

在我们的构建服务器上,我们正在运行 CruiseControl.net。构建失败并查看日志,将其构建到错误的输出路径。示例:“C:\Program Files (x86)\Test1\Test1\”。这也不是以前的输出路径。查看该项目的 csproj 文件,我没有在其中看到该路径。它不是 CruiseControl 项目的工作目录。

我相信这与 CruiseControl.Net 有关,因为如果我使用 devenv 从命令行在构建服务器上构建项目,它具有正确的输出路径。

我的所有 CruiseControl 项目也没有发生这种情况。

有什么想法可以将此路径缓存在 CC 中吗?

【问题讨论】:

  • 我从未使用过 CC,但是在我使用过的其他 CI 环境中,设置构建命令时可以使用多个目录变量。确保您没有使用可能指向安装目录或类似目录的相对路径,而不是预期的构建目录。
  • 我已经检查了我在 CruiseControl.Net 中知道的所有路径(.state 文件)。

标签: c# visual-studio-2010 cruisecontrol.net


【解决方案1】:

我使用 devenv 通过 CruiseControl.Net 构建项目。我切换到 MSBuild 任务并在 buildArgs 中指定了我的 OutputPath,它按我的预期工作。这不是我正在寻找的解决方案,但它会做到。

         <msbuild>
            <executable>$(v4_MSBuild)</executable>
            <workingDirectory>$(SourceRoot)$(TrunkDir)project1</workingDirectory>
            <projectFile>$(SourceRoot)$(TrunkDir)project1\main.sln</projectFile>
            <buildArgs>/p:Configuration=Debug;OutputPath="bin\Debug" /v:n</buildArgs>
            <targets>Build</targets>
            <timeout>900</timeout>
            <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
        </msbuild>

【讨论】:

  • 使用 msbuild.exe(或 msbuild 任务)是一个更好的解决方案恕我直言。我不喜欢在构建机器上安装 IDE (devenv.exe)。恕我直言,它安装了太多隐藏的依赖项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多