У меня есть проект, который прекрасно строился в 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, чтобы можно было запускать такие инструменты .NET 4.0 SDK, как 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 жалуется, что нет цели "Build".Я попытался добавить фиктивный файл в файл vcxproj, но тогда он, похоже, не выполнял шаги до и после сборки, когда вся работа выполнена.