文章編號: 831491 - 上次校閱: 2007年1月22日 - 版次: 5.0

當您安裝 Visual Basic 6.0 應用程式時,收到多個 「 系統檔案已過期 」 錯誤訊息

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

徵狀

當您在 Microsoft Visual Basic 6.0 應用程式您封裝使用安裝封裝暨部署精靈 」 正在執行 Microsoft Windows 2000、 Windows XP 或 Windows Server 2003 的電腦上時,會收到下列錯誤訊息:
安裝程式無法繼續,因為有些系統檔案已在您的系統上已經過期。如果您想要安裝程式現在為您更新這些檔案,請按一下 [確定]。您必須重新啟動 Windows,才能重新執行安裝程式。按一下 [取消] 結束安裝程式而不需更新系統檔案。
如果您按一下 [確定 更新檔案,並重新啟動 Windows 執行 Setup.exe,完成安裝程序時收到相同的錯誤訊息。

發生的原因

當安裝程式套件嘗試安裝較新版的由作業系統上的 [Windows 檔案保護] 功能所保護的檔案時,就會發生這個問題。比方說如果執行 Windows Server 2003 的電腦上建置安裝套件的安裝套件包含檔案由 「 Windows 檔案保護 」 功能所保護的就會有相同檔案的較舊版本,且,正在執行 Windows XP 或 Windows 2000 的電腦上發生這個問題。

當安裝程式會安裝安裝封裝時,安裝程式會比較已經在與包含在安裝程式套件的檔案版本的作業系統的檔案的版本。如果安裝程式封裝中包含的檔案是比已經在作業系統上的檔案,安裝程式會取代檔案的作業系統上,然後提示您與安裝程式必須重新啟動電腦的訊息版本。

檔案會被取代後 「 Windows 檔案保護 」 功能會偵測檔案已被取代,並會還原成原始版本檔案。安裝程式重新開機並再次執行 Setup.exe 之後,在循環會重複。

解決方案

如果要解決這個問題,請確認安裝程式套件不會轉散發比目標作業系統系統中的檔案較新的系統檔案。若要執行此動作使用下列程序。

套用最新的 Visual Basic 6.0 Service Pack

在組建電腦上套用最新的 Visual Basic 6.0 Service Pack。開始 Visual Basic 6.0 服務套件 4 較舊版本所需的系統檔案位於 Redist 資料夾組建電腦上。當 「 封裝暨部署精靈 」 會組合封裝時,它會搜尋 Redist 資料夾第一次的相依性。因此,新封裝組建使用必要的系統檔案位於 Redist 資料夾中的較舊版本。這種方式封裝散佈所需的系統檔案的較新版本。可轉散發資料夾位於下列位置:
C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard\Redist
若要取得最新的 Visual Basic 6.0 Service Pack,請造訪下列 Microsoft 網站]:
http://msdn2.microsoft.com/en-us/vstudio/aa718364.aspx (http://msdn2.microsoft.com/en-us/vstudio/aa718364.aspx)

移除安裝套件中的常用轉散發的系統檔案

請確定安裝套件不會轉散發不必要的系統檔案。每個 Visual Basic 6.0 應用程式需要安裝下列 OLE 自動化系統檔案至函式。這些檔案應該安裝安裝封裝。如果套用 Visual Basic 6.0 服務套件 4 或稍後在建置電腦封裝暨部署精靈 」 封裝這些檔案從 [可轉散發] 資料夾的舊版本如前一節所述。
  • OLEPRO32.dll
  • OLEAUT32.dll
  • ASYCFILT.dll
  • STDOLE2.tlb
這些檔案以外的其他就通常沒有理由轉散發 Visual Basic 6.0 中的安裝封裝的系統檔案。與作業系統 Service Pack 或 Hotfix,只應該完成系統檔重新發佈。

附註 MSVBVM60.dll 也是函式的 Visual Basic 應用程式的必要的檔案。這個檔案不是系統檔案,並且不屬於 Windows 檔案保護。

應該排除可轉散發套件的系統檔案

當您使用 「 封裝暨部署精靈 」 來封裝應用程式時,檢查被在包含檔案螢幕重新分散的檔案的清單。按一下以清除核取方塊,以下列檔案旁邊 (如果有列出:
  • MSVCRT.dll
  • MSVCRT20.dll
  • MSVCRT40.dll
  • MSVCIRT.dll
  • MFC42.dll
  • MFC40.dll
很好的方式正確安裝程式套件是放棄安裝套件,並使用 「 封裝暨部署精靈 」 之後您遵循前一節中討論的程序,,以建立新的安裝套件。

而且,以確定封裝暨部署精靈 」 第一次嘗試找出從 Redist 資料夾的檔案,不要選取封裝指令碼啟動封裝暨部署精靈 」 時。封裝暨部署精靈 」 會嘗試找出檔案從它先前的封裝嘗試期間所使用的相同位置。雖然正確版本的檔案可能位於 Redist 資料夾,封裝暨部署精靈 」 可能會不使用檔案的正確版本如果它在前一個封裝嘗試封裝檔案從不同的位置。

如果您必須修正此問題已經集會的安裝程式套件中,您可以編輯以防止安裝有問題的系統檔案 Setup.lst 檔。要這麼做,請您執行下列步驟:
  1. 在文字編輯器如 「 記事本 」 中開啟 Setup.lst 檔。
  2. 找不到 [開機檔案] 區段以及 [ PackageName 檔案] 區段

    附註 在這個步驟 PackageName 是實際的套件名稱的預留位置。
  3. 如果這些章節包括一或多個 「 系統檔案通常會隨著 Visual Basic 封裝轉散發 」 中所列的檔案,請參閱的核取] 區段。如果是這樣,移除項目,然後再重新編號區段中其餘的檔案項目。
  4. 儲存該檔案,然後關閉檔案。
  5. 請確定已修改的 Setup.lst 檔位於相同 Setup.exe 檔和安裝程式封裝的封包檔的資料夾。

    下次您執行 「 安裝 」 程式封裝不會嘗試安裝您移除 Setup.lst 檔。

狀況說明

這種行為是經過設計規劃的。

?考

如需詳細資訊按一下下面的文件編號 s,檢視 「 Microsoft 知識庫 」 中的文件 s:
222193 ? (http://support.microsoft.com/kb/222193/ ) Windows 檔案保護功能的說明
330314 ? (http://support.microsoft.com/kb/330314/ ) PRB: 您的電腦不會重新啟動安裝包含 MSVCRT.dll 檔案的 Microsoft Visual Basic 6.0 應用程式之後

這篇文章中的資訊適用於:
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 6.0 Learning Edition
關鍵字:?
kbmt kbpdwizard kbprb kbdebug kbdeployment KB831491 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:831491? (http://support.microsoft.com/kb/831491/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。