使用managedinstaller类安装Windows服务c#

本文关键字:服务 Windows 安装 managedinstaller 使用 | 更新日期: 2023-09-27 18:06:15

使用类似的代码Windows服务的Inno安装程序?

在windows 7盒子(VS 2010)当我试图运行我的inno安装程序,我得到以下结果

没有带有RunInstallerAttribute的公共安装程序。是属性可以找到

如果使用标准的windows安装程序运行,该服务可以工作;下面是代码:

[RunInstaller(true)]
internal static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    public static void Main(string[] args)
    {
        if (args.Count()==1)
        {
            string parameter = string.Concat(args);
            switch (parameter)
            {
                case "--install":
                    ManagedInstallerClass.InstallHelper(new string[] {Assembly.GetExecutingAssembly().Location});
                    break;
                case "--uninstall":
                    ManagedInstallerClass.InstallHelper(new string[]
                                                            {"/u", Assembly.GetExecutingAssembly().Location});
                    break;
            }
        }
        else
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
                                {
                                    new SkyLibrarian()
                                };
            ServiceBase.Run(ServicesToRun);
        }
    }
}

有人遇到过这个问题吗?我以管理员身份使用右键单击运行安装程序。由于

Simon Norburn

使用managedinstaller类安装Windows服务c#

错误信息和粘贴的代码清楚地说明了问题。错误提示"没有带有RunInstallerAttribute的公共安装程序"。是,可以找到属性"。在您的代码片段中,您声明您的Program类(RunInstaller属性为true)为内部

将你的类声明改为public,它应该能正常工作。

[RunInstaller(true)]
public static class Program

这是一个简单的错误。ProjectInstaller文件已损坏并从解决方案中删除。它本来是用来替换它的,但有人"忘记了"。一旦发现这个问题,问题就迎刃而解了。错误信息既无描述性也无帮助。