.net程序部署(mono方式)
某一次 我同事用了这个词 ,说这样才显得够专业 擦。把某某项目 部署到服务器上 。擦 不就是拷个文件过去运行么。月亮 还是绵羊 我搞不清楚了 咱英文不好,绵羊叫的声音?。你就叫我山寨程序猿 随意 一直就这风格。
mono 是一种基于.NET Framework的开放源代码平台。
安装文件在此地址下载
http://www.go-mono.com/mono-downloads/download.html
经证实 安装过后直接 把 moon.exe 和相关目录 直接 拷走 然后运行也是可以的,所谓的绿色软件。mono本身就是一个开放的.NET Framework平台 。就是说你可以在没安装.NET Framework框架的电脑上运行 基于.NET Framework 的程序,并且不用安装 放在U盘里直接就可以运行 只要mono放在一起。然后你引用了哪些类库 就拷贝对应目录的 dll文件 也要放在一起,说白了就是moon版本的 库文件。看下我的 程序里只用到了基本类库 然后就是winform 和gdi ,然后我只拷了这些文件过来 总共4兆的样子lib\mono\gac:

mono运行.net程序的方式是: mono.exe 加上.net程序文件名。通过以上你就明白了 ,把只要编写一个批处理命令文件 就ok了。
双击批处理文件:

看到没左上角的默认图标变成mono的了 。程序运行效果跟原来的一样。换其他电脑试试呢,刚刚不是说过吗 整个文件夹拷到U盘里 在其他电脑可以直接运行。如果在没安装.net框架的电脑上你发现不行 ,有可能出现这样的错误:

根本原因:.net的exe 是托管代码 运行时首先他要寻找mscoree.dll 由此来匹配操作系统已经安装了的.netframework版本。Mscoree.dll 存在于system32 目录下。
关于mscoree.dll深究详情请参考此文 .NET中的幕后英雄:MSCOREE.DLL :
http://blog.csdn.net/atfield/article/details/1750890
明白了噻 ,你可以把你系统的Mscoree.dll 文件也拷到U盘目录下,然后再写个批处理文件,判断没有同名文件 则从U盘拷贝一份到system32 目录。由此 看你自己需求 ,你可以把批处理 写成一个安装脚本 就像 tomcat 那样 ,这些都是可以做到的。
还有一点 通过批处理运行始终有个命令行窗口 很不爽。C#里你知道有个什么 progress 可以调用外部进程 通过参数的方式 ,其实也就跟批处理异曲同工,并且C++里也有同样的东西,这样就可去除命令行窗口。我们编写一段简单的C++代码 把.net程序作为参数 传给moon运行,原理都讲得相当明了了 。这里我就不贴图了 ,经我测试 是行得通的。
接下来我们将 介绍setupFactory的使用。
.net程序部署(setupFactory方式)
.net程序部署(mono方式)的更多相关文章
- 在Tomcat中部署Java Web应用程序几种方式
在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录. 一.静态部署 静态部署指的是我们在服务器启动之前部 ...
- C#程序部署到Android
C#是一种优秀的编程语言,语法之优雅,代码之简洁使得众多软粉多年来对她不离不弃. 但是如何将C#程序部署到Linux, Android等平台,这当然是得依靠众所周知的Mono. 本文Demo程序比较简 ...
- 一键部署mono 免费空间支持ASP.NET MVC 再也不担心伙食费换空间了
一直以来 部署mono 都是很头疼的事情 因为是我在是不熟悉非win环境,今天偶然发现这个项目,挺好的,分享下 https://github.com/wshearn/openshift-communi ...
- IIS安装与MVC程序部署
最近在做访客系统,虽然说不是什么多大的项目,但麻雀虽小五脏俱全,使用EF Code First+Mysql+Frozenui响应式布局,感觉通过这个项目学到好多东西,Mysql的使用.EF映射Mysq ...
- [翻译][MVC 5 + EF 6] 5:Code First数据库迁移与程序部署
原文:Code First Migrations and Deployment with the Entity Framework in an ASP.NET MVC Application 1.启用 ...
- 一键部署mono 免费空间
一键部署mono 免费空间支持c# 再也不担心伙食费换空间了 一直以来 部署mono 都是很头疼的事情 因为是我在是不熟悉非win环境,今天偶然发现这个项目,挺好的,分享下 https://githu ...
- winform/wpf 程序部署
(1):一些发布方式 ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌.因此,有关ClickOnce的介绍,各位朋 ...
- Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署
运行环境 照例,先亮环境:软件的话我这里假设你已经批准好了.net core 运行环境,未配置可以看我的这篇[linux(centos)搭建.net core 运行环境] 腾讯云 centos:7.2 ...
- Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署
运行环境 照例,先亮底 centos:7.2 cpu:1核 2G内存 1M带宽 辅助工具:xshell xftp 搭建.net core运行环境 .net core 的运行环境我单独写了一篇,请看我的 ...
随机推荐
- Thrift-0.9.2编译安装
确定安装好了boost1.54以上 确定libevent版本大于1.0 只编译生成cpp库 ./configure --without-java --without-lua --without-pyt ...
- 性能分析工具-PerfView
Roslyn的PM(程序经理) Bill Chiles,Roslyn使用纯托管代码开发,但性能超过之前使用C++编写的原生实现,这有什么秘诀呢?他最近写了一篇文章叫做<Essential Per ...
- TaintDroid剖析之DVM变量级污点跟踪(下篇)
TaintDroid剖析之DVM变量级污点跟踪(下篇)作者:简行.走位@阿里聚安全 1 回顾 在上一章节中我们详细分析了TaintDroid对DVM方法参数和方法变量的变量级污点跟踪机制,现在我们 ...
- ENode通信层性能测试结果
测试环境 两台笔记本网线直连,通过测速工具(jperf)测试,确定两台电脑之间的数据传输速度可以达到1Gbps,即千兆网卡的最大速度.两台电脑硬件配置如下: client服务器,CPU:Intel i ...
- EasyPR--一个开源的中文车牌识别系统
我正在做一个开源的中文车牌识别系统,Git地址为:https://github.com/liuruoze/EasyPR. 我给它取的名字为EasyPR,也就是Easy to do Plate Reco ...
- 在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure
[题外话] 上次介绍了VS上开发Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常方便的开发和调试功能,当然很多情况下由于平台限制等原因需要在 ...
- Alljoyn之管中窥豹
Alljoyn之管中窥豹 一.历史: Alljoyn是高通2011年推出的近距离P2P通讯技术,它为分布式应用程序在不同设备中提供了运行环境,特别是移动性.安全性和动态配置,支持Microsoft W ...
- 使用变量 数据类型转换 逻辑控制语句(begin ...end; case...end; if...else; while)
一:变量 变量分为局部变量和全局变量 (全局变量是系统自定的,是不可手动给值的,若想自己定义全局变量可考虑创建全局临时表!) 局部变量的定义: declare @变量名 数据类型 (局部变量只能 ...
- Atitit 动态调用webservice与客户端代理方式调用
Atitit 动态调用webservice与客户端代理方式调用 方式1: 使用call.invoke 直接调用WSDL,缺点:麻烦,不推荐--特别是JAVA调用.NET的WS时,会有不少的问题需要解 ...
- 异步方法不能使用ref和out的解决方法
异常处理汇总-后端系列:http://www.cnblogs.com/dunitian/p/4523006.html 应用场景==>后端现在都是用异步方法,那么分页是必不可少的,于是就有了这个问 ...