2010-08-27 108 views
3

我聽說過便攜式應用程序,我喜歡使我的一些實用應用程序便攜。 是否有人知道它是否有可能使vb6便攜式開發的應用程序。vb6便攜式編譯

我打算用usercontrols替換大多數控件,因此不需要除運行時文件以外的大多數MS ActiveX控件。

有什麼想法?

[編輯] 當我的意思是便攜的,我的意思是安裝中午需求,並大多是單一的EXE或最多此應用程序所需的所有文件駐留在同一目錄

+0

神似這個問題http://stackoverflow.com/questions/270523/vb6-xcopy-deployment – MarkJ 2010-08-27 16:35:13

回答

5

雖然NT 5.0正在開發中,微軟正在研究什麼叫做免註冊COM,而其中一個應用程序是VB6程序。

當Windows 2000發佈時,無註冊COM尚未準備就緒,但在NT 5.1(Windows XP)及更高版本中已有功能。然而到那時VB的命運就被擱置了,所以我們從未有過支持VB開發人員的「VB7」工具集。

儘管如此,XP SP1和SP2以及VB6 SP6還包含了針對VB6的Reg-Free COM的改進。

結果是,您可以爲Windows XP和更高版本創建可移植的(XCopy-capable)VB6應用程序,但您必須努力使用Visual Studio以後版本中不太適合VB6的工具,或者使用第3版派對工具。這些生成適當的隔離清單並可選地將它們嵌入爲清單資源。

請在Reg-Free COM下查看或嘗試使用搜索引擎來查找一些可用的工具。

+1

避免將COM庫放在「VB6 EXE旁邊」。把它們放在一個子文件夾中。否則,您有可能在第一次連接時將VB6運行時註冊到適當的位置,這可能會導致註冊指向您的可移動設備或應用程序文件夾。這可能會打破其他應用程序,當你的移除! – Bob77 2010-08-27 15:39:49

+1

+1這裏有一些第三方工具,比如「make my manifest」http://stackoverflow.com/questions/270523/vb6-xcopy-deployment – MarkJ 2010-08-27 16:35:32

2

我覺得至少XP及更高版本Windows的所有版本都包含VB6運行時庫,因此除非您想在較早的Windows版本上運行應用程序,否則應該很容易使其具有可移植性。
只需包括它依賴的任何DLL等,並確保它不會將其設置存儲到註冊表或類似文件中。

+0

避免了設置使用註冊表... 接得好! – Bob77 2010-08-27 16:23:58

+0

不,XP和更新版本默認不包含VB6運行時文件。我已經使用安裝和使用的Windows 98 - Windows 8,但我會手動安裝庫。 – Searush 2013-02-12 15:18:49

0

如果我明白你想要什麼(類似於.NET應用程序的XCopy部署),這是不太可能的。 VB6及其開發的應用程序高度依賴於COM。如果在應用程序中使用任意 ActiveX或COM組件,則必須在操作系統中註冊它們,因此必須使用Setup應用程序對其進行配置。

現在,這並不是說它不是可能,我相信有辦法解決它(也許是一個小的預檢應用程序,驗證您的主應用程序的組件是否在啓動之前已註冊) 。但是,開箱即用,沒有。我的經驗是,VB應用程序必須安裝一個安裝程序。

+1

VB6應用程序不是默認依賴於任何ActiveX或COM組件,只要它們已被添加到應用程序中,並且他確實提到他正在用普通用戶控件替換那些已使用的應用程序。我所使用的大多數VB6應用程序都沒有使用任何COM/ActiveX,所以我通常做了類似於XCopy部署的工作(假設VB運行時文件存在於PC上,但這種情況現在不太可能成爲問題) 。 – 2010-08-27 13:22:08

+0

編號XCopy部署完全可以用於VB6應用程序,只需使用無註冊表的COM。例如。看到這個http://stackoverflow.com/questions/270523/vb6-xcopy-deployment – MarkJ 2015-02-26 15:34:58

+0

@MarkJ:你意識到這個問題和答案是5歲,對吧? – 2015-02-26 17:01:22

0

嘗試使用Cameyo應用提供便攜性在VB應用程序