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>
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
@Edin làm thế nào về băm dự án? – denfromufa
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