Замените DLL refs проектами ref для зависимостей проекта в решении Visual Studio С#
Можно ли программно заменить DLL refs на Project refs для зависимостей проекта в решении Visual Studio С#/VB.NET?
ПРЕДПОСЫЛКИ:
Я работаю с некоторым устаревшим кодом, в котором зависимости для каждого проекта в основном упоминаются как скомпилированные библиотеки DLL вместо того, чтобы включать ссылку на проект из соответствующего проекта в решении или даже хуже - ссылки прямо из GAC!
Сейчас мне нужно вручную удалить каждую ссылку на DLL и заменить ее ссылкой на проект из VS UI для каждого решения из десятков проектов.
Редактирование файла проекта/решения XML.csproj/.sln не является прямым из-за GUID:
<!--typical DLL reference-->
<ItemGroup>
<Reference Include="MyDLL, Version=2.0.1.0, Culture=neutral, PublicKeyToken=1b6d1e0267e1acba, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>...\MyDLL.dll</HintPath>
</Reference>
</ItemGroup>
<!--typical Project reference-->
<ItemGroup>
<ProjectReference Include="..\MyDLL\MyDLL.csproj">
<Project>{3cc27830-3d6b-4071-85e5-5a4006f11142}</Project>
<Name>MyDLL</Name>
</ProjectReference>
</ItemGroup>
Ответы
Ответ 1
Используйте этот плагин. Это может помочь в вашей проблеме.
https://visualstudiogallery.msdn.microsoft.com/056617a4-da39-4d7b-8ecf-933009d9b721
Ниже приведено описание
Переключает ссылки из файлов на проекты (и наоборот) при добавлении проектов. Ссылки возвращаются, когда проект удалены.
использование:
Вы разрабатываете проект A, который имеет ссылку на файл для сборки "B.dll". В какой-то момент вам нужно внести изменения в "b.dll". Так что вы добавьте проект "B" к решению. ReferenceSwitcher обнаружит что проект B создает сборку под названием "b.dll" и спрашивает, хотите ли вы для переключения всех ссылок с "b.dll" на проект B.
Затем в какой-то момент вам больше не понадобится проект B в вашем решение, поэтому вы удаляете проект B. Контрольный коммутатор будет обнаружил, что ссылки на B указывали на "b.dll" и спрашивали вас, если вы хотели бы их обновить.
Подробнее здесь: http://markkemper1.blogspot.com/2011/09/project-to-file-reference-switcher-for.html
Edit:
есть много плагина, доступного для решения вашей цели, проверить их
https://visualstudiogallery.msdn.microsoft.com/197d94f6-6276-471d-853d-a5a322ccb08c
ИЛИ искать их все
https://visualstudiogallery.msdn.microsoft.com/site/search?f%5B0%5D.Type=SearchText&f%5B0%5D.Value=reference&pageIndex=2