天天看點

在生成安裝和部署項目時出現“Unrecoverable Build Error”(不可恢複的生成錯誤)錯誤資訊

在生成安裝和部署項目時出現“Unrecoverable Build Error”(不可恢複的生成錯誤)錯誤資訊

         使用環境:Win2003Server+vs2003

         今天在生成安裝檔案時,遇到“不可恢複的生成錯誤”。

          以前正常,隻是這次添加了對Com元件的引用,

using ADOX;

//建立Access檔案

                    ADOX.CatalogClass cat=new ADOX.CatalogClass();

                    cat.Create(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+file+";");

                    cat=null;

        上面為增加的引用Com的代碼,增加這段代碼後,出現了問題。 

        開始認為是增加了對Com的引用造成的,但是查了資料,說

        此問題一般是由C:/Program Files/Common Files/Microsoft Shared/MSI Tools/mergemod.dll檔案版本低造成的,隻需下載下傳新的版本,在注冊即可。

        下載下傳了新的mergemod.dll,注冊後,問題解決。

參考:

微軟的解釋:

http://support.microsoft.com/default.aspx?scid=kb;zh-cn;329214

阿瑞的解釋:

http://arui.cnblogs.com/archive/2005/07/29/202934.html

附:

微軟解釋:

症狀

當您試圖生成在 Visual Studio .NET 中建立的安裝和部署項目時,您可能會收到以下錯誤資訊:

Unrecoverable build error

原因

通常,發生此問題的原因有以下幾種: • 在 Visual Studio .NET 開發環境中,打開了多個視窗。

• 在您的 Visual Studio .NET 項目中,有多個檔案夾同名。

• 系統資料庫中的一些接口注冊丢失。

• 在系統資料庫中,Mergemod.dll 沒有注冊,或者注冊了不完整的 Mergemod.dll 版本。

• 您從 Visual Studio .NET 的 Beta 2 版本更新到了發行版。

解決方案

• 打開的代碼和設計視窗過多

要解決此問題,請關閉在 Visual Studio .NET 互動式開發環境 (IDE) 中并未使用的所有啟動、代碼或設計視窗。通過 IDE 工作區的頁籤或 MDI 類型可以通路這些視窗。

• 多個檔案夾同名

要解決此問題,請為 Visual Studio .NET 項目中的各個檔案夾分别指定一個唯一的名稱。

• 注冊丢失

警告:如果使用系統資料庫編輯器或其他方法錯誤地修改了系統資料庫,則可能導緻嚴重問題。這些問題可能需要重新安裝作業系統才能解決。Microsoft 不能保證您可以解決這些問題。修改系統資料庫需要您自擔風險。

要解決此問題,請在系統資料庫中導入或手動添加丢失的資訊。為此,請按照下列步驟操作:1. 單擊“開始”,然後單擊“運作”。在“打開”文本框中,鍵入 regedit,然後單擊“确定”以啟動系統資料庫編輯器。

2. 添加下面的系統資料庫項: • HKEY_CLASSES_ROOT/Interface/{00020404-0000-0000-C000-000000000046}

将此項的預設值設定為 IEnumVARIANT

• HKEY_CLASSES_ROOT/Interface/{00020404-0000-0000-C000-000000000046}/NumMethods

将此項的預設值設定為 7

• HKEY_CLASSES_ROOT/Interface/{00020404-0000-0000-C000-000000000046}/ProxyStubClsid

将此項的預設值設定為 {00020421-0000-0000-C000-000000000046}

• HKEY_CLASSES_ROOT/Interface/{00020404-0000-0000-C000-000000000046}/ProxyStubClsid32

• 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 知識庫中相應的文章:

312383 (

http://support.microsoft.com/kb/312383/

) 如何删除 Visual Studio .NET Beta 版和預釋出版本 

狀态

這種現象是設計導緻的。

今天在搞一個安裝項目,編譯的時候總是出來一個“不可恢複的生成錯誤”,,于是我是翻山越頂啊,跋山涉水啊,終于找到了問題原來出自于C:/Program Files/Common Files/Microsoft Shared/MSI Tools/MergeMod.dll的版本不對,暈~~~~, 版本是1.20.1827.1,最新版是2.0.2542.0,在網上找了一個,當下來後,重新注冊一個就解決了,這裡也給大家介紹一個專業的搜尋dll的網站

http://www.webzila.com/?wz=dll

,還不錯

繼續閱讀