Для сборки требуется ссылка TFS 2015

У меня проблема со сборкой с TFS 2015.

У меня есть простой проект, который ссылается на B.dll. B.dll использует A.dll. Проект не ссылается на A.dll, так как сам не использует ее.

A.dll и B.dll — это DLL-библиотеки компании Framework, хранящиеся в GAC.

[ошибка] LogistiqueTest\Index.aspx.vb(7,14): ошибка BC30009: требуется ссылка на сборку «A.DII.Technique.Interfaces, версия = 3.5.0.0, культура = нейтральная, PublicKeyToken = e60618ca32d203a8», содержащая реализованный интерфейс 'A.DII.Technique.Interfaces.IGestionException'. Добавьте один в свой проект.

Это не имеет большого значения, просто ссылка отсутствует. Но мы не хотим добавлять ненужные ссылки в наши проекты. Более того, эта проблема не возникает с Visual Studio (2013 pro)

Итак, я отследил проблему и увидел, что: -> Visual Studio быстро извлекает ссылку (A.dll) после «вызова» этой строки.

Цель "CoreBuild: (TargetId:61)" в файле "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" из проекта "D:\AgentTFS_02_work\3\s\LogistiqueTest\ LogistiqueTest.vbproj" (от него зависит цель "Build"):

Но TFS не использует один и тот же файл; это использовать

"C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets"

Разница между этими файлами заключается в Microsoft.Common.CurrentVersion.targets, там есть некоторый код для разрешения сборок.

Итак, мои вопросы: есть ли способ заставить TFS построить мою визуальную студию решения, например? Принудительно использовать другой целевой файл? Есть ли другой трюк, чтобы разрешить эту сборку?

Я пытался добавить, как я видел во многих сообщениях в Интернете, папку, содержащую все необходимые .dll, но TFS не пытается разрешить путь для A.dll

Дополнительная информация. Исключение возникает при выполнении Vbc.exe, так как при выполнении VS командная строка содержит A.dll в разделе /import, когда в TFS она не добавлена. Нет проблем с MSBuild.exe.


person Vitelize    schedule 06.04.2017    source источник
comment
Вы зарегистрировали A dll и B dll в GAC на своем сервере агента сборки TFS? И использовал ли B также A из GAC?   -  person Tingting0929    schedule 07.04.2017
comment
Пожалуйста, используйте команду MSBuild для сборки проекта, который вы получаете на компьютере с агентом сборки, можно ли его построить?   -  person Tingting0929    schedule 07.04.2017


Ответы (1)


Наконец-то я нашел ответ:

http://www.nsilverbullet.net/2012/02/17/automatically-resolving-secondary-assembly-references-with-msbuild-and-tfs-build/

Мне нужно добавить это в файл проекта, в котором есть проблемы.

<Target Name="AfterResolveReferences">
    <!-- Redefine referencepath to add dependencies-->      
      <ItemGroup>
          <ReferencePath Include="@(ReferenceDependencyPaths)"></ReferencePath>
          </ItemGroup>
</Target>   
person Vitelize    schedule 10.04.2017