.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 的运行环境我单独写了一篇,请看我的 ...
 
随机推荐
- IOS第四天-新浪微博 -存储优化OAuth授权账号信息,下拉刷新,字典转模型
			
*************application - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...
 - easyUI datagrid  根据查询条件 选中对应数据的行
			
开始 输入了 土豆,南瓜,再次是小青菜,每次输入点击搜索的时候(模糊查询),选中的当前数据对应的行 在做之前,在网上查询了许多资料,也在技术群里问过许多次,弄了好久终于好了. 第一次写博客真不知道写啥 ...
 - AWS 免费套餐
			
AWS 免费套餐 转载自:https://aws.amazon.com/cn/free/?sc_channel=PS&sc_campaign=acquisition_CN&sc_pub ...
 - Expert 诊断优化系列------------------给TempDB 降温
			
前面文章针对CPU.内存.磁盘.语句.等待讲述了SQL SERVER的一些基本的问题诊断与调优方式.为了方便阅读给出导读文章链接方便阅读: SQL SERVER全面优化-------Expert fo ...
 - 利用Generator解决异步回调原理
			
var i = 0; i++; function ajax(url){ return new Promise(function(resolve, reject){ setTimeout(functio ...
 - 剑指Offer面试题:14.链表的倒数第k个节点
			
PS:这是一道出境率极高的题目,记得去年参加校园招聘时我看到了3次,但是每次写的都不完善. 一.题目:链表的倒数第k个节点 题目:输入一个链表,输出该链表中倒数第k个结点.为了符合大多数人的习惯,本题 ...
 - Got the Best Employee of the year 2015 Star Award
			
Got "The Best Employee of the year 2015 Star Award" from the company, thanks to all that h ...
 - 分享一个css3写的气泡对话框,适合于即时通讯和留言本的动态内容
			
效果预览: css code .message_content{width:100%;margin-top:10px;clear:both;float:left;} .face{float:left; ...
 - WPF入门教程系列十六——WPF中的数据绑定(二)
			
三.绑定模式 通过上一文章中的示例,学习了简单的绑定方式.在这里的示例,要学习一下绑定的模式,和模式的使用效果. 首先,我们来做一个简单示例,这个示例是根据ListBox中的选中项,去改变TextBl ...
 - 测试框架Mocha与断言expect
			
测试框架Mocha与断言expect在浏览器和Node环境都可以使用除了Mocha以外,类似的测试框架还有Jasmine.Karma.Tape等,也很值得学习. 整个项目源代码: 为什么学习测试代码? ...