相关疑难解决方法(0)

2015年在Linux中运行.NET应用程序

TL; DR:现在在Linux上运行VS2015解决方案有哪些选择?


我有一个.NET应用程序在Windows中运行良好,并已收到将其移植到Linux的请求.我一直在努力去理解今天它在2015年意味着什么,但我真的很困惑所有指向Mono的旧帖子以及关于vNext的新帖子(并且仍然提到Mono).我也有一个很好的.NET背景但我对Linux一般都不太了解...

我按照最近的教程编写并在Linux中编译并运行Hello World控制台应用程序.这需要安装一些我不知道的东西,包括Mono,然后运行一些"k"命令(kpm restore,kpm build,k run).但是现在我不知道如何继续我的真实案例场景.

我有一个VS2015解决方案,它有很多项目,但这里只有4个值得一提: - CommonStuff - ServiceCore - ServiceWindows/ServiceConsole

所有代码都在ServiceCore项目(类库)中,它本身具有对CommonStuff(另一个类库)的引用.ServiceWindows是一个Windows服务项目,只调用ServiceCore的Main函数,ServiceConsole在控制台应用程序中执行相同的操作(出于调试原因,因为无法从Visual Studio调试Windows服务项目).

CommonStuff和ServiceCore都包含许多.NET库以及一些第三方dll.没有Windows特定的代码,没有pinvoke或时髦的东西.

如果我们认为ServiceConsole成为我想在Linux上运行的应用程序 - 我需要做些什么来实现它?编译Hello World是一回事,但是现在,所有的thorsse引用...我不知道从哪里开始.另外,我甚至无法在Linux(专有代码)中编译代码,因此我需要在Windows中编译代码并且编译的dll/exe直接在Linux中运行 - 这是可能的吗?我看过一些帖子说Mono可以运行已编译的应用程序,但我看到的每一个Mono turorial都是从编译开始的.另外我不确定这个vNext是什么.我读过关于在Linux中运行代码的能力,如果它针对.net 6 ...但我不知道它是如何或意味着什么.

如果有人花些时间详细解释现在的选项是什么,以及它是否适用于专业应用程序,或者它是否只对Hello Worlds有用,我将不胜感激.

谢谢

编辑:好的,所以我似乎可以在VS中编译我的代码,并以某种方式在Linux上使用Mono运行它 - 如何?

.net linux mono

16
推荐指数
1
解决办法
2万
查看次数

使用mono-service在Linux上包装Windows服务

嗨,我正在尝试使用mono-service2从visual studio运行一个股票Windows服务项目.我正在使用mono 2.0和编译器在debian上运行它.

gmcs *.cs -pkg:dotnet
Run Code Online (Sandbox Code Playgroud)

我尝试从这开始(我尝试使用-d设置为dir与app和-n,-m设置)

mono-service2 -l:service.lock --debug Program.exe
Run Code Online (Sandbox Code Playgroud)

唯一的代码更改是添加用于测试的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....");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是这个错误

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 …
Run Code Online (Sandbox Code Playgroud)

linux mono mono-service

13
推荐指数
1
解决办法
2万
查看次数

Linux Mono相当于.NET Windows服务

我有一个.NET Windows服务,我想在Linux上移植到Mono.

在Linux上安装服务的正确方法是什么,以便它像Windows服务一样工作(即自动启动,在没有用户登录时运行等)?

.net linux mono windows-services

5
推荐指数
1
解决办法
9091
查看次数

Windows服务移植到linux

我正在移植一个在启动时在 Windows 中作为后台服务运行的应用程序,我们正在将该应用程序移植到 linux(SUSE Enterprise 服务器),我对 Linux 完全陌生。有人可以帮我解决这个问题吗?喜欢

  1. 我应该构建 linux 可执行文件吗
  2. 构建二进制文件后,我应该对 linux 启动文件进行哪些更改才能运行此可执行文件
  3. 我的服务如何注册回调函数以在运行时修改或更改或向我的服务发送命令

linux windows porting

5
推荐指数
1
解决办法
2819
查看次数

标签 统计

linux ×4

mono ×3

.net ×2

mono-service ×1

porting ×1

windows ×1

windows-services ×1