2008-12-09 59 views
13

嗨我試圖使用mono-service2從Visual Studio中運行一個庫存Windows服務項目。我使用單聲道2.0在debian上運行這個程序並編譯。使用單一服務在Linux上包裝Windows服務

gmcs *.cs -pkg:dotnet 

我試着和這個開始(我試過用-d設置爲與應用程序和-n,-m集的目錄)

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

唯一代碼的變化是增加writelines用於測試

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...."); 
     } 
    } 
} 

所得我s此錯誤

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] 

感謝您的幫助

回答

我錯過了LD____LIBRARY____PATH環境變量,所以我增加了它在csh的測試

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

你是在頂部,debian,mono-2.0 – 2008-12-09 10:18:14

+0

刪除我的第一個評論,因爲不再相關。忽略了那些信息,對不起。 ;-) – Tomalak 2008-12-09 10:19:16

回答

8

你的LD_LIBRARY_PATH指向哪裏? libMonoPosixHelper.so在那裏?