È possibile sostituire a livello di codice i riferimenti DLL con i riferimenti di progetto per le dipendenze del progetto nella soluzione Visual Studio C#/VB.NET?Sostituisci i riferimenti DLL con i ref di progetto per le dipendenze del progetto nella soluzione di Visual Studio C#
BACKGROUND:
Sto lavorando con un certo codice legacy in cui dipendenze per ciascun progetto sono per lo più riferimento come DLL compilate invece di includere riferimento al progetto dal progetto corrispondente in soluzione o peggio ancora - si fa riferimento direttamente dal GAC!
Al momento devo rimuovere manualmente ogni riferimento DLL e sostituirlo con il riferimento del progetto dall'interfaccia utente VS per ciascuna soluzione su dozzine di progetti.
Modifica del XML progetto/soluzione .csproj/files .sln non è semplice a causa di 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>
È possibile modificare un paio di riferimenti e confrontare il modo in cui sono stati elencati nel file .csproj prima e dopo la modifica. Se esiste un modello che consente di generalizzare, è possibile sostituirli utilizzando espressioni regolari in un'app console personalizzata o in un editor di testo. – Edin
@Informazioni sugli hash del progetto? – denfromufa
Immagino tu intenda i GUID di progetto: puoi risolverli da singoli file di progetto trovando l'elemento ProjectGuid.È possibile codificare, tuttavia dipende da quanti progetti è necessario sostituire e se il tempo per farlo sarà molto inferiore alla programmazione di una soluzione automatizzata ... o se è necessario farlo più e più volte per qualche motivo. E non dimentichiamoci, la codifica della soluzione automatizzata è più divertente :) – Edin