Я пытаюсь настроить файл common.targets с некоторыми распространенными целями msbuild, которые я хочу использовать в своих сборках и, следовательно, импортировать в файлы TFSBuild.proj. Мне интересно, что это лучший способ достичь этого? Нужно ли мне хранить common.targets рядом с каждым файлом TFSBuild.proj и, следовательно, иметь дубликаты файла целей для каждой команды или есть другой способ? Я бы предпочел не помещать файл целей на каждую из машин сборки.Где я должен хранить общие цели для сборки команды?
ответ
Team Build имеет фазу начальной загрузки перед вызовом TFSBuild.proj в котором только TFSBuild.proj и другие файлы в том же каталоге загружаются из исходного элемента управления. Так что если вы хотите, чтобы ваш файл целей, которые должны быть под контролем источника, вы должны поместить его в том же месте, как TFSBuild.proj
Я никогда не пробовал, но вы можете быть в состоянии поставить файл целей на сетевом ресурсе и импортировать его с помощью share. Что-то вроде
<Import Project="\\anothermachine\share\something.targets"/>
Но это потребовало бы, чтобы построить счет и все люди, работающие рабочий стол сборки имеют доступ к этому сетевому ресурсу.
Целью общего файла .targets является уменьшение дублирования ваших скриптов. Если у вас есть несколько копий этого файла под контролем источника, что происходит, когда вам нужно их менять (возможно, для обновления пути .exe)? Лично я предпочитаю отдельное место для общих файлов, которые могут ссылаться на все/все другие скрипты сборки. Единственным недостатком этого является то, что вы, вероятно, будете жестко кодировать путь к этому файлу.
Вы можете сохранить их рядом с объектами MS в $ Volume \ Program Files \ MSBuild. Преимущество этого заключается в том, что вы можете создать относительный путь, используя встроенные метаданные «$ (MSBuildExtensionsPath) \ Path \ To \ Your \ Targets»
(+1) Я не знал о MSBuildExtensionsPath, который, согласно документации, «является полезным местом для размещения пользовательских целевых файлов». http://msdn.microsoft.com/en-us/library/ms164309.aspx – Pedro
Поместите его в обычное место, которое вам нравится в управлении источником. Перед использованием целей, сделать Достаньте из файла TFSBuild.proj так:
<PropertyGroup>
<!--Path to the TFS Command Line (used for checkin and out)-->
<TxTf>"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\tf"</TxTf>
<WorkingDirectory>C:\YourPathHere<WorkingDirectory>
<CustomProjTFSDir>"$/YourProj/YourCustomProjPath"</CustomProjTFSDir>
</PropertyGroup>
<Exec WorkingDirectory="$(WorkingDirectory)"
Command="$(TxTf) get $(CustomProjTFSDir)"/>
Ключ к этой работы заключается в установке рабочая область для построения пользовательского агента, который указывает на ваш пользовательский материал. Этот каталог НЕ должен находиться в том же пространстве, что и ваши обычные сборки.
Вакцина
Где вы поместили вызов Exec? Если я помещаю его в объект «Цель», сначала сначала выполняется попытка импорта, и он терпит неудачу. Если я попытаюсь положить его прямо под корень
@Elezar - 5 лет назад я мог бы ответить на ваш вопрос. Я многого не делал с MS Build в течение длительного времени. Сейчас я не помню. Сожалею. – Vaccano
Хорошо, я новый, это был длинный выстрел, учитывая, сколько лет этот ответ. Спасибо, что ответили! – Elezar
- 1. Mac OS X: Где я должен хранить общие данные приложения?
- 2. Общие цели сборки и обновления файла assembly.cs
- 3. Где хранить общие услуги?
- 4. Yii2 - Где я могу хранить общие ресурсы
- 5. Где хранить общие настройки приложения
- 6. Где я должен хранить TrayIcon моего приложения?
- 7. Где я должен хранить изображения, загруженные пользователями?
- 8. Где я должен хранить свои файлы журналов?
- 9. MSBuild пользовательские общие цели
- 10. Где я должен хранить данные приложения?
- 11. Где я должен хранить фотографии, загружаемые пользователями?
- 12. Где я должен хранить итераторы mynderscore.js?
- 13. Cherrypy: Где я должен хранить свои шаблоны
- 14. Где я должен хранить свои тестовые активы?
- 15. Где я должен хранить соединение PDO?
- 16. Где я должен хранить список стоп-слов?
- 17. Где я должен хранить значения анимации?
- 18. Где я должен хранить отпечаток браузера?
- 19. Где я должен хранить глобальный параметр?
- 20. Где я должен хранить токен на клиенте
- 21. Где я должен хранить данные SSIS?
- 22. Где я должен поместить «сборки» атрибут
- 23. Где хранить команды SQL для выполнения
- 24. Где я должен хранить секретные ключи и ключи от ключа?
- 25. Где я должен хранить токен-носитель для JWT?
- 26. Где я должен хранить данные для приложения C#?
- 27. Где я должен хранить код регистратора для уменьшения зависимостей?
- 28. Где я должен хранить настройки для своей javascript-программы?
- 29. Где я должен хранить метаинформацию для элемента html?
- 30. Где я должен хранить SQLite DB для моего iPhone-приложения?
Здесь есть несколько хороших ответов. Почему бы вам не прокомментировать, почему они не работают или не принимают их ..... – Vaccano
Вы правы. Сделано так. Спасибо за Ваш ответ. – Fadeproof