2015-06-02 13 views
9

Nauczyłem się kodowania i nie jestem pewien, czy to jest możliwe. Nie wiem też, czy to, o co tutaj poproszę, ma jakąś nazwę (np .: "To, o co prosisz, nazywa się xxxxxx"). Nie mogłem znaleźć niczego na ten temat (ale znalazłem kilka artykułów o uaktualnieniu, co nie jest dokładnie tym, czego chcę, więc proszę wybacz mi, jeśli to brzmi jak pytanie NOOB do hardcorowych programistów, jestem początkującym).Czy jest możliwe, aby projekt C# używał wielu wersji .NET?

Miałem mały projekt, który polegał na .NET 2.0 z powodu włączenia niektórych zewnętrznych bibliotek. Oprogramowanie działało dobrze, ale teraz potrzebuje dodatkowej funkcjonalności; rzeczy, które znacznie łatwiej byłoby programować w środowisku .NET 4.0 lub 4.5.

Jednak ta biblioteka zewnętrzna nie jest na tym poziomie .NET, więc teraz zastanawiam się: czy projekt może mieć wiele wersji .NET?

Nie jestem pewien, ale myślałem, że być może tylko piszę moją nową funkcję jako bibliotekę DLL, która zależy od .NET 4.5, w której piszę moje funkcje publiczne w innym projekcie, a następnie włączam tę ostateczną bibliotekę prj, który zależy od .NET 2.0 ... nie jestem pewien, czy to byłby sposób, aby przejść.

+0

Z tego, co widziałem w repozytoriach Microsoft, mają oddzielne projekty dla każdej wersji .NET, którą chcą wspierać ... –

+0

Nie powinieneś móc używać żadnej biblioteki, która zależy od niższych (lub równych).). Wersja sieciowa? – germi

+9

Z wyjątkiem zestawów w trybie mieszanym, oczekiwałbym, że zespoły zbudowane na platformie .NET 2.0 zwykle działają w środowisku .NET 4.0 lub 4.5 ... –

Odpowiedz

7

Tak, można to .NET 2 zespoły do. Projekt NET 4 lub .NET 4.5 (lub dowolna dowolna wersja). Włączenie zestawu .NET 4 w projekcie .NET 2 nie będzie działać.

Jeśli chcesz użyć nowych funkcji w projekcie podstawowym, musisz uaktualnić wszystkie projekty, które na nim polegają. Upewnij się, że całe drzewo obsługuje platformę .NET 4 (na przykład dodatki Office lub inne powiązane oprogramowanie, z którego możesz korzystać).

Wyjątkiem jest stosowanie mixed-mode assemblies (zespołów, które korzystają zarówno .NET i kod Zewnętrzny), które są bardziej szczelne, aby CLR i mogą powodować problems due to the activity policy (MSDN).

+0

Zespoły mieszane V2 mogą pracować w środowisku wykonawczym V4 z użyciemLegacyV2RuntimeActivationPolicy: https://msdn.microsoft.com/en-us/library/ bbx34a2h.aspx –

+0

@ Jonathan Dickinson: Rzeczywiście. Zobacz link pod zasadami aktywacji. Dodano link MSDN. –

+0

Masz na myśli to, że moja główna aplikacja musi zostać przekonwertowana na v4, podczas gdy ja muszę zachować rutyny w wersji 2 w jakiejś specjalnej polityce, która jest częścią v4? – user613326

2

Można użyć tylko jednej wersji .NET i jest to wersja, której wymaga aplikacja podstawowa (lub jest skonfigurowana). Jednak .NET jest w dużej mierze kompatybilny wstecz ze starszymi wersjami i często może uruchamiać starsze zespoły niezmienione w nowszych wersjach frameworka.

Mimo że Twoja aplikacja może działać w środowisku .NET 4 lub 4.5, możesz użyć złożeń (lub bibliotek) napisanych dla .NET 2 (chociaż niektóre ograniczenia mogą mieć zastosowanie, o czym wspomniały inne). Te podzespoły działają po prostu pod 4.5 CLR (przy założeniu, że nie występują z nimi żadne problemy ze zgodnością), co jest rzadkie, ale się zdarza.

Ale klucz do zapamiętania, twoja uruchomiona aplikacja musi być w najwyższej wersji wszystkich zawartych złożeń. Oznacza to, że jeśli masz 4,5 złożeń, nie możesz uruchomić aplikacji jako aplikacji 2.0. Musi być na odwrót.

0

tak, można dołączyć. właśnie to CLS Do

Jeśli chcesz użyć nowych funkcji w projekcie podstawowym, musisz uaktualnić wszystkie projekty, które na nim oparte.

Powiązane problemy