在生成安裝和部署項目時出現“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,還不錯