6

我正在构建 Windows 服务并遵循此 MSDN 文章,但我被困在“创建安装程序”下的第 3 步。我找不到它所指的“添加安装程序”链接。我到处点击,包括按照它给出的说明进行操作,但我似乎找不到它。Google 上的一些人遇到了同样的问题,但从未找到解决方案(除了添加 ServiceInstaller 对象并手动配置它)。

有没有其他人遇到过这个问题并找到了原因?如果重要的话,我正在使用 VS2008 并以 .Net 2.0 为目标。

4

4 回答 4

6

他们正在谈论的“灰色区域”是“属性”面板的“命令”面板(不是错字)。它不是很有用,所以你可能已经关闭了它,我做到了。

您可以通过右键单击“属性”面板并选择“命令”来重新启用它,或者通过右键单击“服务设计”视图(带有“将组件添加到您的类... ") 并选择“添加安装程序”。

于 2009-01-02T18:44:16.600 回答
4

要了解新的 Visual Studio Express(2015) 版本,请执行以下操作:

看来我们不能从快速版中获得这个“添加安装程序”。但这真的很简单。您只需要创建一个类并添加以下代码。

您还需要添加参考 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);
        }
    }
}
于 2016-11-03T19:42:27.650 回答
3

对于 Visual Studio 2012,右键单击“Services1.cs”并选择“查看设计器”(或按 Shift-F7)。然后,右键单击设计器的灰色背景。

然后,也只有到那时,你才会看到微软一直向你隐瞒的复活节彩蛋:难以捉摸的Add Installer链接。

在此处输入链接描述

于 2013-09-23T15:34:57.860 回答
0

检查您尝试添加安装程序的 .cs 文件是否扩展System.ServiceProcess.ServiceBase而不是System.ComponentModel.Component.

要将 .cs 文件作为代码而不是在设计器中打开,请在解决方案资源管理器中选择它并按 F7 或右键单击它并选择“查看代码”。

于 2021-06-28T11:46:28.160 回答