Как создать проект 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 project assistant и добавьте основной вывод службы в раздел файлы приложений.
  • после того, как вы закончите с помощником по проекту, дважды щелкните элемент "файлы" на втором шаге проекта установки.

Files section

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

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

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


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

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

enter image description here


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

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

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

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

эта ошибка возникает, если компонент, устанавливающий службу .NET неправильно настроен ".Чистый класс установщика" установить "Да". Этот способ установки службы .NET заключается в использовании Component\Advanced Settings\Services view, а не параметр" класс установщика .NET". Создание определений в представлении компонент\Дополнительные параметры\службы создает записи в установщике Windows ServiceControl и ServiceInstall Таблицы. Эти записи используются Windows Установщик" InstallServices " действие для установки службы.


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

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

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

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


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

следующим образом.

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

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

enter image description here

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

Edit: Update-установите последнюю версию отсюда https://wix.codeplex.com/releases/view/115492 для vs 2013 / 2015


проекты установки 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.


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

увеличение InstallShield с помощью установщика Windows XML-Windows Services

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


Я использую 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


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

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

Я


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


хотел положить это здесь;

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

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

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