2016-06-12 20 views
6

Tôi có một vài dự án .NET dll dành cho .NETv4.x. Tôi đã thay đổi phiên bản thành 4.6.1 và được xây dựng lại mà không gặp sự cố. Khi tôi cố gắng thêm referene để chúng khỏi dự án UWP của tôi, tôi nhận được lỗi:Cách thêm tham chiếu dll .NET vào dự án UWP?

The project targets '.NETCore' while the file reference targets '.NETFramework'. This is not a supported scenario.

tôi có thể không còn tham khảo các dự án NET từ 'Thêm tài liệu tham khảo ...'->' dự án:

Unable to add a reference to project

Nhưng trong cài đặt dự án tôi không thể thấy bất kỳ điều gì để thay đổi mục tiêu thành '.NETCore'. Có thể tham khảo dự án .NET4.x từ dự án UWP hay chuyển đổi nó thành loại dự án UWP không?

Trả lời

10

Dự án UWP có thể tham chiếu Thư viện lớp Windows Universal, Thư viện di động hoặc Thành phần Windows Runtime. Các dự án .NET cổ điển của bạn không phải là dự án.

Nếu bạn dự định tiếp tục phát triển và sử dụng các thư viện đó trong cả hai dự án .NET cổ điển và UWP, tôi khuyên bạn nên thử Thư viện di động mà bạn có thể chọn nền tảng đích, nhưng hãy cẩn thận rằng cách tiếp cận này có thể bị hạn chế nó có mẫu số chung thấp nhất cho các không gian tên và các lớp có sẵn.

Một cách tiếp cận khác là tạo hai dự án khác nhau nhắm mục tiêu .NET và UWP cổ điển và chia sẻ mã giữa chúng hoặc thêm tệp dưới dạng liên kết hoặc sử dụng Dự án được chia sẻ. Sau đó giải quyết tất cả các vấn đề với biên dịch có điều kiện, xây dựng chúng và sử dụng đầu ra thích hợp .dll cho cả hai trường hợp.

+0

Tôi gặp sự cố này. Có cách nào dễ dàng để thay đổi thư viện cổ điển ..NET sang PCL? – erotavlas

+0

Phụ thuộc vào số lượng mã nền tảng cụ thể mà bạn có. Cá nhân tôi sẽ làm điều đó bằng "lực lượng tàn bạo": tạo PCL và sao chép tất cả mã trong đó, sau đó bắt đầu loại bỏ/thay thế tất cả mã không phù hợp. Có lẽ có cách hiệu quả hơn mặc dù. Cũng có .NET Standard xuất hiện khá gần đây, có thể được sử dụng cho cùng mục đích như PCL, nhưng tôi chưa xem xét kỹ nó. Bạn có thể [kiểm tra tại đây] (http://stackoverflow.com/questions/39050911/net-standard-net-core-pcl) để biết thêm thông tin về nó. –

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