Стоит ли мне беспокоиться о перераспределении среды выполнения .NET вместе с моим приложением?

StackOverflow https://stackoverflow.com/questions/1046607

  •  20-08-2019
  •  | 
  •  

Вопрос

Я хотел бы по возможности избегать перераспределения среды выполнения .NET с моим приложением, поскольку это увеличит размер приложения, время загрузки, время разработки и, возможно, приведет к множеству различных ошибок при развертывании.Заставляет ли Microsoft пользователей обновлять среду выполнения .NET через обновление Windows?Если нет, то каковы варианты перераспределения среды выполнения .NET?Упростила ли Microsoft перераспределение среды выполнения с помощью приложений .NET?Кроме того, гарантирована ли обратная совместимость среды выполнения .NET?

Я просто суммирую ответы здесь.Похоже, нам нужен загрузчик, чтобы хотя бы проверить существование среды выполнения .NET.Альтернативный вариант — упаковать среду выполнения и развернуть ее, если она не существует.Существует несколько вариантов упаковки, и Visual Studio предоставляет возможность создать проект установщика во время выполнения.Существуют также другие варианты упаковки, такие как InnoSetup, WIX и т. д. (не знаю, какой вариант лучше и бесплатный).Для установки во время выполнения требуется перезагрузка, и выбранный вариант установки должен возобновить установку приложения после перезагрузки.

Это было полезно?

Решение

Вас также должен беспокоиться об этом.Без среды выполнения ваше приложение загадочным образом не будет работать.Никогда не следует предполагать, что какая-то конкретная версия среды выполнения предустановлена.

Как отмечалось выше, мастер проекта установщика в VS создаст установочный файл, который загружает его только при необходимости.NSIS и Inno Setup имеют сценарии, которые делают то же самое.Обратите внимание, что вам нужно будет выполнить перезагрузку и продолжение настройки при установке среды выполнения.Я считаю, что мастер установки сделает это за вас.

Другие советы

Просто создайте проект установщика Windows.У вас должна быть эта опция в VS2005 и VS2008.При установке приложения он будет следить за тем, чтобы в системе была среда выполнения .NET и любое другое необходимое программное обеспечение.Это добавит его в ваш установочный пакет, а не в ваше приложение.Обычно именно так вы устанавливаете приложения или используете Install Shield.

Вот руководство.

альтернативный текст http://img154.imageshack.us/img154/2066/newprojectr.png

Когда вы создаете пакет установщика, он будет устанавливать среду выполнения только в том случае, если это необходимо.то естьеще нет в системе (или неправильная версия)

Редактировать:Да, вам следует создать этот пакет, он значительно облегчит вашу жизнь именно в этом вопросе.В VS это можно сделать следующим образом: «Файл->Проект» и выбрать проект установщика.Мастер проведет вас через варианты.

Используя какой-нибудь загрузчик, вы можете проверить, установлен ли .NET, а затем загрузить его при необходимости.

Например, с Завод MSI загрузчик (я не защищаю MSI Factory, это уродливая программа.Но сам загрузчик, который входит в его комплектацию, вполне оправдывает стоимость лицензии, если вы разрабатываете коммерческое программное обеспечение, как мы) есть сценарии, которые вы можете просто включить для выполнения этой функции.Мы используем WiX + загрузчик MSI Factory для распространения как одного сжатого EXE-файла (30 МБ), так и небольшого EXE-файла «загрузчика» размером 1 МБ, который загружает MSI.Оба EXE-файла проверяют наличие .NET 2.0, а затем при необходимости загружают его.Мы также распространяем автономный MSI-файл, который также проверяет наличие .NET и блокирует установку, если он отсутствует.

По сути, у вас есть следующее:

  • Windows XP — не поставляется с .NET.Клиенту необходимо установить его вручную (он отображается как дополнительный компонент Центра обновления Windows).
  • Vista — поставляется с .NET 2.0 (но нет 1.1)
  • Server 2003 — поставляется с .NET 1.1.

Не обращайте внимания на .NET 1.1, просто игнорируйте его.Пользователям Vista и не только он будет установлен только для поддержки устаревших приложений или если они являются разработчиками.

.NET 2.0 — наиболее часто устанавливаемая версия. Судя по нашей пользовательской базе, мы обнаружили, что менее 10 % пользователей установили .NET 3.5.Если ваше приложение ориентировано на техническую и фанатичную аудиторию, я бы сказал, что около 50% людей будут использовать .NET 3.0.Если вы ориентируетесь на потребительский/розничный/нетехнический рынок, вы, вероятно, можете оценить около 30% с .NET 2.0 и 10% с .NET 3.0 или выше.

Приведенные выше цифры основаны на трафике браузеров на наши веб-сайты, в основном нетехническую аудиторию.Вероятно, это лучший способ получить представление о вашем рынке.IE всегда сообщает версию .NET в строке User-agent, так что просмотрите блоги и начните анализировать :)

Это зависит.Там, где я работаю, мы включаем его в установщик в качестве предварительного условия, поскольку у некоторых клиентов может не быть подключения к Интернету для загрузки среды выполнения.

Несколько вещей, которые вы можете сделать:

  1. Включите проверку версии .NET на целевой машине и выйдите из установки, если ее там нет.
  2. Создайте версию установки, включающую среду выполнения .NET, и установите ее при необходимости.
  3. Создайте версию установки, которая будет загружать среду выполнения .NET и устанавливать ее при необходимости.

Если бы я знал, что все мои клиенты находятся в сети, я бы выбрал вариант 3 для .NET, а также любые другие необходимые условия, такие как Crystal Reports или SQL Express.У меня есть установки, в которые это включено, и размер установки превышает 100 МБ.70 МБ+ является обязательным условием.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top