2011-09-06 22 views
6

İşte ilginç bir tane. Çok çeşitli platformlarda çalışmasını sağlamak için .NET 2.0'a karşı geliştirilen küçük bir yürütülebilir dosyam var. Tek montajlı bir programdır ve sadece System. * Ad alanlarına başvurur.Tek bir uygulamada .NET 2.0 ve .NET 4.0 nasıl desteklenir?

.NET 2.0 yüklü bir işletim sisteminde çalıştırdığımda, düzgün çalışıyor. .NET 4.0 ile sunulan yeni çalışma zamanı nedeniyle, yalnızca .NET 4.0 yüklü bir işletim sistemi üzerinde çalışmayacaktır. Sonuç olarak, desteklenen çalışma zamanı bilgilerini, here açıklandığı gibi app.config dosyasına ekledim. İki desteklenen çalıştırıcıları ekledi: Ben yüklü .NET 2.0 ile bir sistemde uygulamayı çalıştırdığınızda Şimdi

<supportedRuntime version="2.0.50727" /> 
<supportedRuntime version="4.0" /> 

, başarısız çalıştırmak için:

enter image description here

Hiç fark etmez hangi Desteklenen çalışma zamanlarının tanımlanması, hata mesajındaki istenen sürümlerin sıralaması dışında, app.config'deki değişiklikleri yansıtacak şekilde değişir (CLR açık bir şekilde bu bilgileri düzgün şekilde toplar). .NET 2.0 yüklü ve .NET 2.0'ı yüklemem gerektiğini iddia ediyor! .NET 2.0 yüklemesini hiç şansla onarmayı denedim. Bu davranışı ikinci bir makinede yeniden ürettim.

Bunun başarısız olmasına ne neden olabilir?

cevap

11

ben sadece v kaçırmış olabilir size inanıyoruz:

<supportedRuntime version="v2.0.50727" /> 
<supportedRuntime version="v4.0" />