Я использую Visual Studio 2015.
У меня есть проект служебной библиотеки, который ссылается на ряд сторонних сборок, которые все зарегистрированы в GAC. В этом проекте все зависимости, которые зарегистрированы в GAC, являются ссылками с копией local, установленной в false. Когда я собираю эти проекты, сборки GAC не копируются в каталог сборки.
Затем на служебный проект ссылается, как на проект, другой проект, для параметра "copy local" установлено значение true. Затем ссылается на сборку проекта, все сборки GAC, на которые ссылается служебный проект, копируются в каталог сборки. Эти сборки довольно велики, и это действительно замедляет сборку и увеличивает размер каталога сборки.
Visual Studio 2013 этого не делал. Вторичные ссылки, которые были зарегистрированы в GAC, не были скопированы. Следует также отметить, что в Visual Studio 2015 вторичные ссылки также копируются, если я ссылаюсь на проект утилиты как файл, а не как проект. Есть ли способ остановить его от копирования вторичных зависимостей?
Вот раздел подробного вывода из MSBuild для одной из вторичных ссылок, которая копируется:
4> Dependency "ESRI.ArcGIS.Catalog, Version=10.5.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86".
4> Resolved file path is "C:\Program Files (x86)\ArcGIS\DeveloperKit10.5\DotNet\ESRI.ArcGIS.Catalog.dll".
4> Reference found at search path location "{Registry:Software\Microsoft.NETFramework,v4.7.2,AssemblyFoldersEx}".
4> For SearchPath "C:...\bin\Release".
4> Considered "C:...\bin\Release\ESRI.ArcGIS.Catalog.winmd", but it didn't exist.
4> Considered "C:...\bin\Release\ESRI.ArcGIS.Catalog.dll", but it didn't exist.
4> Considered "C:...\bin\Release\ESRI.ArcGIS.Catalog.exe", but it didn't exist.
4> For SearchPath "{TargetFrameworkDirectory}".
4> Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.7.2\ESRI.ArcGIS.Catalog.winmd", but it didn't exist.
4> Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.7.2\ESRI.ArcGIS.Catalog.dll", but it didn't exist.
4> Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.7.2\ESRI.ArcGIS.Catalog.exe", but it didn't exist.
4> Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.7.2\Facades\ESRI.ArcGIS.Catalog.winmd", but it didn't exist.
4> Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.7.2\Facades\ESRI.ArcGIS.Catalog.dll", but it didn't exist.
4> Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.7.2\Facades\ESRI.ArcGIS.Catalog.exe", but it didn't exist.
4> For SearchPath "{Registry:Software\Microsoft.NETFramework,v4.7.2,AssemblyFoldersEx}".
4> Considered AssemblyFoldersEx locations.
4> Required by "C:...\bin\Release\ArcBase.dll".
4> Found related file "C:\Program Files (x86)\ArcGIS\DeveloperKit10.5\DotNet\ESRI.ArcGIS.Catalog.xml".
4> The ImageRuntimeVersion for this reference is "v4.0.30319".