Czy można programowo zastąpić pliki DLL odwołań do projektu dla zależności projektu w Visual Studio C#/VB.NET?Zastępowanie plików DLL odwołaniami do projektu dla zależności projektu w Visual Studio C# rozwiązanie
Wstęp:
Pracuję z niektórych starszych kod gdzie Zależności dla każdego projektu są głównie jako odwołanie skompilowanych bibliotek DLL, zamiast w tym odwołanie projektu z odpowiedniego projektu w roztworze lub nawet gorzej - odniesione bezpośrednio z GAC!
Teraz muszę ręcznie usunąć każdy odnośnik DLL i zastąpić go odniesieniem do projektu z interfejsu użytkownika VS dla każdego rozwiązania z kilkudziesięciu projektów.
Edycja XML projekt/roztwór .csproj/pliki .sln nie jest proste ze względu na 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>
Możesz zmienić kilka odniesień i porównać sposób ich umieszczenia w pliku .csproj przed i po zmianie. Jeśli istnieje wzorzec, który pozwoliłby ci generalizować, możesz zastąpić je za pomocą regex w niestandardowej aplikacji konsolowej lub edytorze tekstu. – Edin
@Edin jak o hasłach projektu? – denfromufa
Sądzę, że masz na myśli GUID projektu - możesz rozwiązać je z pojedynczych plików projektu, znajdując element ProjectGuid.Jest to możliwe do kodu, jednak zależy to od tego, ile projektów trzeba będzie zastąpić, a jeśli czas na to będzie znacznie mniejszy niż programowanie zautomatyzowanego rozwiązania ... lub jeśli z jakiegoś powodu trzeba to zrobić w kółko. I nie zapominajmy, że kodowanie zautomatyzowanego rozwiązania jest bardziej zabawne :) – Edin