2015-10-28 3 views
-1

J'ai créé une application de formulaire Windows à l'aide de C#. Maintenant, j'ai besoin d'ajouter un service Windows avec cette application. J'ai ajouté un nouveau service Windows et ajouté l'installateur. J'ai créé le programme d'installation de Windows et l'ai installé sur un PC, mais le service ne fonctionne pas. Je suis nouveau à C#. Aidez-moi s'il vous plaît à ajouter ce service à l'installateur.Service Windows dans l'application de formulaire Windows

+0

"mais le service ne fonctionne pas" - comment pouvons-nous vous aider sans nous donner plus d'informations? –

+0

Avez-vous démarré le service? Comment savez-vous que ça ne marche pas? Nous avons besoin de plus d'informations – Pavenhimself

+0

Salut à tous, merci pour vos réponses, Le problème de base est que je suis un débutant en C#. Je combine des codes d'internet. Mon exigence est, quand il n'y a pas d'Internet, les données seront stockées dans un fichier. Cette partie que je manipule avec des formes de fenêtres. Maintenant, j'ai besoin d'un service qui vérifie la connexion Internet et quand Internet est disponible, il télécharge automatiquement le fichier sur un service web. –

Répondre

0

L'application WinForms et les modèles de projet de service Windows ont un code d'amorçage différent (voir le fichier "Program.cs" dans votre projet).

Celui des formes Windows:

Application.EnableVisualStyles(); 
Application.SetCompatibleTextRenderingDefault(false); 
Application.Run(new Form1()); 

Celui du service Windows:

ServiceBase[] ServicesToRun; 
ServicesToRun = new ServiceBase[] 
{ 
    new Service1() 
}; 
ServiceBase.Run(ServicesToRun); 

Si vous voulez combiner ces types d'application en un seul exécutable, vous devez modifier le code d'amorçage un peu:

// we need command line arguments in Main method 
[STAThread] 
static void Main(string[] args) 
{ 
    if (args.Length > 0 && args[0] == "service") 
    { 
     // runs service; 
     // generated bootstrap code was simplified a little 
     ServiceBase.Run(new[] 
     { 
      new Service1() 
     }); 
    } 
    else 
    { 
     // runs GUI application 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new Form1()); 
    } 
} 

maintenant, lors de l'installation de service, vous avez besoin de commande d'installation arguments de ligne pour exécuter votre exécutable: myExe service.