2010-10-12 20 views
5

Mam projekt .Net 2.0, który zależy od wielu zewnętrznych bibliotek .Net (z których wszystkie oczywiście są ukierunkowane na .Net 2.0).Aktualizacja projektu .Net 2.0 do .Net 4.0

Gdybym miał migrować mój projekt do VS2010 i kierować na platformę .Net 4.0, czy moja aplikacja będzie nadal budowana? Lub będzie narzekać na .NET 2.0 dll odniesienia i będę musiał znaleźć .NET 4.0 wersje tych bibliotek DLL 3rd party?

+0

Odpowiedź Aarona wydaje się być poprawna. –

+0

Po kilku testach, oto co odkryłem: Aplikacja ASP.Net i CmdLine pracowały po retargetowaniu do .Net 4.0. Do pliku konfiguracyjnego nie trzeba wprowadzać żadnych zmian. Ponadto biblioteki DLL innych firm (zbudowane przy użyciu .Net 2.0), których używałem do generowania plików PDF, działały tak samo jak w wersji 3.5. Aktualizacja nastąpi, jeśli znajdę jakiekolwiek pliki gotch. –

Odpowiedz

3

Tak, to zadziała. Upewnij się, że masz zainstalowane .NET 2 i 4 FW na komputerach, na których działa aplikacja.

+0

Mam zainstalowane zarówno platformy .net 2, jak i .net 4 na moim komputerze. Ale pojawia się błąd "Nie można załadować pliku lub zestawu" Microsoft.Practices.EnterpriseLibrary.Data, Version = 3.1.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a 'lub jedną z jego zależności. Definicja manifestu umieszczonego zespołu nie pasuje do odniesienie do zestawu. (Wyjątek od HRESULT: 0x80131040) " –

+0

@Rajah sprawdził Microsoft.Practices.EnterpriseLibrary.Data i powiedział, że jest na 2.0 i 3.0, ale 3.0 jest potrzebny dla konkretnych rzeczy ... czy masz również 3 tam? –

+0

Wyglądało to na VS 2010, automatycznie zaktualizowano bibliotekę DLL do wersji V5 (która jest również zainstalowana na moim komputerze). Po usunięciu go i przeczytaniu v3.0 EntLib, zaczął działać bez problemu. –

2

Jeśli trzeba użyć starszych zespołów z 4.0 (w trybie mieszanym) może trzeba dodać następujące <yourappname>.config:

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
</startup> 

Musiałem to zrobić, kiedy próbowali załadować kilka starych 1.1 zespoły do mój program IronPython (.NET 4.0) i uzyskałem następujący błąd:

"Mixed mode assembly is built against version 'v1.1.4322' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information." 

Dodając te trzy linie do mojego pliku ipyw.exe.config pozwól mi działać te zespoły w trybie mieszanym.