2016-06-12 9 views
6

Mam kilka projektów .NET dll dla .NETv4.x. Zmieniłem wersję na 4.6.1 i przebudowałem bez problemów. Gdy próbuję dodać referene do nich z moim UWP projektu otrzymuję błąd:Jak dodać .NET dll odniesienia do projektu UWP?

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

Nie mogę też odwoływać projektów z .NET „Dodaj odwołanie ...'->” Projekty:

Unable to add a reference to project

Jednak w ustawieniach projektu nie widzę niczego, co mogłoby zmienić cel na ".NETCore". Czy można odwołać się do projektu .NET4.x z projektu UWP lub przekonwertować go na typ projektu UWP?

Odpowiedz

10

Projekt UWP może odwoływać się do Uniwersalnej biblioteki klas systemu Windows, przenośnej biblioteki lub składnika wykonawczego systemu Windows. Twoje klasyczne projekty .NET nie są żadnymi.

Jeśli planujesz kontynuować rozwijanie i korzystanie z tych bibliotek zarówno w klasycznych projektach .NET jak i UWP, sugeruję wypróbowanie Portable Library, w której możesz wybrać docelowe platformy, ale pamiętaj, że to podejście może być nieco ograniczone, ponieważ zajmuje najniższy wspólny mianownik dla dostępnych przestrzeni nazw i klas.

Innym rozwiązaniem byłoby utworzenie dwóch różnych projektów kierowanych na klasyczne platformy .NET i UWP oraz udostępnienie kodu między nimi, dodając pliki jako łącza lub korzystając z projektu udostępnionego. Następnie rozwiąż wszystkie problemy kompilacją warunkową, skompiluj je i użyj odpowiednich plików wyjściowych .dll dla obu przypadków.

+0

Mam ten problem. Czy istnieje prosty sposób na zmianę klasycznej biblioteki ..NET na PCL? – erotavlas

+0

Zależy od tego, ile masz kodu specyficznego dla platformy. Osobiście zrobiłbym to przez "brutalną siłę": stwórz PCL i skopiuj cały kod, a następnie zacznij eliminować/zamieniać cały kod, który nie pasuje. Może jednak jest bardziej efektywny sposób. Istnieje również .NET Standard całkiem niedawno, który może być użyty w tym samym celu co PCL, ale jeszcze nie przyjrzałem się temu bliżej. Możesz [sprawdź tutaj] (http://stackoverflow.com/questions/39050911/net-standard-net-core-pcl), aby uzyskać więcej informacji na ten temat. –