Oto interesująca. Mam mały plik wykonywalny zbudowany na platformie .NET 2.0, aby zapewnić działanie na wielu różnych platformach. Jest to program jednosilnikowy i odnosi się tylko do przestrzeni nazw System. *.Jak obsługiwać .NET 2.0 i .NET 4.0 w jednej aplikacji?
Po uruchomieniu go w systemie operacyjnym z zainstalowanym .NET 2.0, działa poprawnie. Nie będzie działać na systemie operacyjnym z zainstalowanym tylko .NET 4.0, z powodu nowego środowiska wykonawczego wprowadzonego w .NET 4.0. W rezultacie dodałem obsługiwane informacje o środowisku wykonawczym do pliku app.config, zgodnie z opisem here. Dodałem dwa obsługiwane czasy pracy:
<supportedRuntime version="2.0.50727" />
<supportedRuntime version="4.0" />
Teraz kiedy uruchomić aplikację w systemie z zainstalowanym .NET 2.0, nie powiedzie się uruchomić:
Nie ma znaczenia, w którym aby zdefiniować obsługiwane środowiska wykonawcze, inne niż kolejność żądanych wersji w zmianach komunikatów o błędach, aby odzwierciedlić zmiany w pliku app.config (aby CLR najwyraźniej prawidłowo podniósł te informacje). Mam zainstalowaną .NET 2.0 i twierdzi, że muszę zainstalować .NET 2.0! Próbowałem naprawić instalację .NET 2.0 bez powodzenia. Odtworzyłem to zachowanie na drugiej maszynie.
Co może być przyczyną niepowodzenia?