Różne wersje .NET Framework a referencje

0

Na początku chciałbym powitać wszystkich, jako że jest to mój pierwszy post na tym forum.

Przechodząc do meritum...

W Visual Studio 2010 mam dwa projekty ProjektA (wersja docelowa .net frameworka: 3.5) i ProjektB (wersja docelowa .net frameworka: 4.0). Chciałbym do ProjektA dodać referencje ProjektB i wykorzostać część jej funkcjonalności. Czy jest to możliwe? (przy założeniu, że nie mogę zmienić docelowego framerowka dla ProjektA)?

Przy próbie dodania referencji otrzymuje ostrzeżenie "ProjektA, or one of its dependencies, requires a later version od the .NET Framework than the one specified in the project..."

Z góry dzięki za pomoc.

0

google: useLegacyV2RuntimeActivationPolicy

0

Czy to jest problem praktyczny, czy teoretyczny?

0

W tym przypadku ma to wymiar praktyczny.

To uproszczony diagram komponentów systemu nad którym pracuję.

<image src="http://magictiling.nazwa.pl/i[...]_komponentow.jpg</image&gt;

Chciałbym, aby moja aplikacja tworzona była pod .NET Framework 4. Aplikacja zawiera wydzieloną bibliotekę ImportDanych, z której też ma korzystać zewnętrzny system (tu ArcGIS działający pod .NET Framework 3.5). I tu pojawia się problem. ArcGIS nie może wywołać biblioteki ImportDanych napisanej pod .NET Framework 4. Z kolei zmiana docelowego frameworku biblioteki ImportDanych na .NET Framework 3.5 pociąga za sobą analogiczną zmianę w innych bibliotekach, z których ona korzysta (DostepDoDanych).

Czy w takim przypadku muszę całą architekturę planować pod .NET Framework 3.5, a może jest możliwość wywoływania bibliotek przy zachowaniu wersji frameworków jak na diagramie?

0

Pogrzebałem trochę na zagranicznych forach i znalazłem odpowiedź. Otóż nie da się wywołać biblioteki napisanej pod .NET Framework 4 z biblioteki napisanej pod niższą wersję frameworka.

0

Po wyeksportowaniu dll'ki (.net framework 4) przez COM daje się ją wywołać z biblioteki napisanej pod .net framework 3.5. Dzięki wielkie za pomoc! :)

0

Próbuję właśnie skorzystać z porady Rav'a, czyli wyeksportować bibliotekę (.net framework 4) do COM zaznaczając w opcjach projektu opcję "Register for COM interop". Jednak przy próbie dodania referencji tak zarejestrowanej biblioteki do innego projektu (.net framework 3.5) dostaję komunikat:

"A reference to 'MyLibrary' could not be added.
The ActiveX type library [ścieżka do pliku *.tlb] was exported from a .NET assembly and cannot be added as reference.
Add a reference to the .NET assembly instead."

Treść komunikatu jest dla mnie zrozumiała, ale czy jest jakiś inny sposób dodania tej referencji do projektu? Jestem zielony w kwestii znajomości architektury COM. Będę wdzięczny za jakieś porady.

1

Ciekawe.

http://blogs.microsoft.co.il/[...]-net-2-based-application.aspx
Tutaj masz programowe użycie COM bez importu tlb w Visual Studio.

0

Rev jesteś wielki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0