Стоит ли мне беспокоиться о перераспределении среды выполнения .NET вместе с моим приложением?
-
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, так что просмотрите блоги и начните анализировать :)
Это зависит.Там, где я работаю, мы включаем его в установщик в качестве предварительного условия, поскольку у некоторых клиентов может не быть подключения к Интернету для загрузки среды выполнения.
Несколько вещей, которые вы можете сделать:
- Включите проверку версии .NET на целевой машине и выйдите из установки, если ее там нет.
- Создайте версию установки, включающую среду выполнения .NET, и установите ее при необходимости.
- Создайте версию установки, которая будет загружать среду выполнения .NET и устанавливать ее при необходимости.
Если бы я знал, что все мои клиенты находятся в сети, я бы выбрал вариант 3 для .NET, а также любые другие необходимые условия, такие как Crystal Reports или SQL Express.У меня есть установки, в которые это включено, и размер установки превышает 100 МБ.70 МБ+ является обязательным условием.