Как поддерживать .NET 2.0 и .NET 4.0 в одном приложении? - PullRequest
6 голосов
/ 06 сентября 2011

Вот интересный. У меня есть небольшой исполняемый файл, созданный для .NET 2.0, чтобы он работал на самых разных платформах. Это программа с одной сборкой, которая ссылается только на пространства имен System. *.

Когда я запускаю его в ОС с установленным .NET 2.0, он работает нормально. Он не будет работать в ОС с установленным только .NET 4.0 из-за новой среды выполнения, представленной в .NET 4.0. В результате я добавил информацию о поддерживаемой среде выполнения в файл app.config, как описано здесь . Я добавил две поддерживаемые среды выполнения:

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

Теперь, когда я запускаю приложение в системе с установленным .NET 2.0, не запускается :

enter image description here

Не имеет значения, в каком порядке определены поддерживаемые среды выполнения, за исключением того, что порядок запрашиваемых версий в сообщении об ошибке изменяется, чтобы отразить изменения в app.config (поэтому CLR, очевидно, правильно выбирает эту информацию) , У меня установлен .NET 2.0, и он утверждает, что мне нужно установить .NET 2.0! Я попытался восстановить установку .NET 2.0 без удачи. Я воспроизвел это поведение на второй машине.

Что может быть причиной этого сбоя?

1 Ответ

11 голосов
/ 06 сентября 2011

Я верю, что вы возможно только что пропустили v:

<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...