Установка .NET Framework с моим приложением с помощью MSI - PullRequest
3 голосов
/ 07 января 2009

Я создал проект установки в VS2008. В моем приложении WinForms используется .NET 2.0, поэтому я выбрал предварительную версию .NET 2.0 и создал проект установки.

Когда я запускаю мой Setup.msi на чистом ПК, он правильно обнаруживает отсутствие .NET и спрашивает, нужно ли его установить. После успешной установки .NET программа установки просто завершает работу и не продолжает установку моего приложения (думаю, что так и должно быть).

Когда я запускаю файл MSI на ПК с уже установленным .NET, мое приложение устанавливается правильно.

Есть ли способ как установить .NET 2.0 и мое приложение вместе за один шаг?

Ответы [ 3 ]

7 голосов
/ 07 января 2009

Как вы установили продукт?

Проект установки выведет два файла:

  • пакет установщика Windows (.msi) и
  • так называемый загрузчик (setup.exe)

Загрузчик проверит наличие любого указанного вами предварительного условия и, возможно, загрузит и установит его, если он еще не установлен , а затем продолжит установку приложения (вызывая MSI-файл). , Поэтому для установки приложения всегда следует запускать файл setup.exe, а не MSI-файл (если только вы не знаете, что все необходимые компоненты находятся в целевой системе).

Как говорит Краккос, загрузчик установит как предварительные требования, так и ваше приложение (т. Е. Ваш MSI-файл). Однако я не знаю ни о каких параметрах конфигурации, которые бы помешали загрузчику установить MSI.

Для устранения неполадок вы можете попытаться создать журнал вашей установки и найти любые проблемы в файле журнала.

1 голос
/ 07 января 2009

Спасибо Divo,

Я запускал файл MSI.

Есть ли какие-либо ограничения при запуске файла Setup.EXE? Если я правильно помню, я пытался один раз запустить его на Windows 2000, и он не запустился. Мне удалось запустить только файл MSI. Я собираюсь проверить компьютер с чистой Win2000 и вернуться.

РЕДАКТИРОВАТЬ: я пробовал на чистой Windows 2000 SP4 и вот результаты:

  • Setup.exe не будет запущен с сообщением об отсутствии HeapSetInformation в Kernel32.dll
  • Setup.msi также не будет работать (расширение .msi неизвестно)

Затем я установил Windows Installer 3.1 вручную:

  • Setup.exe по-прежнему не будет работать с тем же сообщением об ошибке
  • Setup.msi будет успешно запущен (но установит только .NET без моего приложения ... моя первоначальная проблема)

В Windows XP программа Setup.exe работает без проблем.

Похоже, пользователям Win2000 придется установить мое приложение вручную, установив Windows Installer 3.1, .NET 2.0, а затем мое приложение. Даже если .NET установлен вручную, программа Setup.exe будет отображать то же сообщение об ошибке в Win2000 SP4.

РЕДАКТИРОВАТЬ: проблему Win 2000 можно исправить, установив накопительный пакет обновления 1 для Windows 2000 SP4 (KB891861) .

0 голосов
/ 07 января 2009

В этом эпизоде ​​Hanselminutes подробно рассказывается о том, как Paint.Net организовывает загрузку и установку необходимой платформы .NET по требованию и интеграцию с установкой приложения. По общему признанию, это, вероятно, намного сложнее, чем требуется большинству приложений, но, тем не менее, это интересное обсуждение.

...