Tôi đã gặp vấn đề tương tự, nhưng với v4.7.2
. Cụ thể, tôi tiếp tục nhận được thông báo nhật ký xây dựng như thế này:
error : Your project does not reference ".NETFramework,Version=v4.7.2" framework. Add a reference to ".NETFramework,Version=v4.7.2" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.
Mặc dù thực tế là nó trông giống nhau, không có bước nào được đề xuất ở trên phù hợp với tôi. Tôi tiếp tục thấy thông báo này sau mỗi lần xây dựng. Dường như không có gì có thể giúp được.
Trên thực tế, vấn đề liên quan đến điều đó, do di chuyển, tôi phải đặt hai dự án trong một thư mục mã. Một trong số chúng được nhắm mục tiêu vào .Net Core , một trong số khác tại .Net Framework , cả hai đều tham chiếu đến cùng các thư viện .Net Standard. Rõ ràng, chúng chia sẻ cùng một obj
thư mục nơi các dự án Core đặt project.assets.json
tệp. Trên thực tế, chính xác thì tệp này làm gián đoạn dự án Framework ngăn cản quá trình xây dựng bình thường của nó. Có vẻ như ngay cả khi bạn đã thực hiện Di chuyển từ package.config sang PackageReference ... được khuyến nghị là một trong những giải pháp khả thi.
Bạn có thể cố gắng khắc phục sự cố bằng cách đặt đoạn mã sau vào tệp dự án Framework của mình:
<Project>
...
<PropertyGroup>
<BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath>
<BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
</PropertyGroup>
...
</Project>
Nó ngay lập tức có hiệu quả với tôi, chỉ sau này khi tôi chăm chú đọc lý do tại sao chúng tôi cần nó và tại sao nó hoạt động. Tôi bất ngờ tìm thấy nó trong phần 2 của Di chuyển ứng dụng WPF mẫu sang .NET Core 3 trong phần Đảm bảo dự án .NET Framework vẫn xây dựng . BaseOutputPath
và BaseIntermediateOutputPath
các biến msbuild có thể được tìm thấy ở đó, nhưng không chắc liệu chúng có được ghi lại tốt ở bất kỳ đâu.