12
返回列表 发新帖
楼主: Pasu_Player

怎样可以让C#的程序在没有.NET架构的系统上运行?

[复制链接]
论坛徽章:
22
生肖徽章2007版:龙
日期:2009-06-30 15:25:17月度精华徽章
日期:2010-02-01 02:17:05奥运会纪念徽章:棒球
日期:2012-09-16 11:19:15奥运会纪念徽章:足球
日期:2012-09-21 13:53:52奥运会纪念徽章:游泳
日期:2012-09-29 17:34:46ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:152013年新春福章
日期:2013-02-25 14:51:242014年世界杯参赛球队: 英格兰
日期:2014-06-13 11:23:03
11#
发表于 2010-5-18 16:45 | 只看该作者
C#程序?什么程序winform?...

使用道具 举报

回复
论坛徽章:
2
2009日食纪念
日期:2009-07-22 09:30:002010新春纪念徽章
日期:2010-01-04 08:33:08
12#
发表于 2010-5-18 22:26 | 只看该作者
制作自己的native安装程序

  如果我们要把自己的.net程序发布到目标机器上,同时我们不确定该目标机器是否已经安装了.net framework, 那我们就需要自己设计一段unmanaged代码,来判断目标机器是否安装了.net framework, 如果没有,则运行dotnetfx.exe安装.net framework, 然后利用windows installer安装自己的程序。

  在msdn的下面网页上,我们可以获得一个使用unmanaged c++实现的安装程序和它的源代码:

  http://msdn.microsoft.com/downlo ... sdncompositedoc.xml

  1.在csettings class中,通过读取"settings.ini",获得您自己的msi安装文件和dotnetfx.exe的路

  径,以及其他您自己的设置。(比如.net framework的语言版本)


     getcaptiontext(void)
  getdialogtext(void)
  geterrorcaptiontext(void)
  getininame(void)
  getproductname(void)


  parse()函数用来解析settings.ini文件。

  2.在main.cpp文件中,全局函数fxinstallrequired()判断是否要在目标机器上安装.net framework. fxinstallrequired()会检测下面的注册表键值和dotnetfx.exe的版本和语言设置。

  hklm\software\microsoft\.netframework\policy\v1.0

  3.如果需要安装.net framework, 在全局函数execcmd()中调用下面的命令silent安装dotnetfx.exe: dotnetfx.exe /q:a /c:"install /l /q"

  4.在execcmd()全局函数中调用下面的命令安装您自己的msi文件:msiexec /i reboot=reallysuppress

  使用方法

  如果我们使用上面的native代码作为自己的安装程序,那么我们可以通过下面的步骤把自己的.net程序和它结合在一起:

  1.把您自己的.net程序制作成为windows installer (.msi)文件。

  2.打开"settings.ini"文件,在"msi" key中设置您自己的.net程序的msi文件路径和文件名;在"fxinstallerpath" key中,设置dotnetfx.exe的路径。具体的参数信息,您可以从下面文章中得到:

  http://msdn.microsoft.com/librar ... /redisspaneploy.asp

  3. 把"setup.exe", "settings.ini", "dotnetfx.exe"和您自己的msi安装文件,发送到目标机器上,然后运行"setup.exe", 安装程序会自动检测是否有.net framwork, 如果没有,将首先运行dotnetfx.exe。

  总结

  通过上述步骤,您可以将自己的.net程序成功的部署到没有安装.net framwork环境的机器上。

使用道具 举报

回复
论坛徽章:
65
红宝石
日期:2009-06-10 15:07:41ITPUB9周年纪念徽章
日期:2010-10-08 09:31:21紫水晶
日期:2010-08-15 16:00:03Heart of PUB
日期:2010-08-12 08:55:292010世博会纪念徽章
日期:2010-08-08 20:42:482010世博会纪念徽章
日期:2010-07-29 19:29:332010世博会纪念徽章
日期:2010-07-29 16:52:42Heart of PUB
日期:2010-07-17 09:39:37Heart of PUB
日期:2010-07-01 19:43:54萤石
日期:2010-03-05 14:00:02
13#
发表于 2010-5-22 06:20 | 只看该作者
肯定不行

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表