我正在尝试建立一个持续集成过程,其中服务器将构建一个 VS2008 .SLN 文件并执行一些其他操作。
从 Visual Studio 构建时,一切正常。 但是,当使用 CI 服务器(使用 MSBUILD)构建时,许多 MSB3191 构建失败(无法创建目录...)
在我的 SLN 中,各种项目都有一个非默认的输出路径,因为我将它们的所有输出复制到一个位置,这似乎是导致问题的原因。
MSBUILD 和 VS 中使用的构建有什么区别?为什么一个成功而另一个失败?
此外,避免此类问题的最佳做法是什么?
这是 MSBUILD 的输出:
“D:\MasterBuild_Dev\tlv_Platform\UBUILD\RecordersAutoFwk\Main.sln”(默认目标)(1) -> “D:\MasterBuild_Dev\tlv_Platform\UBUILD\Regression Automation Framework\Actions\Common\Common\EM.Licensing.csproj”(默认目标)(46) -> (PrepareForBuild 目标) -> C:\Windows\Microsoft.NET\Framework64\v3.5\Microsoft.Common.targets(790,9):错误 MSB3191:无法创建目录“.......\RecordersAutoFwk\Main\bin\Debug\lib\”。无法创建“D:\MasterBuild_Dev\tlv_Platform\UBUILD\RecordersAutoFwk\Main\bin\Debug\lib”,因为已存在同名文件或目录。 [D:\MasterBuild_Dev\tlv_Platform\UBUILD\Regression Automation Framework\Actions\Common\Common\EM.Licensing.csproj]
最佳答案
如果没有更多详细信息,我不得不说您的其中一个帐户在服务器上存在权限问题。
VS 运行在什么账户下? MSBuild 在哪个帐户下运行?
关于c# - MSBUILD 与 VS2008 构建之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6339625/