2012-09-27 12 views
12

Sistemin .NET 4.0 ve .NET 4.5 yüklü olduğunu varsayarsak..NET 4.0 uygulama etki alanında .NET 4.5 için hedeflenen bir derleme yükleme

.NET 4.0 derlemesi .NET 4.0 derlemesi tarafından yazılmış bir hedefleme kuruluşundan yüklenip kullanılabilir mi?

Basitçe söylemek gerekirse, .NET 4.5 hedefleme derlemesi yüklemek için .NET 4.0 kodundan Assembly.Load dosyasını arayabilir miyim?

+2

Bunu okumak isteyeceksiniz: http://marcgravell.blogspot.nl/2012/09/iterator-blocks-missing-methods-and-net.html çok! – sehe

+0

.NET4.5'i kullanmak için diğer projelerinizde yapı ayarlarını neden ayarlamıyorsunuz? –

+1

@ShaunWilde Bazen bu mümkün değildir. Bir şirkette .NET 4.0 kullanan .NET 4.5 kullanan bir çok takım veya uygulama olabilir. İdeal bir dünyada, bu gerçekleşmez, ancak gerçek dünyada, çoğu zaman yapar. Bazen ikisi arasındaki bileşenleri birlikte çalışmanız gerekir. – Nuzzolilo

cevap

11

NET 4.0 ve .NET 4.5 gibi bir sistem varsayarsak: sehe

4,5 ile bağlantılı marcgravell's blog belirtilen bir yerinde aşırı-üst 4.0 üstünde yüklemek olduğu gibi

, GAC’de; Eğer 4.5 meclisleri (a 4.0 derleyici tarafından derlenmiş) 4.0 hedefleyen bir .NET kodundan Assembly.load çağırarak Sonra

ile, 4.5 4,0 çalışır yükledikten sonra, aslında 4,5 çerçeve uygulamasını kullanarak çalıştırmak, bu yüzden olacak 4.5 montajını yapamadığına dair bir neden görmüyorum.

margravell, .NET 4.0 derlenmiş kodu yalnızca 4.0 yüklü bir sistemde çalıştırmayı denediğinizde ortaya çıktığını not eder, çünkü getiri döndürme/ara yineleyicilerinin uygulanması eksik bir yöntem başvurusuna neden olur. Ama bu seni etkilememeli.

+4

nasıl oluyor da varsayılan olarak çalışmıyor? - Çalışmak için ne yapman gerekiyor? – BrainSlugs83

+0

Görünüşe göre .net-4.5, bazı durumlarda da .net-4.0 gibi davranmaya çalışıyor. Örneğin, 'System.ComponentModel.Composition' .net-4.0 olarak başlatılan bir program tarafından yüklenen bir .net-4.5 derlemesi tarafından yüklendiğinde açık genel türleri kapatmayı reddeder. Bu beni biraz şaşırttı çünkü çerçevenin .net-4.0 modunda çalıştığını fark etmedim ve bunun farklı davranışların nedeni olabileceğini tahmin edemedim. – binki

İlgili konular