2009-06-25 3 views
1

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

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

+0

Вы имеете в виду конкретную версию .Net? – adrianbanks

+0

Я не такой, если я настроен на определенную версию? – msvcyc

+0

http://stackoverflow.com/questions/112941/create-program-installer-in-visual-studio-2005/113133 – SwDevMan81

ответ

2

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

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

+0

+1 для предоставления дополнительных параметров, таких как NCIS и Inno setup – msvcyc

1

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

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

+0

Это мой вопрос. Должен ли я даже беспокоиться о создании этого пакета установщика и как мне создать этот пакет установщика? Я хочу, если это возможно, полностью устранить разработку этого пакета установщика. – msvcyc

3

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

Here is a guide.

alt text http://img154.imageshack.us/img154/2066/newprojectr.png

+0

Товар больше недоступен. –

0

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

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

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

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

1

Использование какого-либо загрузочного устройства можно проверить, установлен ли .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. Если ваше приложение нацелено на техническую, geeky аудиторию, то я бы сказал, что ~ 50% людей будут иметь .NET 3.0. Если вы ориентируетесь на потребительский/розничный/нетехнический рынок, вы можете оценить около 30% с помощью .NET 2.0 и 10% с помощью .NET 3.0 или выше.

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

+0

+1 для получения некоторой информации о статистике доступности времени выполнения – msvcyc