В Visual Studio отсутствует ссылка "Добавить установщик" в сервисном проекте

Я создаю службу Windows и следую этой статье MSDN, но я застрял на шаге 3 в разделе "Создание установщика". Я не могу найти ссылку "Добавить установщик", на которую она ссылается. Я щелкнул везде, в том числе следуя инструкциям, которые он дает точно, но я не могу найти его. У некоторых людей в Google была такая же проблема, но они не нашли решения (кроме добавления объекта ServiceInstaller и его настройки вручную).

Кто-нибудь еще имел эту проблему и нашел причину? Я использую VS2008 и нацеливаюсь на.Net 2.0, если это имеет значение.

4 ответа

Решение

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

Вы можете либо снова включить его, щелкнув правой кнопкой мыши панель "Свойства" и выбрав "Команды", либо добавить проект установщика напрямую, щелкнув правой кнопкой мыши представление "Конструкция службы" (большое загарное окно с "Чтобы добавить компоненты в ваш класс...". ") и выбрав" Добавить установщик ".

Чтобы ознакомиться с новой версией Visual Studio Express(2015):

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

Также вам нужно добавить ссылку System.Configuration.Install.dll.

using System.Configuration.Install;
using System.ServiceProcess;
using System.ComponentModel;


namespace SAS
{
    [RunInstaller(true)]
    public class MyProjectInstaller : Installer
    {
        private ServiceInstaller serviceInstaller1;
        private ServiceProcessInstaller processInstaller;

        public MyProjectInstaller()
        {
            // Instantiate installer for process and service.
            processInstaller = new ServiceProcessInstaller();
            serviceInstaller1 = new ServiceInstaller();

            // The service runs under the system account.
            processInstaller.Account = ServiceAccount.LocalSystem;

            // The service is started manually.
            serviceInstaller1.StartType = ServiceStartMode.Manual;

            // ServiceName must equal those on ServiceBase derived classes.
            serviceInstaller1.ServiceName = "SAS Service";

            // Add installer to collection. Order is not important if more than one service.
            Installers.Add(serviceInstaller1);
            Installers.Add(processInstaller);
        }
    }
}

Для Visual Studio 2012 щелкните правой кнопкой мыши "Services1.cs" и выберите "View Designer" (или нажмите Shift-F7). Затем щелкните правой кнопкой мыши на сером фоне дизайнера.

Тогда и только тогда вы увидите пасхальное яйцо, которое Microsoft все это время скрывала от вас: неуловимое Add Installer ссылка на сайт.

введите описание ссылки здесь

Убедитесь, что файл .cs, в который вы пытаетесь добавить установщик, расширяется. System.ServiceProcess.ServiceBase и нет System.ComponentModel.Component.

Чтобы открыть файл .cs как код, а не в конструкторе, выберите его в обозревателе решений и нажмите F7 или щелкните его правой кнопкой мыши и выберите «Просмотреть код».

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