13

嗨,我正在尝试使用 mono-service2 从 Visual Studio 运行股票 Windows 服务项目。我正在使用 mono 2.0 在 debian 上运行它并进行编译。

gmcs *.cs -pkg:dotnet

我尝试从这个开始(我尝试将 -d 设置为应用程序的目录并设置 -n,-m )

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

唯一的代码更改是添加用于测试的写行

服务1.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 环境变量,所以我将它添加到 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 回答