Ссылка TFS 2015 требуется для сборки
У меня проблема со сборкой с TFS 2015.
У меня есть простой проект, который ссылается на B.dll . B.dll использовать A.dll . Проект не ссылается на A.dll, так как не использует его сам.
A.dll и B.dll - это библиотеки DLL компании, хранящиеся в 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 (Pro 2013)
Поэтому я отследил проблему и увидел, что: -> 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 создать мое решение Visual Studio, как? Принудительно использовать другой целевой файл? Есть ли еще один способ решить эту сборку?
Я попытался добавить, как я видел во многих постах в Интернете, папку, содержащую все необходимые DLL-файлы, но TFS не пытается найти путь для A.dll .
Дополнительная информация: Исключение возникает при выполнении Vbc.exe, потому что при выполнении VS в командной строке есть файл A.dll в разделе / import, а в случае TFS он не добавляется. Нет проблем с MSBuild.exe.
1 ответ
Я наконец нашел ответ:
Мне нужно добавить это в файл proj, который имеет проблемы.
<Target Name="AfterResolveReferences">
<!-- Redefine referencepath to add dependencies-->
<ItemGroup>
<ReferencePath Include="@(ReferenceDependencyPaths)"></ReferencePath>
</ItemGroup>
</Target>