2008-12-09 9 views
13

Hallo, ich versuche Mono-Service2 zu verwenden, um ein Lager Windows-Service-Projekt von Visual Studio zu betreiben. Ich mache das auf Debian mit Mono 2.0 und kompiliere mit.Verwenden von Mono-Service, um einen Windows-Dienst auf Linux zu wickeln

gmcs *.cs -pkg:dotnet 

Ich versuche, und starten Sie mit diesem (Ich habe versucht, mit -d Set zum dir mit der App und -n, -m-Set)

mono-service2 -l:service.lock --debug Program.exe 

Die einzige Codeänderung ist hinzuzufügen writelines zum Testen

Service1.cs

using System; 
using System.ServiceProcess; 

namespace spikes 
{ 
    public partial class Service1 : ServiceBase 
    { 
     public Service1() 
     { 
      InitializeComponent(); 
     } 

     protected override void OnStart(string[] args) 
     { 
      Console.WriteLine("starting..."); 
     } 

     protected override void OnStop() 
     { 
      Console.WriteLine("stopping...."); 
     } 
    } 
} 

Das resultierende i s dieser Fehler

Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for Mono.Unix.Native.Syscall ---> System.DllNotFoundException: libMonoPosixHelper.so 
    at (wrapper managed-to-native) Mono.Unix.Native.Syscall:_L_ctermid() 
    at Mono.Unix.Native.Syscall..cctor() [0x00000] 
    --- End of inner exception stack trace --- 
    at MonoServiceRunner.Main (System.String[] args) [0x00000] 

Danke für Ihre Hilfe

Antwort

ich die LD____LIBRARY____PATH env Variable fehlt, so dass ich hinzugefügt, um es in einem csh für einen Test

#!/bin/csh 
setenv LD_LIBRARY_PATH .:/usr/local/lib 
mono-service2 -l:service.lock --debug Program.exe 
+0

ya das war an der Spitze, debian, mono-2.0 –

+0

Gelöschte mein erster Kommentar seit nicht mehr relevant. Überschaute diese Information, sorry. ;-) – Tomalak

+0

und danke nochmal –

Antwort

8

Wohin zeigt Ihr LD_LIBRARY_PATH? Ist libMonoPosixHelper.so drin?

+0

Danke es wurde nicht richtig eingestellt –

0

Stellen Sie sicher, dass Sie libmono0 installiert haben.