Как создать проект InstallShield LE для установки службы Windows?

Я скачал Visual Studio 2012 вчера, когда он был выпущен на MSDN. Я заметил, что некоторые из типов проектов, которые у нас были в 2010 году, исчезли или стали другими. Самым большим отличием для меня сейчас является удаление проекта установщика Windows. Теперь мы вынуждены использовать InstallShield LE (Limited Edition). Проблема в том, что я пишу кучу служб Windows и не вижу, как установить InstallShield LE. Похоже, что мы (моя компания) должны будем инвестировать в лицензии для профессионального издания.

Кто-нибудь нашел способ установки сервисов в InstallShield LE? При использовании проекта установщика Windows вы просто устанавливаете пользовательские действия.

11 ответов

Решение

Для Visual Studio 2012 и InstallShield LE выполните следующие действия:

  • Запустите помощника проекта InstallShield и добавьте основной вывод вашей службы в раздел "Файлы приложения".
  • По завершении работы с помощником проекта дважды щелкните элемент "Файлы" на втором этапе проекта установки.

Раздел файлов

  • Щелкните правой кнопкой мыши по первичному выходу вашего сервиса и перейдите в свойства.
  • Перейдите на вкладку "Настройки COM и.NET" и установите флажок "Класс установщика".
  • Нажмите Ok

Теперь, когда вы соберете и запустите установку, ваша служба будет отображаться в оснастке Windows Services.

Обратите внимание, что это предполагает, что вы добавили "Установщик проекта" в свой сервисный проект (щелкните правой кнопкой мыши на листе дизайна сервиса и нажмите "Добавить установщик"). Я могу подтвердить эту работу на Windows 8 с Visual Studio 2012 / InstallShield LE.

Я недавно установил VS 2012 с Install Shield LE. Сначала я продолжал получать ошибку внутреннего сервера ISEXP -5036 после сборки (это было после настройки проекта ISLE и запуска через Install Shield Project Assistant). В конце концов я обнаружил, что он пытается создать MSI в типе носителя DVD-5, где он терпит неудачу. По какой-то причине повторное создание решения с нуля каким-то образом признает необходимость сборки только для типов носителей CD_ROM и SingleImage, которые работают.

В любом случае, чтобы исправить ошибку 5036, перейдите на вкладку Build в VS 2012 (верхнее меню), выберите диспетчер конфигурации, и вы должны увидеть, что ваш файл настройки IS выбран в конфигурации DVD-5. Измените это на CD_ROM и нажмите закрыть. Как только вы соберете / перестроите его, он завершится без ошибки IS 5036.

Хотя использование флажка класса установщика может работать в некоторых случаях, вы можете столкнуться со следующей ошибкой:

Ошибка 1001. Указанная служба уже существует

Вот выдержка из этой ссылки о том, как решить эту проблему:

Для ошибки: ошибка 1001. Указанная служба уже существует

Эта ошибка возникает, если компонент, устанавливающий службу.NET, неправильно настроен с параметром ".NET Installer Class", установленным на "Да". Чтобы установить.NET Service, нужно использовать представление Component\Advanced Settings\Services, а не параметр ".NET Installer Class". При определении в представлении "Компонент \ Расширенные настройки \ Службы" создаются записи в таблицах установщика Windows ServiceControl и ServiceInstall. Эти записи используются действием установщика Windows "InstallServices" для установки Службы.

У меня были все виды проблем с этим.

Следующее.

  1. InstallShield загружается целую вечность
  2. процесс регистрации это боль.
  3. параметры конфигурации сбивают с толку и слишком сложны.
  4. принятое решение в этом потоке - хак, и оно не всегда работает - см. 1001 в документации - по сути, вам нужно пройти через платный доступ, чтобы получить правильные параметры конфигурации для установки службы Windows.

Решение для меня, как уже упоминалось в другом месте - было отказаться от InstallShield

Очень легко с этого момента.

Изменить: Обновить - установить последнюю версию отсюда https://wix.codeplex.com/releases/view/115492 для 2013 / 2015

Если ваш проект.NET, то попробуйте затем вы можете использовать класс ServiceProcessInstaller с InstallShield LE.

Чтобы заставить его работать с InstallShield, вы должны зайти в дерево "Files" InstallShield и щелкнуть правой кнопкой мыши на вашем файле. Затем установите флажок "Класс установщика" на вкладке "Настройки COM и.NET".

Я получил его на работу, но у меня были проблемы на некоторых ОС, таких как Windows 2008R2. Ваш пробег может отличаться.

Вот пример: http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

Проекты установки Visual Studio вернулись в VS 2013 как расширение Visual Studio.

https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d

Пожалуйста, обновите ваше решение и проекты до VS 2013. Если вы все еще в VS 2010, вам, вероятно, лучше перейти на VS 2013.

Мой опыт работы с Installsheild LE заключается в том, что он очень необычный, но как только вы поймете хитрости, его будет проще использовать. Тем не менее, я думаю, что ограниченная версия - это способ Microsoft и Flexera продать полнофункциональную версию. Другими словами, сначала мы платим Microsoft много денег за Visual Studio, а затем их партнера (в преступлении) больше за Installsheild. Плохая стратегия, которая не сработала, так как они должны были вернуть проекты установки в VS 2013.

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

Дважды щелкните на своем классе обслуживания в вашем проекте службы Windows. Пустой экран с текстом "Чтобы добавить компоненты в ваш класс, перетащите их из панели инструментов и используйте окно свойств, чтобы установить их свойства..." Щелкните правой кнопкой мыши в любом месте, кроме ссылок. и выберите "Добавить установщик"

до встречи

Я использую VS2012 и Installshield LE Spring Edition. Мне не пришлось использовать Wix.

Если вы столкнулись с ошибкой "Не удалось создать _isconfig.xml для использования с InstallUtilLib.dll", создайте папку с тем же именем, что и у вашего проекта установки, и внутри папки проекта установки.

Кредиты для http://community.flexerasoftware.com/showthread.php?165929-Could-not-create-_isconfig-xml-for-use-with-InstallUtilLib-dll

Я написал об этом предмете:

Дополнение InstallShield с помощью установщика Windows XML - Службы Windows

По сути, вы создаете модуль слияния, используя WiX для инкапсуляции сервиса, а затем добавляете его в свой проект installshield. (Обязательно подключитесь к каталогу INSTALLDIR, чтобы убедиться, что ваш файл идет туда, куда вы ожидаете). Сборка и тестирование на ВМ. Кусок пирога.

Имейте в виду, что все вышеприведенное объяснение не поможет вам, если вы планируете позднее создать обновление для этой установки. InstallShiled LE не может остановить работающую службу при обновлении. Вы также не можете сделать это из установщика Windows Window -> событие BeforeInstall.

Хотел поставить это здесь;

На VS 2015 при этом я неоднократно сталкивался с ошибкой 1001 при установке.

Ответ на этой странице объяснил, что в более новых версиях (начиная с 2012 года), по-видимому, вам необходимо явно оставить опцию класса установщика не отмеченной, а затем добавить службу Windows в разделе "Службы" на шаге 3 проекта установщика:

Ошибка 1001 при установке пользовательской службы Windows

Другие вопросы по тегам