Как создать проект MakeFile VS2010 (vcxproj) с помощью TFS Build (без VS 2010)

у меня есть проект, который отлично собирался в VS 2008, а затем мы установили и начали использовать TFS Build, и затем мы обновились до TFS 2010. Все было по-прежнему в порядке и строилось правильно (после того, как я реализовал наш новый процесс сборки, который сделал все очень приятным с запуском сборки одним щелчком мыши с любого удаленного клиента Visual Studio 2010). Visual Studio не требовалось устанавливать на агент сборки. Я очень стараюсь ( очень ) не устанавливать Visual Studio на Build Agent, потому что я понимаю, что в этом нет необходимости, и у нас нет лицензии на установку на компьютере, не предназначенном для разработки.

Теперь я попытался обновить решение до VS 2010, по-прежнему ориентируясь на .NET 3.5, потому что это сборка, предназначенная для процедур CLR SQL Server, а SQL Server еще не поддерживает .NET 4.0. Но я просто не могу заставить его больше строить под TFS Build. Я не могу получить постоянное сообщение об ошибке из TFS Build и из командной строки MS Build, но я думаю, что это как-то связано с тем, что Microsoft.Cpp.Targets не находится в C: \ Program Files \ MSBuild \, потому что я не установил Visual Studio. Я установил Microsoft Windows SDK 7.1, чтобы я мог запускать инструменты SDK .NET 4.0, такие как svcutil, для некоторых других проектов .NET 4.0, но, похоже, ничего не устанавливает то, что нужно этой сборке. Ошибка сборки TFS:

C: \ TFSBld [...] \ GenerateLanguage \ GenerateLanguage.vcxproj (46,3): ошибка MSB4019: импортированный проект «C: \ Microsoft.Cpp.Default.props» был не найден. Подтвердите, что путь в декларация верна, и что файл существует на диске.

И когда я нажимаю на эту ошибку, я попадаю в эту строку в файле vcxproj:

  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

Все, что мне действительно нужно сделать в этом проекте, - это запустить resgen для генерации файлов ресурсов из resx файлы и компилировать их в спутниковые сборки. Для этого я использовал сборку make-файла, вручную запустив resgen (я думаю, это потому, что я не могу найти способ скомпилировать спутниковые сборки в качестве автономного решения любым другим способом), а затем скомпилировал их в DLL (я не могу вспомнить, как это работало сейчас, но я думаю, что AL.exe вручную запускал для компиляции файлов DLL из файлов ресурсов). Так что в основном мне просто нужно запустить командные строки для создания этого проекта, и я могу ' Кажется, я нашел разумный способ сделать это, не выбрасывая весь проект и не редактируя сценарий сборки TFS, чтобы вместо этого запускать кучу жестко запрограммированных командных строк. Должен быть способ получше.

Я занимался этим весь день и пробовал написать свой собственный файл .targets и листы свойств .xml, чтобы заменить стандартный файл, но это было выше моей головы. Я попытался просто удалить строки, но затем MSBuild жалуется, что нет цели «Сборка». Я попытался добавить манекен в файл vcxproj, но тогда он, похоже, не выполнял этапы до и после сборки, на которых уже выполнена вся работа.

16
задан BlueMonkMN 20 January 2011 в 14:17
поделиться