vb.net

位置:IT落伍者 >> vb.net >> 浏览文章

VB.NET如何在没有.NET框架的机器上运行


发布日期:2021年07月01日
 
VB.NET如何在没有.NET框架的机器上运行

制作自己的安装程序

在VSNET中我们可以通过建立Setup and Deployment Projects项目非常灵活方便的把自己的NET程序制作为Windows Installer文件比如我们可以很方便的定制下面这些选项

.是否在桌面上放置快捷方式

.注册自己的文件类型可以通过双击该文件来使用自己的程序打开

.注册表的处理

在下面的MSDN站点我们可以获得在VSNET中通过Setup and Deployment Projects来制作自己的安装程序的示例us/vsintro/html/vbconDeploymentScenariosasp

发布NET Framework

NET Framework 提供一个用来重新部署NET的exe文件Dotnetfxexe 它包含了Common Language Runtime和其它NET程序运行时必不可少的内容

我们可以从下面的站点下载该exe文件?url=/MSDNFILES////msdncompositedocxml

同时我们也可以在VSNET安装CD或者DVD中找到该文件

我们可以通过多种方式来通过运行Dotnetfxexe把NET Framework部署到目标机器上

.通过Microsoft Systems Management Server部署

.通过Active Directory部署

.使用第三方工具

具体的信息我们可以参阅下面的文章

us/dnnetdep/html/redistdeployasp

制作自己的native安装程序

如果我们要把自己的NET程序发布到目标机器上同时我们不确定该目标机器是否已经安装了NET Framework 那我们就需要自己设计一段unmanaged代码来判断目标机器是否安装了NET Framework 如果没有则运行Dotnetfxexe安装NET Framework 然后利用Windows Installer安装自己的程序

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

?URL=/code/sampleasp?url=/msdnfiles////msdncompositedocxml

.在CSettings class中通过读取settingsini获得您自己的MSI安装文件和dotnetfxexe的路

以及其他您自己的设置(比如NET Framework的语言版本)

GetCaptionText(void)

GetDialogText(void)

GetErrorCaptionText(void)

GetIniName(void)

GetProductName(void)

Parse()函数用来解析settingsini文件

.在Maincpp文件中全局函数FxInstallRequired()判断是否要在目标机器上安装NET Framework FxInstallRequired()会检测下面的注册表键值和dotnetfxexe的版本和语言设置

HKLM\SOFTWARE\Microsoft\NETFramework\policy\v

.如果需要安装NET Framework 在全局函数ExecCmd()中调用下面的命令silent安装dotnetfxexe dotnetfxexe /q:a /c:install /l /q

.在ExecCmd()全局函数中调用下面的命令安装您自己的MSI文件msiexec /i REBOOT=ReallySuppress

使用方法

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

.把您自己的NET程序制作成为Windows Installer (MSI)文件

.打开settingsini文件Msi key中设置您自己的NET程序的MSI文件路径和文件名FxInstallerPath Key中设置dotnetfxexe的路径具体的参数信息您可以从下面文章中得到

?url=/library/enus/dnnetdep/html/redistdeployasp

setupexe settingsini dotnetfxexe和您自己的MSI安装文件发送到目标机器上然后运行setupexe 安装程序会自动检测是否有NET Framwork 如果没有将首先运行dotnetfxexe

总结

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

上一篇:VB.net2008精彩实例,窗体应用技巧

下一篇:用VB.NET设计各种形状的窗体界面二