2016-03-10 6 views
13

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> 
+1

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

+0

@Edin jak o hasłach projektu? – denfromufa

+1

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

Odpowiedz

5

Użyj tego plug-in .. To może pomóc na swój problem

https://visualstudiogallery.msdn.microsoft.com/056617a4-da39-4d7b-8ecf-933009d9b721

posiada opis poniżej

Przełączniki referencji z pliku do projektów (i wice Vers a) referencje podczas dodawania projektów. Odwołania są cofane po usunięciu projektu .

Wykorzystanie:

Ty rozwijają projektowi, który ma odniesienie pliku do montażu „b.dll”. W pewnym momencie musisz wprowadzić zmiany do "b.dll". Więc musisz dodać projekt "B" do rozwiązania. ReferenceSwitcher wykryje, że projekt B tworzy zespół o nazwie "b.dll" i pyta, czy chcesz, aby przełączył wszystkie odniesienia z "b.dll" na projekt B.

Następnie, w pewnym momencie, przestaniesz potrzebujesz projektu B w swoim rozwiązaniu , więc usuwasz projekt B. Przełącznik referencji wykryje, że odniesienia do B zostały użyte do wskazania "b.dll" i zapytał, czy chcesz je zaktualizować.

Więcej informacji tutaj: http://markkemper1.blogspot.com/2011/09/project-to-file-reference-switcher-for.html

Edit: istnieje wiele plug-in dostępny w rozwiązywaniu celu ich sprawdzić

https://visualstudiogallery.msdn.microsoft.com/197d94f6-6276-471d-853d-a5a322ccb08c

lub poszukać im wszystko

https://visualstudiogallery.msdn.microsoft.com/site/search?f%5B0%5D.Type=SearchText&f%5B0%5D.Value=reference&pageIndex=2

+0

to jest świetne! pozwól mi sprawdzić, czy któryś z nich działa w moim przypadku. Jedynym problemem jest to, że te 2 wtyczki mogą nie być kompatybilne z VS 2015. – denfromufa

+1

Mam nadzieję, że spróbują najpierw spróbować użyć https://visualstudiogallery.msdn.microsoft.com/197d94f6-6276-471d-853d-a5a322ccb08c .. myślę, że ... to jest wyłącznie po to, aby ci pomóc :) – Moumit

+0

żaden z tych dodatków nie działa z VS 2015 !!! – denfromufa