1

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

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

它工作正常。如果它是通过我的构建服务器(Atlassian 竹)的构建脚本运行的,我会收到很多错误。前两行..

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]

这种行为的原因是什么?

4

2 回答 2

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 错误

于 2013-08-29T09:26:17.900 回答
0

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

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

HKEY_USERS\.DEFAULT\Environment
于 2013-08-30T05:45:48.283 回答