Installation af Windows service C # inno selv ved hjælp af managedinstaller klasse

Indlæg af Hanne Mølgaard Plasc

Problem



bruger kode der ligner dette
Inno Setup til Windows-service?


på en Windows 7-boks (VS 2010), når jeg forsøger at køre min inno installer, får jeg følgende resultat



  Ingen offentlige installatører med RunInstallerAttribute.Yes attributten kunne findes



Tjenesten fungerer, hvis du kører med en standard Windows installer; her er koden:


[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);
        }
    }
}


Har nogen nogen erfaring med dette problem? Jeg kører installationsprogrammet som administrator ved at bruge et højreklik. Tak


Simon Norburn

Bedste reference


Problemet er tydeligt angivet i din fejlmeddelelse og din indsatte kode. Fejlen siger, at der er 'Ingen offentlige installatører med RunInstallerAttribute.Yes attributten kunne findes'. I din kodestykke erklærer du din Program klasse (med RunInstaller attributten til ægte) som intern .


Skift din klassedeklaration til offentligheden, og den skal fungere korrekt.


[RunInstaller(true)]
public static class Program

Andre referencer 1


Dette var en simpel fejl. ProjectInstaller-filen var blevet ødelagt og fjernet fra løsningen. Det havde været meningen at erstatte det, men nogen 'glemte'. Når det var fundet, løste problemet sig selv. Fejlmeddelelsen var ikke beskrivende eller nyttig.