Сборка через MSBuild завершается неудачно при запуске от имени пользователя системы

Мы используем Visual Studio 2012 для создания нашего приложения C ++
Если я запускаю из командной строки в моей исходной папке:

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

это работает отлично. Если он запускается через Buildscript моего buildserver (Atlassian bamboo), я получаю много ошибок. Первые две строчки ..

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]

В чем может быть причина такого поведения?

1

Решение

Вы можете запустить сборку вне Bamboo как систему, если вы используете Sysinternals psexec.

psexec -i -s cmd.exe

Тогда попробуй C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /p:Configuration=Release /p:Platform=Win32 Myproject2012.sln

Затем создайте оболочку с повышенными правами и повторите попытку.
Должно помочь увидеть, является ли это вещью с правами доступа или вещью пути. Я пытался собрать C ++ как систему, и, похоже, PK.
Или это может быть так:
MSBUILD MSB4018 ошибка

1

Другие решения

Я нашел проблему
Системная учетная запись имеет временный каталог по умолчанию, который не нравится msbuild
Я изменил его на «c: \ temp» нет, это работает!

Если у кого-то есть проблема, вы можете изменить ее в реестре

HKEY_USERS\.DEFAULT\Environment
0