我正在尝试建立一个持续集成过程,服务器将构建一个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]
答案 0 :(得分:0)
如果没有更多详细信息,我必须说您的某个帐户在服务器上存在权限问题。
VS的运行能力是多少? MSBuild在什么帐户下运行?
答案 1 :(得分:0)
当我使用多个核心运行msbuild时,我有时会发生这样的锁定冲突 - 使用/ maxcpucount:n,然后似乎其中一个进程正在为另一个锁定文件夹然后我得到这样的东西。 没有使用开关修复它,并没有发生在所有sln只是一些。 你没有使用postbuild命令进行复制,而不是构建输出路径?
如果我们知道你的msbuild命令会有帮助吗?