2013-05-06 68 views
0

我有一個項目,將輸出目錄更改爲bin \ Debug。它在我的開發機器上構建得很好,輸出目錄是正確的... bin \ Debug。建設與CruiseControl.Net使用錯誤outputdir

在我們的構建服務器上,我們正在運行CruiseControl.net。構建失敗並查看日誌,將其構建到錯誤的輸出路徑。例如:「C:\ Program Files(x86)\ Test1 \ Test1 \」。這不是之前的輸出路徑。看着該項目的csproj文件,我沒有看到那裏的路徑。它不是CruiseControl項目的工作目錄。

我相信這與CruiseControl.Net有關,因爲如果我使用devenv從命令行在構建服務器上構建項目,它具有正確的輸出路徑。

這也沒有發生在我所有的CruiseControl項目中。

任何想法,這條路徑被緩存在CC?

+0

我從來沒有使用CC,但是在我使用的其他CI環境中,有多個目錄變量可以在設置構建命令時使用。確保您沒有使用可能指向安裝目錄的相對路徑或類似的東西,而不是目標構建目錄。 – 2013-05-06 16:50:31

+0

我檢查了我在CruiseControl.Net(.state文件)中知道的所有路徑。 – Web 2013-05-07 13:52:39

回答

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> 
+1

使用msbuild.exe(或一個msbuild任務)是一個更好的解決方案恕我直言。我不喜歡在生成機器上安裝IDE(devenv.exe)。它安裝了太多隱藏的依賴項恕我直言。 – granadaCoder 2013-05-09 18:37:49