Visual Studio在服务项目中缺少“添加安装程序”链接

时间:2009-01-02 17:20:35

标签: visual-studio-2008 windows-services .net-2.0 service-installer

我正在构建Windows服务并关注this MSDN article,但我仍然坚持在“创建安装程序”下的第3步。我找不到它所指的“Add Installer”链接。我点击了所有地方,包括完全按照它给出的说明,但我似乎无法找到它。 Google上的一些人遇到了同样的问题,但从未找到过解决方案(除了添加ServiceInstaller对象并手动配置)。

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

4 个答案:

答案 0 :(得分:6)

他们所谈论的“灰色区域”是“属性”面板的“属性”中的“命令”面板(不是拼写错误)。它不是很有用,所以你可能把它关了,我做了。

您可以通过右键单击“属性”面板并选择“命令”来重新启用它,或者通过右键单击服务设计视图直接添加安装程序项目(使用“向组中添加组件”的大棕褐色窗口...“)并选择”添加安装程序“。

答案 1 :(得分:3)

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

然后,只有这样,你才会看到微软一直躲过你的复活节彩蛋:难以捉摸的Add Installer链接。

enter link description here

答案 2 :(得分:2)

了解最新的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);
        }
    }
}

答案 3 :(得分:0)

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

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