Как построить проект VS2010 C ++ на BuildServer - PullRequest
7 голосов
/ 15 июня 2010

У меня есть решение .NET с управляемой сборкой C ++ с таргетингом на .NET 3.5, созданное с VS2010. Команда:

%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MyProject.sln

компилирует решение на моем компьютере разработчика.

На моем BuildServer я получаю эту ошибку:

Сборка НЕ ​​удалась.

"F: \ CruiseControl.NET \ Projects \ MyProject \ MyProject.sln" (цель по умолчанию) (1) -> "F: \ CruiseControl.NET \ Projects \ MyProject \ MyProject \ MyProject.csproj" (цель по умолчанию) (2) -> "F: \ CruiseControl.NET \ Projects \ MyProject \ MyProjectMAPIHelper \ MyProjectMAPIHelper.vcxproj" (цель по умолчанию) (3) ->
F: \ CruiseControl.NET \ Projects \ MyProject \ MyProjectMAPIHelper \ MyProjectMAPIHelper.vcxproj (23,3): ошибка MSB4019: импортированный проект «C: \ Program Файлы \ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.Cpp.Default.props» не был найден. Подтвердите, что путь в объявлении <Import> правильно, и что файл существует на диск.

0 Warning(s)
1 Error(s)

На моем компьютере разработчика заявленный файл

"C: \ Program Files \ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.Cpp.Default.props"

существует. На моем сервере сборки нет.

Когда я пытаюсь скопировать эти файлы (и все остальные файлы в том же каталоге), возникают другие ошибки. Так что это неправильный путь.

РЕДАКТИРОВАТЬ : другие ошибки означают: Когда я копирую файл "Microsoft.Cpp.Default.props" на сервер сборки, MSBuild запрашивает другие файлы. Это показывает мне, что создание копии отсутствующих файлов - это не то, чего ожидает среда сборки. Я ищу MSI / любой другой пакет, который я мог бы установить на своем сервере сборки, и любой C ++ Project будет собираться. Установка SDK не уловка. Или я сделал что-то не так во время установки SDK. Или невозможно скомпилировать управляемые решения C ++ VS2010 только с помощью SDK.

Я считаю, что "другие ошибки" не имеют ничего общего с моей проблемой. Моя проблема: «Как правильно настроить среду сборки». / EDIT

Что я делал до сих пор:

  • Я установил последнюю версию Win7 SDK (http://blogs.msdn.com/b/windowssdk/archive/2010/05/25/released-windows-sdk-for-windows-7-and-net-framework-4.aspx)
  • Я нацеливаюсь на .net 3.5
  • Я пытался поиграть со свойством Platform Toolset - но он просто играл
  • В моем решении есть управляемая сборка C ++ (моя проблема)
  • Я использую MSBuild 4.0, потому что новые файлы проекта VS2010 не могут быть скомпилированы с MSBuild 3.5
  • Я использую CC.NET. Сбой компиляции в CC.NET и в командной строке. Так что это не должно быть проблемой CC.NET.

Есть ли какие-либо советы и рекомендации по правильной настройке моего проекта для компиляции на моем компьютере разработчика с VS2010 и на моем сервере сборки? Есть ли что-нибудь еще для установки (кроме VS2010)?

Спасибо, Артур

Ответы [ 3 ]

4 голосов
/ 25 июня 2010

На данный момент установка VS 2010 - ваш единственный безопасный вариант. Windows SDK будет обновлен, чтобы включить ваш сценарий, но у меня нет конкретной даты выпуска. До этого вам нужно будет установить VS 2010 с инструментами C ++, чтобы построить решение 2010 с проектами C ++. Обязательно сообщите команде C ++ о недовольстве этой ситуацией через их блог команды и / или MSDN Forum .

Даже после установки VS 2010 вам может потребоваться вызвать соответствующий файл vcvars * .bat для правильной настройки переменных среды.

1 голос
/ 21 июня 2010

Почему вы не хотите установить VS2010 на свой сервер сборки? Если это лицензия, то она лицензируется на голову разработчика, а не на установку, поэтому я вполне уверен, что вам разрешено не покупать другую копию - или, в худшем случае, вы можете установить экспресс-версию, которая должна по крайней мере установить биты конфигурации, которые вы отсутствует, поэтому вы можете использовать компилятор платформы SDK.

Если у вас все еще есть проблемы с msbuild, вы можете использовать devenv.com /build, который точно копирует окружение сборки VS.

0 голосов
/ 24 июня 2010
...