У меня проблема со сборкой с 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.