文章編號: 329214 - 上次校閱: 2005年7月6日 - 版次: 2.4

PRB: 當您建置安裝和部署專案時,出現「無法復原的建置錯誤」錯誤訊息

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
重要:本文包含修改登錄的相關資訊。修改登錄之前,請務必將它備份起來,並瞭解如何在發生問題時還原登錄。如需備份、還原和編輯登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
256986? (http://support.microsoft.com/kb/256986/EN-US/ ) Microsoft Windows 登錄說明

在此頁中

全部展開 | 全部摺疊

徵狀

當您嘗試建置在 Visual Studio .NET 中所建立的「安裝和 部署」專案時,可能會收到下列錯誤訊息:
無法復原的建置錯誤

發生的原因

一般而言,在下列情況中,就會發生這個問題:
  • 在 Visual Studio .NET 開發環境中,您擁有多個已開啟的視窗。
  • 在您的 Visual Studio .NET 專案中,多個資料夾擁有相同的名稱。
  • 登錄中遺失某些介面的登錄。
  • 在登錄中,並未登錄 Mergemod.dll,或者登錄了不完整的 Mergemod.dll。
  • 您已從 Visual Studio .NET 的 Beta 2 版升級至發行版本。

解決方案

  • 多個已開啟的視窗
    如果要解決此問題,請關閉某些視窗,然後再次嘗試建置「安裝」專案。
  • 多個資料夾擁有相同的名稱
    如果要解決此問題,請在 Visual Studio .NET 專案中為每個資料夾指派獨有的名稱。
  • 遺失登錄
    警告:不當使用「登錄編輯器」可能會導致嚴重的問題,甚至必須重新安裝作業系統。Microsoft 不保證您可以解決錯誤使用「登錄編輯器」所造成的問題。 請自行承擔使用「登錄編輯器」的風險。

    如果要解決此問題,請在登錄中匯入或以手動方式新增所遺失的資訊。 如果要執行這項操作,請依循下列步驟:
    1. 按一下 [開始],然後按一下 [執行]。 在 [開啟] 文字方塊中,輸入 regedit,然後按一下 [確定],以啟動「登錄編輯器」。
    2. 新增下列登錄機碼:
      • HKEY_CLASSES_ROOT\Interface\{00020404-0000-0000-C000-000000000046}

        將此機碼的 Default 值設定為 IEnumVARIANT
      • HKEY_CLASSES_ROOT\Interface\{00020404-0000-0000-C000-000000000046}\NumMethods

        將此機碼的 Default 值設定為 7
      • HKEY_CLASSES_ROOT\Interface\{00020404-0000-0000-C000-000000000046}\ProxyStubClsid

        將此機碼的 Default 值設定為 {00020421-0000-0000-C000-000000000046}
      • HKEY_CLASSES_ROOT\Interface\{00020404-0000-0000-C000-000000000046}\ProxyStubClsid32

        將此機碼的 Default 值設定為 {00020421-0000-0000-C000-000000000046}
  • Mergemod.dll 並未正確地登錄
    如果要解決此問題,請再次登錄 Mergemod.dll。 通常,Mergemod.dll 是位於下列資料夾中:
    C:\Program Files\Common Files\Microsoft Shared\MSI Tools\Mergemod.dll
    如果要登錄 Mergemod.dll,請在命令提示字元中輸入下列命令,然後按下 ENTER:
    regsvr32 "C:\Program Files\Common Files\Microsoft Shared\MSI Tools\mergemod.dll"
  • 從 Visual Studio .NET 的 Beta 2 版升級
    如果要解決此問題,請移除 Visual Studio .NET 的 Beta 2 版本,然後重新安裝發行版本。 如需有關如何移除 Visual Studio .NET Beta 版本的詳細資訊,請按一下下面的文件編號,檢視 Microsoft Knowledge Base 中的文件:
    312383? (http://support.microsoft.com/kb/312383/EN-US/ ) HOW TO: Remove Visual Studio .NET Beta and Release Candidate Versions

狀況說明

這個行為是經過設計的。

其他相關資訊

重現問題的步驟

如果要重現 Mergemod.dll 未正確登錄時所發生的問題,請依循下列步驟:
  1. 按一下 [開始],然後按一下 [執行]
  2. [開啟] 文字方塊中,輸入下列命令,然後按一下 [確定]
    regsvr32 /u "C:\Program Files\Common Files\Microsoft Shared\MSI Tools\mergemod.dll"
  3. 啟動 Visual Studio .NET。 在 [檔案] 功能表上,指向 [新增],然後按一下 [專案]
  4. [專案類型] 下,按一下 [安裝和部署專案]。 在 [範本] 下,按一下 [安裝專案]。 按一下 [確定]
  5. [建置] 功能表上,按一下 [建置方案]
重要 在重現問題之後,請依循<解決方案>一節中的步驟再次登錄 Mergemod.dll。

?考

如需詳細資訊,請按一下下面的文件編號,檢視 Microsoft Knowledge Base 中的文件:
320426? (http://support.microsoft.com/kb/320426/EN-US/ ) PRB: "This Setup Does Not Contain the .NET Framework" Error Message During Visual Studio .NET Deployment
307353? (http://support.microsoft.com/kb/307353/EN-US/ ) HOW TO:使用 Visual Studio .Net 建立安裝套件




這篇文章中的資訊適用於:
  • Microsoft Visual Studio .NET 2003 專業版
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
關鍵字:?
kbsetup kbdeployment kberrmsg kbprb KB329214
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。