範例: 使用 DUPS.exe 來解決 DLL 相容性問題

文章翻譯 文章翻譯
文章編號: 247957
全部展開 | 全部摺疊

在此頁中

結論

「 規劃求解 DLL 通用問題 」 工具 (DUPS.exe)範例,其中包含 [2000 年 1 月所述的所有公用 Microsoft開發人員網路 (MSDN) 新聞文章"DLL Hell 結束 」。請檢閱該之後,再閱讀這份文件的 MSDN 文件。

DUPS 套件是一組您可以用來追蹤及比較 DLL 版本,在多個公用程式Windows 的電腦。最大數目由您的 SQL Server 或Microsoft Access 安裝。Dlister 用戶端上列舉的 Dll系統會在 Windows 95 或 Windows 98、 Windows NT 4.0 和 Windows 2000 上執行。[在 Windows NT 4.0 和 Windows 2000 中,都來自於檢視公用程式,[Microsoft Access] 或 [Microsoft SQL Server 要求。它已經過測試以Microsoft Access 97 及較新版本和 SQL Server 6.5 及更新版本。

其他相關資訊

[下面的檔名從 Microsoft 下載下載中心:

DUPS.exe
發行日期:2000 年 1 月 14 日

如需有關如何下載的詳細資訊Microsoft 支援檔,按一下下面的文章編號,檢視Microsoft 知識庫 」 中:
119591 如何從線上服務取得 Microsoft 的支援檔案
Microsoft 掃描這個檔案有無病毒。Microsoft 會使用最目前日期所能取得的病毒偵測軟體的檔案被傳送。檔案會儲存在安全的伺服器,以隔絕任何非法的變更檔案。 這份文件和其所附的程式碼會更新定期。所有的註解歡迎,並在未來會被視為會更新。(如,右框架中使用送出 hotlink註解。)
Microsoft 會提供程式設計範例僅供說明,而不需做任何明示或默示的保證,其中包括但不是限於適售性及/或適合某特定用途之默示擔保責任。本文假設您已熟悉我們所示範的程式設計語言,以及用來建立和偵錯程序的工具。Microsoft 技術支援工程師可以協助解釋特定程序中的功能,但它們不會修改這些範例以提供附加功能或建構符合您需求的程序。
如果您有限制的程式設計經驗,您可以連絡微軟認證夥伴 」 或 「 Microsoft 諮詢服務。如需詳細資訊,請造訪下列 Microsoft 網站取得:

Microsoft 認證合作夥伴- https://partner.microsoft.com/global/30000104

Microsoft 諮詢服務- http://support.microsoft.com/gp/advisoryservice

如需有關可用支援選項,以及有關如何連絡微軟的詳細資訊,請造訪下列 Microsoft 網站:http://support.microsoft.com/default.aspx?scid=fhEN (英文)CNTACTMS (英文) 可以用在單一電腦上或用來 DUPS 套件在網路上追蹤 DLL 的歷程記錄每個 DLL。在 Windows 95 上執行Windows 2000,並在最簡單的模式有沒有相依性。DUPS 套件包含三個 c + + 公用程式和數個 Visual Basic 檢視器。

如果您只想要比較的兩部電腦正在使用的應用程式的 Dll(電腦 A 與 B 電腦),執行 Dlister.exe 程式。根據預設值為 Dlister名稱為 Comp_DLL.txt 所在 Comp C:\ 目錄中建立的檔案執行 Dlister 的電腦名稱。您也可以指定該 Dlister寫入資料庫,或您可以在其中指定另一個目錄檔案應建立。有兩種方法可以覆寫 Dlisters 屬性預設值。Dlister 和 Visual Basic 檢視器中取得此登錄機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\KB Samples\r1dllHell
和下列值:
ConnectionString, fileTableDir
您可以使用 [Visual Basic] 小程式若要設定這些值,或您的 DllHell\C_clients\ATL4VB\VbregSetup 只要執行Dlister,它會建立預設值。比方說,設定 ConnectString若要:
Provider=SQLOLEDB.1;Initial Catalog=dllHell;Data Source=dsc3_ts;
					
若要將值寫入 SQL Server 的 Dlister 的原因dllHell 資料庫時:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\dllHell.mdb
					
使用本機的 Microsoft Access 資料庫。

覆寫預設值的第二個方法是藉由設定屬性Dlister.exe 目錄中檔案 DllHell.ini。這些檔案會解壓縮至DllHell\C_clients\Dlister\Release\ 目錄。

一個名為檔案xdllHell.ini 會包含在範例中,以讓您可以連接字串修改。(重新命名此 dllHell.ini 如果您想要使用它。)

如果電腦A 和 B 電腦兩者都具有 ActiveX Data Objects (ADO) 安裝,最簡單來填入 dllHell 資料庫的方法是將連接字串設定為將 SQL Server 或 Jet 資料庫。或者,您可以執行在文字檔中的 Dlister模式,然後使用 [c + +] 公用程式閱讀輸出的 DllHell\C_clients\Dlister\readtxttbl\Release\DlgDtxt2DB.exe至 DllHell 資料庫的文字檔。還有一 ReadTxtTbl MFC 應用程式用於讀取資料的用戶端電子郵件給您的文字。您必須註冊COM 伺服器DUPS\C_clients\ATL4VB\r1RegMon\ReleaseMinDependency\r1RegMon.dll 和DUPS\C_clients\ATL4VB\readDlls\R1readTxtMod\ReleaseMinDependency\R1readTxtMod.dll若要使用 Visual Basic 檢閱者共處。

您可以啟用 CRC 總和檢查的碼設定登錄機碼 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\KB為 0x1,在執行 Windows 2000 系統上的 Samples\r1dllHell ComputeCRC。一旦您瀏覽到這個機碼,您可以將它加入 [我的最愛]。Windows NT 4 名使用者必須瀏覽以手動方式,此機碼。

正在建立 DllHell 資料庫

SQL Server 7.0,但在 Access 2000 也建議運作方式。若要建立 DLLhell 資料庫中,您可以使用 SQL Server 企業管理員若要建立空的資料庫命名為 DLLhell。從 SQL Server 查詢分析工具視窗中,選取 [資料庫] 下拉式清單方塊中的 DLLhell。執行在這個視窗和它的 DllHell\SQL\dllHellSchema.sql 指令碼會建立所有Dllhell 所需的資料表。

或者,您可以執行下列在 [SQL Server 查詢分析工具的命令:
EXEC sp_attach_single_file_db 'DLLhell', 'DllHell\SQL\dllHell_Data.MDF'
				
程式碼會建立資料庫和所有的資料表。

比較兩個系統上的 Dll

若要比較兩個系統使用的所有 Dll cmpWithList 視覺在 Dllhell\VBviewers\VBcmpList2 目錄中的基本公用程式。

若要限制DLL 比較 (通常只有那些目標應用程式載入的 Dll)您也必須包含您想要比較的 Dll 的文字 (.txt) 檔案。您可以使用相依或數個工具 (例如 ListDLLs 的其中一個來建立這份清單及 [處理程序檔案總管) 從下列網站:
http://technet.microsoft.com/en-us/sysinternals/default.aspx

使用 cmpWithList

當 cmpWithList 啟動其顯示清單中的電腦在 [電腦] 清單方塊中的 DLLhell 資料庫。根據預設,第一次兩台電腦在清單中選取的比較。若要變更目標電腦,請選取它在清單方塊,然後選取 [變更] 按鈕。Comp1 和 Comp2 的編輯方塊會顯示哪些電腦您會比較。

若要選取的文字使用的目錄瀏覽控制項檔案將包含您想要進行比較,在兩者的所有 Dll 的名稱系統。滑鼠右鍵按一下該文字檔案即可加以選取。

如果您不這樣做要比較的 Dll 中一些目錄 (通常是您無需注意的 Dll在 winnt\system32\dllcache 和 WINNT\$ NtServicePackUninstall$) 中連按兩下在方格中資料列。您要繼續將目錄加入至 _skipDir資料表。_SkipDir 中的 Dll 不會考慮進行比較。

安裝自動網路 DLL 稽核

正在安裝在 Windows 2000 系統上的排程:

DllHell\rcomp.cmd 指令檔的開頭。變更下列環境變數,以反映您的系統:
  1. 在其中 Dlister 會建立用戶端目錄 Dpath:dll 檔,用戶端上的 [文字檔案] 清單。預設值是C:\temp\DLLhell\
  2. COMP: 用戶端電腦的名稱。
  3. ChangeFileLocation: 的完整網路路徑,DLL要複製的差異檔案。這是目錄的 HellsMonitor服務會監控。
  4. ServerLst: 網路路徑地方 C_clients 目錄DLLhell 的封裝所在。
在工作列上,按一下 [開始] 按鈕、 指向 [程式集、 指向 [附屬應用程式、 指向 [系統工具和再按 [排定的工作

啟動 [新增排定的工作] 小程式。瀏覽至包含 rcomp.cmd 的本機目錄檔案,並選取它。選取的選項,精靈會顯示後,rcomp.cmd 檔案會加入已排程的工作。您將設定第一次排定的工作中,選取開始時間 2-5 分鐘,將來供您進行測試您的設定。通常很方便地取消註解 [暫停] 命令,以便您可以看到發生的任何錯誤。

登錄檔監視服務

從 Dllhell\C_clients\HellsMonitor\ReleaseUMinDependency執行這項指令,註冊服務的目錄:
HellsMonitor /Service
				
最重要的部分是監視用戶端。這是 GUI,可讓您新增或移除要監視哪一個目錄。也可以讓您指定 (以方便好用的瀏覽] 按鈕) 來執行應用程式。對於 DUPS監視系統、 應用程式是Dllhell\C_clients\Dlister\ReadTxtTblCmdLine\Debug\ReadTxtTblCmdLine.exe。

若要新增要監控的目錄,按一下 [新增]。如此會開啟該對話方塊可以瀏覽至目錄瀏覽] 對話方塊您想要監視的目錄。若要移除目錄選取您想要移除,然後再按 [移除目錄。如果要指定應用程式執行輸入在或瀏覽到它。如果您沒有指定的路徑,它必須是系統路徑中某處。接下來,按一下 [若要設定監視器] 來變更時,執行該應用程式的設定偵測到。

附註: 當您變更應用程式時,只會啟用 [設定] 按鈕若要從哪些執行其目前設定。[移除] 按鈕已啟用時才您必須選取要移除的目錄。

?考

如需詳細資訊,請參閱下列 Microsoft 網站:
"結尾的 DLL Hell"

屬性

文章編號: 247957 - 上次校閱: 2013年6月28日 - 版次: 5.0
關鍵字:?
kbdownload kbfile kbhowto kbmt KB247957 KbMtzh
機器翻譯
請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。
按一下這裡查看此文章的英文版本:247957
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com