Почему мое приложение .NET 4 знает, что .NET 4 не установлен

На днях я разработал приложение, ориентированное на .NET 4, и XCOPY установил его на машину с Windows XP. Я сказал владельцу машины, что ему потребуется установить .NET Framework 4 для запуска моего приложения, и он сказал мне, что установил (ненадежный источник). Когда я запускал приложение, мне было представлено окно сообщения, в котором говорилось, что для этого приложения требуется .NET Framework 4, хочу ли я его установить? Нажав кнопку «Да», я перешел на веб-сайт Microsoft, и через несколько щелчков мышью был установлен .NET 4, и приложение было успешно запущено.

В прошлом XCOPY-установка приложений .NET на машину, на которой не была установлена ​​правильная версия .NET, приводила к сбою приложения при запуске без предоставления пользователю полезной информации. Почему на этот раз все было иначе?

  1. Был ли он встроен в мое приложение, потому что я нацелился на .NET X?
  2. Было ли это что-то уже установлено на целевой машине?

Мне нравится эта функция. Я хочу точно знать, как использовать это в будущем.


person Tergiver    schedule 05.04.2012    source источник


Ответы (1)


Это хорошо хранимый секрет. Это произойдет, когда вы нацеливаетесь на .NET 4, а пользователь запускает приложение, когда .NET 4 не установлен. Или когда вы нацеливаетесь на более раннюю версию и запускаете приложение в Windows 8. Пользователь увидит это диалоговое окно:

введите описание изображения здесь

Может быть, слишком жутковато, но, тем не менее, приятно. Это хорошо описано в это сообщение в блоге.

Помните, что .NET 4 требует минимальной версии Windows и пакета обновления. Минимальные версии: XP SP3, Vista SP1, Win7 RTM. Так что это не волшебное решение для установки правильного пакета обновления.

person Hans Passant    schedule 05.04.2012
comment
У меня есть клиенты, которые все еще используют Windows 2000, поэтому подавляющее большинство моих приложений - 2.0. Но это наблюдалось на машине XP, а не 7. Вы можете это объяснить? - person Tergiver; 05.04.2012
comment
В статье говорится, что это Windows 7 и более ранние версии, поэтому XP входит в комплект. В нем просто говорится, что работа пользователя с этой ошибкой улучшена с помощью Framework 4.5 в Windows 8. - person rskar; 05.04.2012
comment
В этой статье MSDN есть еще больше информации. msdn.microsoft.com/en-us/library/w671swch.aspx - person djdanlib; 05.04.2012
comment
@HansPassant В Win7 без .NET v4.0 я вижу очень сообщение, подобное тому, что было в вашем ответе, при попытке запустить приложение v4.0, но раздел "Хотите ли вы ..." заменен by Свяжитесь с издателем вашего приложения для получения инструкций по получению соответствующей версии .NET Framework. И есть только кнопка ОК, есть идеи почему? Возможно, это поведение зависит от какого-то обновления выигрыша или чего-то подобного ...? К вашему сведению, на другой машине win7 это работало нормально, и моя конфигурация приложения содержит <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>. - person Michal Hosala; 31.10.2014