Не удается запустить exe-файл на основе .net3.5 на компьютере с VS2010 /.net4?

#.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 не установлен.