2016-03-10 14 views
13

Có thể thay thế chương trình DLL refs bằng dự án refs cho các phụ thuộc dự án trong Visual Studio C#/VB.NET?Thay thế các tham chiếu DLL với các tham chiếu dự án cho các phụ thuộc dự án trong Visual Studio C# solution

BỐI CẢNH:

Tôi đang làm việc với một số mã di sản mà phụ thuộc đối với mỗi dự án này chủ yếu tham chiếu như DLL biên soạn thay vì bao gồm tài liệu tham khảo dự án từ dự án tương ứng trong dung dịch hoặc thậm chí tồi tệ hơn - tham chiếu thẳng từ GAC!

Ngay bây giờ tôi phải tự xóa từng tham chiếu DLL và thay thế bằng tham chiếu dự án từ giao diện người dùng VS cho từng giải pháp trong số hàng chục dự án.

Chỉnh sửa dự án/giải pháp XML csproj/file sln là không đơn giản do 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

Bạn có thể thay đổi một vài tham chiếu và so sánh cách chúng được liệt kê trong tệp .csproj trước và sau khi thay đổi. Nếu có một mẫu, cho phép bạn khái quát hóa, bạn có thể thay thế chúng bằng cách sử dụng regex trong ứng dụng bảng điều khiển tùy chỉnh hoặc một số trình soạn thảo văn bản. – Edin

+0

@Edin làm thế nào về băm dự án? – denfromufa

+1

Tôi đoán bạn có nghĩa là GUID dự án - bạn có thể giải quyết chúng từ các tệp dự án đơn lẻ bằng cách tìm phần tử ProjectGuid.Điều này có thể viết mã, tuy nhiên nó phụ thuộc vào số dự án bạn cần thay thế và nếu thời gian để làm điều đó sẽ ít hơn nhiều so với lập trình một giải pháp tự động ... hoặc nếu bạn cần lặp đi lặp lại một số lý do. Và đừng quên, giải pháp tự động hóa mã hóa thú vị hơn :) – Edin

Trả lời

5

Sử dụng plug-in này .. Nó có thể giúp đỡ về vấn đề của bạn

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

Mô tả có bên dưới

Chuyển tham chiếu từ tệp sang dự án (và ngược lại a) tài liệu tham khảo khi thêm dự án. Tham chiếu được hoàn nguyên khi dự án bị xóa .

sử dụng:

Bạn đang phát triển dự án A trong đó có một tài liệu tham khảo tập tin để lắp ráp "b.dll". Tại một số điểm bạn cần phải thay đổi "b.dll". Vì vậy, bạn thêm dự án "B" vào giải pháp. ReferenceSwitcher sẽ phát hiện rằng dự án B tạo ra một hội đồng gọi là "b.dll" và hỏi bạn có muốn chuyển tất cả các tham chiếu từ "b.dll" sang dự án B.

Sau đó, tại một số thời điểm sau, bạn không còn cần dự án B trong giải pháp của bạn, vì vậy bạn xóa dự án B. Trình chuyển đổi tham chiếu sẽ phát hiện rằng tham chiếu đến B được sử dụng để trỏ đến "b.dll" và hỏi bạn xem bạn có muốn cập nhật chúng hay không. Thông tin

More đây: http://markkemper1.blogspot.com/2011/09/project-to-file-reference-switcher-for.html

Edit: có rất nhiều plug-in có sẵn để giải quyết mục đích của bạn kiểm tra xem chúng ra

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

HOẶC tìm kiếm tất cả chúng

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

+0

này là tuyệt vời! hãy để tôi kiểm tra xem có ai trong số họ làm việc trong trường hợp của tôi không. Vấn đề duy nhất là 2 plugin này có thể không tương thích với VS 2015. – denfromufa

+1

tôi hy vọng họ sẽ .. cố gắng sử dụng https://visualstudiogallery.msdn.microsoft.com/197d94f6-6276-471d-853d-a5a322ccb08c đầu tiên .. tôi nghĩ .. nó chỉ được thực hiện để giúp bạn :) – Moumit

+0

không ai trong số những addins làm việc với VS 2015 !!! – denfromufa

Các vấn đề liên quan