Salut à tous !
Pour répondre à gretro et à ceux qui se pose la même question...
Pour palier à ça j'ai trouvée une petite solution sympa
mais il faut feinter... je m'explique !
Il faut "passer" le service en application Windows, et pour cela j'ai utilisé
la constante de compilation DEBUG :
Au niveau du point d'entrée de l'application (donc le fichier Program.cs)
static class Program
{
static void Main()
{
#if DEBUG
// Instancie une fenêtre permettant de simuler le service
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault( false );
Application.Run( new WinService() );
#else
// Instancie le service
ServiceBase.Run( new ServiceBase[] { new WinService() } );
#endif
}
et au niveau du code du service
#if DEBUG
public class WinService : Form
#else
public class WinService : ServiceBase
#endif
{
#if DEBUG
private IContainer components;
#endif
// Constructeur du service
public WinService()
{
// Initialise le service
InitializeComponent();
}
#if DEBUG
private void InitializeComponent()
{
;// Ici, le code habituellement généré par le concepteur WinForm de visual studio
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WinService));
this.SuspendLayout();
// etc etc..
}
#else
private void InitializeComponent()
{
//
// WinService
//
this.AutoLog = false;
this.ServiceName = "Nom du service";
}
#endif
// Au démarrage du service
#if DEBUG
protected override void OnLoad( EventArgs e )
{
#else
protected override void OnStart( string[] args )
{
#endif
;// Ici, le code à exécuter au démarrage du service
}
}
Enfin bref, voilà le principe
Après, si on veux déboguer, il suffit d'activer la constante DEBUG
pour cela, il faut afficher les propriétés du projet
Dans l'onglet "Générer" -> cocher "Définir constante DEBUG"
Et c'est partit !
En espérant que ça serve à quelqu'un...
Et si vous avez besoin de précision, n'hésitez pas !