- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用Mono Runtime Bundle 制作安装包让 C#桌面应用程序脱
离 net fram...
使用Mono Runtime Bundle 制作安装包让 C#桌面应用程
序脱离 net framework
作者:BAsil | 出处:博客园 | 2011/11/29 16:36:28 | 阅读73
次
之前有一 C#版本和 ios 版本(支持下载学生名单,点名等
更多功能,该版本未上 app store) 的教辅助手帮助学校老师提
交成绩到教务系统(浙大正方 web 版),一直打算用 mfc 写
一 vc++版本的可以方便的在未安装 net framework 的电脑
上使用,前几天看到一篇文章再谈为什么要使用
MONO ,既然Unity3D 游戏(mono 内核)可以单独打包脱离
net framework,那我的教辅助手一定可以。可是在网上找了一
下,中文资料很少,没有讨论具体技术细节的文章( 让 C#
程序独立运行(脱离 .NET Framework 运行,绿色运行) 是
我在移植完成后写教程的时候看到的文章,我的思路和他不
太一样,我使用了 mkbundle )。
教辅助手虽然功能比较简单,但是比 hello world 还是有技术
含量的。我在测试打包的时候使用 hello world 没有问题,能
够脱离 net framework 正常显示,但如果更复杂的功能和代码
以及引入第三方类库的话,到底有没有问题,我心里没底。
实际在我移植的过程中确实碰到很多问题,这个是简单的测
试 hello world 移植所解决不了的。因此我在解决问题后,写
下此文记录一下。
先说一下教辅助手的功能(由于工作原因无法放出该程序代
码),简单点说就是要导入 excel 成绩表并直接提交到教务系
统的页面中,为清楚列表如下
1 导入 excel 成绩表
2 提交至 web 教务系统
3 可视界面操作
使用的相应技术
1 使用 System.Data.Oledb 访问 excel 并将取得内容放入
System.Data.DataSet
2 使用 System.Net.HttpWebRequest 模拟教务系统登录(该系
统使用 cookieless 方式,所以需要先访问一次得到 url 中生成
的 sessionid ),然后填入课程相关信息,模拟post 提交,使
用 System.Text.RegularExpressions 的正则表达式得到所有学
生列表,并根据DataSet 内容产生新的Post 信息,再次利用post
方式提交到教务系统中。
3 使用 Winform 窗口形式
相关软件
window7 professional 64bit
Cygwin
net 2.0/3.5/4.0 framework
mono 2.10.6
gtk 2.12
MonoDevelop 2.8.2
下面说一下我的具体过程
1 首先使用 Mono Migration Analyzer (MoMA) 检查已有代
码是否可以移植到 mono 上。我的代码检查通过,但在后继
过程发现访问 excel 功能报错,原因后面会说 。个人感觉
MoMA 不是很靠谱。
2 使用 mono 编译教辅助手源码。 这里我使用了
MonoDeveloper 工具,当然也可以使用类似 csc.exe 的mcs.exe
命令行编译方式。不过由于 MonoDevelop 没有 winform 的设
计器,而且 winform 是 Win32 技术,兼容性在 Linux 下不是
很好, mono 建议使用GTK#这种第三方的Form 技术来做UI ,
我这里为了使用 MonoDeveloper 把 winform 的代码用gtk 重
写了,用了一个小时吧,代码分层比较好,比较容易剥离。
当然如果你习惯 csc.exe 的命令行方式,而且你的移植后的程
序只在 window 下面运行,那你可以使用 mcs.exe 并且不需
要 gtk 重写(未尝试此种方式,感觉应该可行,如果哪位朋
友有过相关经验,请告知)。
使用 MonoDevelop 要求安装 mono 和 gtk,这里要特别注意的
是MonoDevelop 可以
文档评论(0)