Стоит ли беспокоиться о перераспределении среды выполнения .NET с моим приложением? - PullRequest
1 голос
/ 26 июня 2009

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

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

Ответы [ 5 ]

3 голосов
/ 26 июня 2009

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

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

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

2 голосов
/ 26 июня 2009

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

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

1 голос
/ 26 июня 2009

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

Например, с загрузчиком MSI Factory (я не сторонник MSI Factory, это уродливая программа. Но загрузчик, с которым она поставляется, вполне стоит стоимости лицензии, если вы разрабатываете коммерческую версию программное обеспечение, как у нас) есть сценарии, которые вы можете просто включить для выполнения этой функции. Мы используем WiX + загрузчик MSI Factory для распространения как одного сжатого EXE-файла (30 МБ), так и небольшого 1-МБ загрузочного EXE-файла, который загружает 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 голос
/ 26 июня 2009

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

Редактировать: Да, вы должны создать этот пакет, это значительно облегчит вашу жизнь. Вы можете сделать это в VS - File-> Project и выбрать intstaller project. Мастер проведет вас через варианты.

0 голосов
/ 26 июня 2009

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

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

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

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

...