Подтвердить что ты не робот

Замените 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>
4b9b3361

Ответ 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