ПКК Team Foundation Server

Я добавляю отдельное решение для управления исходным кодом (Team Foundation Server 2015). Решение содержит несколько отчетов SSRS (rdlc), каждый из которых использует строго подписанную сборку (используемую для создания штрих-кодов). Я добавил строго подписанную barcode.dll в решение в папке Binaries и убедился, что она также добавлена ​​в систему управления версиями. Проблема, с которой я сталкиваюсь, заключается в том, что при создании решения TFS возвращает ошибку

Error rsErrorLoadingCodeModule: Error while loading code module...

Я считаю, что причина этого в том, что при составлении отчетов SSRS каждый отчет обращается к локальному GAC для сборки со строгим именем.

Кто-нибудь знает, как добавить сценарий step/powershell, который позволит мне зарегистрировать сборку \Binaries\Barcode.dll в GAC перед созданием решения?

Будем очень признательны за любую помощь, мысли или идеи.

Спасибо


person user1474992    schedule 14.01.2016    source источник


Ответы (2)


Самый простой способ: скопируйте файл \Binaries\Barcode.dll в агент сборки. И вручную зарегистрировать эту dll в GAC.

Установка сборки со строгим именем в глобальный кэш сборок с помощью средства глобального кэша сборок (Gacutil.exe)

• В командной строке введите следующую команду:

гакутил – я

Источник (MSDN): Как установить сборку в глобальный кэш сборок

person PatrickLu-MSFT    schedule 15.01.2016

Проблема в том, что ваш проект ссылается на DLL не из ее местоположения на диске, а вместо этого ссылается на нее без местоположения (и, таким образом, использует GAC). Вам нужно удалить ссылку из проекта, а затем снова добавить ее из места на диске. Однако лучшим выбором может быть добавление файла в пакет Nuget (если он еще не существует), а затем добавление его в локальный репозиторий NuGet, а затем добавление его в ваш packages.conf. Убедитесь, что в ссылке для параметра «Копировать локально» установлено значение «Истина».

Другой вариант — использовать новое расширение Package Management для TFS, недавно выпущенное Microsoft.

person Erik Funkenbusch    schedule 11.02.2016