C#在linux上运行实现

摘要:
1C#开发了该服务。2.将其部署到linuxcentos7。3.无法直接运行解决方案。1.在linuxcentos7上安装Mono2并执行Monox。exe。2.下载anyxec-1.2-linx_X64.tar.gz使用此工具制作一个真正的linux可执行程序,非常简单https://www.linuxidc.com/Linux/2016-04/129778.htm允许NET应用程序

1 C#开发完了服务

2 部署到linux centos7上

3无法直接运行

解决方法 1 linux cenos7上安装mono  2 执行mono xxx.exe 即可

解决方法2 下载 anyexec-1.2-linux_x64.tar.gz 使用该工具来做出像真正的linux 可运行程序,非常简单 

文章引用 https://www.linuxidc.com/Linux/2016-04/129778.htm

让.NET应用程序在Linux上运行,目前通用的做法就是在Linux上安装mono,然后通过”mono your.exe“命令运行这个程序。

这种运行.net程序的办法有两个弱点,一个是需要客户机安装mono,二个是 ”mono xx.exe“ 这种命令行总让人感到有点不太专业的味道。

那么,有没有办法既不安装mono,又能让你的.NET程序就像c语言编译的程序那么,”直接“在Linux上运行呢?

为了解决.net程序特别是.net控制台程序在Linux平台上部署和运行的简便性问题,我给大家准备了一个小工具,叫”AnyExec“,下面具体谈谈怎么将你的.net程序与 AnyExec整合起来,形成一个可以在Linux平台上无需安装mono就可以独立运行的程序系统。

一,准备:

1,由于目前只有64位的AnyExec,所以需要大家准备一台64位Linux测试机。

2,下载 anyexec。在Linux测试机上运行命令: wget http://linuxdot.net/down/anyexec-1.1-linux_x64.tar.gz

3,解压。运行解压命令:tar -zxvf anyexec-1.1-linux_x64.tar.gz

4,把解压得到的,形如“anyexec-1.1-linux_x64”这样的文件夹名称改为你需要的名称,比如 myprog。命令是 mv anyexec-1.1-linux_x64 myprog。

然后进入 myprog,用ls命令可以看到有一个叫 any的程序文件和分别名为 app、lib和bin的三个文件夹。

C#在linux上运行实现第1张

你可以尝试运行一下 any,如果看到如下信息,说明 AnyExec能够在你的系统上正常工作。

C#在linux上运行实现第2张

二,整合:

1,准备一个 .NET 控制台程序。如果没有,可以新建一个,比如,我用VS创一个叫myprog的控制台文件,.NET版本选4.0或4.5。

C#在linux上运行实现第3张

内容是:

C#在linux上运行实现第4张

然后编译出exe文件。

2,把exe文件上传到 anyexec文件夹(即你已经更名为myprog文件夹)下边名叫“app”的子文件夹中。

3,把名字叫 ”any“的可执行文件更名,让新文件名与你上传到 app文件夹中的exe文件名一致(不含扩展名),如:myprog

C#在linux上运行实现第5张

4,试运行:

现在,您可以尝试运行曾经叫 ”any“现在与你的程序同名(比如myprog)的这个linux程序了。

C#在linux上运行实现第6张

三,打包发布:

通过以上步骤,你的程序已经与anyexec整合为一个自带.net运行时,并且以你的程序命名的独立的,客户机无需安装mono也能正常运行的程序系统了。现在,你只需要把整个文件夹做成压缩包,就可以交给客户使用。至于你怎么发布,怎么交给客户,怎么让客户学会解压和运行,呵呵,这肯定不是我的事了!

C#在linux上运行实现第7张

以上是使用 AnyExec的全部步骤。怎么样,有了AnyExec,在Linux上跑.net 应用程序,一点也不难吧!

      

免责声明:文章转载自《C#在linux上运行实现》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Log4net使用总结,防止自定义的logger和root重复写入日志symbol lookup error *** , undefined symbol 错误下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux之bash shell

GNU bash ======================================================== 通常计算机硬件是由运算器、控制器、存储器、输入/输出设备等等这些物理设备共同组成的,而能够让机箱内各种硬件设备各司其职的东西就叫做系统内核。Linux系统的内核负责驱动硬件、管理活动和分配/管理硬件资源等等任务,如此说来系统内...

JavaFX 1.2 SDK 发布,增加 Linux 及 OpenSolaris 支持

Sun 公司的 RIA 框架 JavaFX 近日发布了大幅度更新的 1.2 版本,包括可运行于 Linux 和 OpenSolaris 平台的 1.2 SDK。 JavaFX 是一种为 RIA 设计的动态脚本型语言,与 Flex 和 Silverlight 类似,生成的二进制码可运行在 JRE 6u10 及更新的 JVM 上,按照 Sun 公司的期望该版本...

(转)linux 内存管理——内核的shmall 和shmmax 参数

内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好。SHMMIN= 最小的内存segment的大小 SHMMNI= 整个系统的内存segment的总个数 SHMSEG= 每个进程可以使用的内存segment的最大个数配置信号灯( semphor...

JAVA 内存详解 (理解 JVM 如何使用 Windows 和 Linux 上的本机内存)

理解 JVM 如何使用 Windows 和 Linux 上的本机内存 文档选项 打印本页 将此页作为电子邮件发送 样例代码 英文原文 级别: 中级 Andrew Hall, 软件工程师, IBM 2009 年 5 月 11 日 Java™ 堆耗尽并不是造成java.lang.OutOfMemo...

安装qmake与环境变量解析

转自:http://www.kuqin.com/qtdocument/qmake-manual-2.html 安装qmake 当Qt被连编的时候,默认情况下qmake也会被连编。 这一部分解释如何手工连编qmake。如果你已经有了qmake,可以跳过这里,请看10分钟学会使用qmake。 手动安装qmake 在手工连编Qt之前,下面这些环境变量必须被设...

linux命令ps aux|grep xxx详解

对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大的进程查看命令. 使用该命令 可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到的. ps 为我们提供了进程的一次性的查看...