TFS 2010 - пользовательские операции сборки не развернуты - PullRequest
4 голосов
/ 29 ноября 2011

В моей сборочной команде мы используем настраиваемые действия процесса сборки, которые развернуты на

\BuildProcessTemplates\CustomAssemblies\MyActivities.dll

Контроллер сборки настроен для загрузки сборок по этому пути.

Если я проверяю новые сборки, то teambuild не загружает новые сборки автоматически, а использует старые.Фактически, кажется, что используется последний шаблон процесса сборки, потому что я получаю сообщение об ошибке:

"TF215097: An error occurred while initializing a build for build definition <myTemplate> Cannot create unknown type <any new type>"

Если я перезапущу службы контроллера сборки, то будут рассмотрены последние сборки.

Как можноЯ получаю teambuild для автоматической загрузки последних сборок без необходимости перезапуска контроллера?

Ответы [ 2 ]

5 голосов
/ 13 декабря 2011

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

В частности, в моей версии "MyActivities.dll" мне пришлось увеличить следующие две строки в файле AssemblyInfo.cs (старая версия строки была 1.0.0.0):

[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyFileVersion("1.0.0.1")]

Как только я это сделал, я сделал обычную сборку сборки, затем проверил новые двоичные файлы. Агенты были обновлены с новыми версиями в течение нескольких минут! : D

Другие (менее крутые) опции, если по какой-то причине вы не можете обновить версию:

  • Проверить файл-заглушку на тот же каталог. Если какие-либо файлы добавляются / удаляются из каталога CustomAssemblies, он вызывает обновление для всех файлов
  • Измените значение «Путь управления версиями на пользовательские сборки:» на некоторое фиктивное значение (не важно где), примените новое значение, а затем вернитесь в исходный каталог. Каждый раз, когда путь изменяется, это вызывает обновление для всех файлов

«Лучшее» решение - просто обновить версию файла / сборки.

1 голос
/ 29 ноября 2011

Попробуйте установить MyActivities.dll в GAC. У меня есть все пользовательские сборки в GAC, и я не заметил никаких проблем.

...