13

こんにちは私はmono-service2を使用してビジュアルスタジオからストックWindowsサービスプロジェクトを実行しようとしています。私はこれをmono2.0のdebianで実行し、でコンパイルしています。

gmcs *.cs -pkg:dotnet

私はこれから始めます(アプリでディレクトリに-dを設定し、-n、-mを設定してみました)

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

唯一のコード変更は、テスト用の書き込み行を追加することです

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

結果はこのエラーです

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 env変数が欠落していたため、テスト用にcshに追加しました

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

2 に答える 2

9

LD_LIBRARY_PATH はどこを指していますか? 入ってるlibMonoPosixHelper.so

于 2008-12-09T07:50:35.247 に答える
0

libmono0がインストールされていることを確認してください。

于 2008-12-09T09:11:52.693 に答える