熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

VB.NET如何在沒有.NET框架的機器上運行

2013-11-13 09:48:02  來源: .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環境的機器上
From:http://tw.wingwit.com/Article/program/net/201311/11622.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.