以系统用户身份运行时,通过MSBuild构建失败

时间:2013-08-28 11:51:10

标签: c++ msbuild bamboo

我们正在使用Visual Studio 2012来构建我们的C ++应用程序 如果我从源文件夹中的命令行运行:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /p:Configuration=Release /p:Platform=Win32 Myproject2012.sln

它工作正常。如果它是通过我的构建服务器(Atlassian bamboo)的Buildscript运行的,那么我会遇到很多错误。前两行..

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(347,5): error MSB4018: The "CL" task failed unexpectedly. [C:\data\bamboo-home\xml-data\build-dir\XXX-IMB-JOB1\XXX\common\common.vcxproj] 
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(347,5): error MSB4018: System.TypeInitializationException: The type initializer for 'Microsoft.Build.Utilities.FileTracker' threw an exception. ---> System.IO.DirectoryNotFoundException: Das System kann den angegebenen Pfad nicht finden. (Exception from HRESULT: 0x80070003) [C:\data\bamboo-home\xml-data\build-dir\XXX-IMB-JOB1\XXX\common\common.vcxproj]

这种行为的原因是什么?

2 个答案:

答案 0 :(得分:1)

如果您使用Sysinternals psexec,您可以在Bamboo之外运行构建系统。

psexec -i -s cmd.exe

然后尝试C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /p:Configuration=Release /p:Platform=Win32 Myproject2012.sln

然后创建一个具有提升权限并重试的shell。 应该帮助看看它是权限的东西还是路径的东西。我已经尝试构建C ++作为系统,它似乎PK。 或者可能是这样的: MSBUILD MSB4018 error

答案 1 :(得分:0)

我发现了问题 系统帐户有一个默认的临时目录,msbuild不喜欢 我将其更改为“c:\ temp”,它没有用!

如果其他人遇到问题,您可以在注册表中更改

HKEY_USERS\.DEFAULT\Environment
相关问题