#.net #.net-3.5 #.net-4.0
#.net #.net-3.5 #.net-4.0
Вопрос:
У меня есть exe-файл на основе .net3.5, который при запуске на ПК выдает следующее сообщение: «не удается найти версию среды выполнения для запуска этого приложения».????
На компьютере установлены winxp sp3 и vs2010, поэтому приложения на базе .net4 запущены, а exes на базе .net3.5 — нет.По моему мнению, если на ПК есть .net3.5, то он должен иметь возможность запускать приложения на основе .net3.5????
Спасибо
Ответ №1:
Вы не можете запускать приложения, ориентированные на .NET 3.5, на компьютере, на котором не установлена .NET 3.5.
.NET 4.0 не имеет обратной совместимости с .NET 3.5. Он использует другую версию среды CLR. Итак, ваш вывод неверен: вы должны установить обе версии .NET Framework, если хотите запускать приложения, ориентированные как на .NET 3.5, так и на .NET 4.0.
Однако .NET 3.5 использует ту же версию среды CLR, что и .NET 3.0 и .NET 2.0. Поэтому, если вы хотите запускать приложения, предназначенные для любой из этих платформ, вы можете сделать это, установив .NET 3.5.
Ссылка для загрузки .NET 4.0 объясняет, что:
.NET Framework 4 работает параллельно со старыми версиями Framework. Приложения, основанные на более ранних версиях платформы, будут продолжать запускаться в версии, установленной по умолчанию.
Однако, если вы написали приложение самостоятельно и хотите, чтобы оно запускалось в новой среде CLR, входящей в состав .NET 4.0, вы можете сделать это, изменив <supportedRuntime>
элемент в файле конфигурации приложения. Просто добавьте строку «v4.0».
Я надеюсь, что это отвечает на ваш вопрос. Но то, что вы говорите, все еще несколько озадачивает меня:
По моему мнению, если на ПК есть .net3.5, то он должен иметь возможность запускать приложения на основе .net3.5????
Я предполагаю, что это опечатка, и вы хотели сказать, что если на ПК установлен .NET 4.0, то он должен иметь возможность запускать приложения на основе .NET 3.5. Если это так, я уже обращался к этому выше, объясняя, что .NET 4.0 не имеет обратной совместимости с приложениями, предназначенными для более ранней версии CLR.
Если это не опечатка, это кажется несовместимым с остальной частью вопроса. Похоже, вы подразумеваете, что .NET 3.5 не установлен.