当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 把.NET程序部署到没有安装.NET Framwork的机器上

ASP.NET
ASP.NET开发:简化应用程序的开发支持Web标准
asp.net XMLHttpRequest实现用户注册前的验证
asp.net 页面间传值方法小结
asp.net url重写浅谈
asp.net 验证码生成和刷新及验证
C#精髓 GridView72大绝技 学习gridview的朋友必看
实例说明asp.net中的简单角色权限控制
asp.net网站开发包wq.dll打包下载
js与ASP.NET 中文乱码问题
asp.net checkbox 动态绑定id GridView删除提示
asp.net TextBox回车触发事件 图片在img显示
asp.net 脏字典过滤问题 用正则表达式来过滤脏数据
asp.NET 脏字过滤算法
asp.NET 脏字过滤算法 修改版
asp.net sql 数据库处理函数命令
asp.net Javascript 的几种写法与提示
ASP.NET MVC学习笔记
asp.net 中国身份证号码验证代码 非正则
Asp.net中使用Sqlite数据库的方法
asp.net 中文字符串提交乱码的解决方法

ASP.NET 中的 把.NET程序部署到没有安装.NET Framwork的机器上


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-23   浏览: 125 ::
收藏到网摘: n/a

摘要

本文讨论了如何使用WindowsInstaller技术发布.NET程序,以及如何使用native代码判断目标机器上是否安装有.NETFramework;如果没有,将自动安装.NETFramework然后安装作者自己的.NET程序。

本文内容

1.使用VS.NET来制作安装程序。
2.如何把.NETFramework部署到目标机器。
3.如何使用Native代码把.NETFramework和自己的安装程序制作为一个统一的安装程序。该程序做到如果目标机器上没有.NETFramework,将自动安装.NETFramework然后再自动安装作者自己的程序。

制作自己的安装程序

在VS.NET中,我们可以通过建立"SetupandDeploymentProjects"项目,非常灵活方便的把自己的.NET程序制作为WindowsInstaller文件。比如,我们可以很方便的定制下面这些选项:
1.是否在桌面上放置快捷方式。
2.注册自己的文件类型,可以通过双击该文件来使用自己的程序打开。
3.注册表的处理
在下面的MSDN站点,我们可以获得在VS.NET中通过SetupandDeploymentProjects来制作自己的安装程序的示例:
http://msdn.microsoft.com/library/en-us/vsintro7/html/vbconDeploymentScenarios.asp

发布.NETFramework

.NETFramework1.0提供一个用来重新部署.NET的exe文件:Dotnetfx.exe.它包含了CommonLanguageRuntime和其它.NET程序运行时必不可少的内容。
我们可以从下面的站点下载该exe文件:
http://msdn.microsoft.com/downloads/sample.asp?url=/MSDN-FILES/027/001/829/msdncompositedoc.xml
同时,我们也可以在VS.NET安装CD或者DVD中找到该文件。
我们可以通过多种方式来通过运行Dotnetfx.exe把.NETFramework部署到目标机器上:
1.通过MicrosoftSystemsManagementServer部署。
2.通过ActiveDirectory部署。
3.使用第三方工具。
具体的信息,我们可以参阅下面的文章:
http://msdn.microsoft.com/library/en-us/dnnetdep/html/redistdeploy.asp

制作自己的native安装程序

如果我们要把自己的.NET程序发布到目标机器上,同时我们不确定该目标机器是否已经安装了.NETFramework,那我们就需要自己设计一段unmanaged代码,来判断目标机器是否安装了.NETFramework,如果没有,则运行Dotnetfx.exe安装.NETFramework,然后利用WindowsInstaller安装自己的程序。
在MSDN的下面网页上,我们可以获得一个使用unmanagedC++实现的安装程序和它的源代码:
http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/830/msdncompositedoc.xml
1.在CSettingsclass中,通过读取"settings.ini",获得您自己的MSI安装文件和dotnetfx.exe的路径,以及其他您自己的设置。(比如.NETFramework的语言版本)
GetCaptionText(void)
GetDialogText(void)
GetErrorCaptionText(void)
GetIniName(void)
GetProductName(void)
Parse()函数用来解析settings.ini文件。
2.在Main.cpp文件中,全局函数FxInstallRequired()判断是否要在目标机器上安装.NETFramework.FxInstallRequired()会检测下面的注册表键值和dotnetfx.exe的版本和语言设置。
HKLM\SOFTWARE\Microsoft\.NETFramework\policy\v1.0
3.如果需要安装.NETFramework,在全局函数ExecCmd()中调用下面的命令silent安装dotnetfx.exe:
dotnetfx.exe/q:a/c:"install/l/q"
4。在ExecCmd()全局函数中调用下面的命令安装您自己的MSI文件:
msiexec/i<yourMSIfile>REBOOT=ReallySuppress

使用方法

如果我们使用上面的native代码作为自己的安装程序,那么我们可以通过下面的步骤把自己的.NET程序和它结合在一起:
1.把您自己的.NET程序制作成为WindowsInstaller(.MSI)文件。
2.打开"settings.ini"文件,在"Msi"key中设置您自己的.NET程序的MSI文件路径和文件名;在"FxInstallerPath"Key中,设置dotnetfx.exe的路径。具体的参数信息,您可以从下面文章中得到:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetdep/html/redistdeploy.asp
3.把"setup.exe","settings.ini","dotnetfx.exe"和您自己的MSI安装文件,发送到目标机器上,然后运行"setup.exe",安装程序会自动检测是否有.NETFramwork,如果没有,将首先运行dotnetfx.exe。
通过上述步骤,您可以将自己的.NET程序成功的部署到没有安装.NETFramwork环境的机器上。

总结

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