У нас есть DLL С# (пусть его называют myapp.exe
), встроенный в .NET 2.0 Framework (VS2005), и мы обнаружили, что наше приложение не будет работать на машинах, где установлен только .NET 4.0 или выше. Чтобы наше приложение работало над .NET 4.0, я добавил следующие строки в myapp.exe.config
, следуя этой статье Установка .NET Framework V4.0 и запуск .NET Приложения 2.0/3.0/3.5/3.5Sp1
<startup>
<supportedRuntime version="v4.0.30319"/>
</startup>
И он работает.
Затем я увидел, что в этой статье также упоминается следующее (особенно второй абзац):
Теперь я знал, что вы не можете использовать приложение Service Pack 1 3.5 и запустить его на V4.0 CLR. Он нуждается в V2.0 CLR или переконфигурировании с помощью чтобы сгибать приложение для работы в среде V4.0 CLR, и что изгиб может быть тем, что вы не хотите делать.
Что я не понял, было то, что установка .NET 4.0 не смогла бы установить бит, который необходим для приложения 2.0/3.0/3.5/3.5Sp1. Он будет устанавливать только V4.0 CLR и сборки V4.0, а не дополнительно устанавливать эквивалент .NET Framework V3.5 Sp1. Итак, вам необходимо установить (например,.NET Framework V3.5 Sp1 самостоятельно вместе с .NET 4.0
Из моего тестирования это означало бы, что я мог бы запустить приложение 2.0 С# на .NET 4.0 с платформой .NET 4.0 (сборка 4.0/сборник), что противоречит тому, что говорится в статьях.
Или я что-то пропустил? Было бы полезно, если бы кто-то мог прояснить это. Microsoft на самом деле не делает этого ясно.