• 在生成安装和部署项目时出现“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
    将此项的默认值设置为 {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 知识库中相应的文章:
    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,还不错

  • 相关阅读:
    团队冲刺第一阶段第三天
    团队冲刺第一阶段第二天
    团队冲刺第一阶段第一天
    学习进度07
    学习进度06
    结对编程之子数组最大的和(由于一直登不上我的账号,在规定日期内只在我搭档的博客上交了)
    小学四则运算网页版
    团队介绍
    学习进度条05
    111
  • 原文地址:https://www.cnblogs.com/huyong/p/2685619.html
Copyright © 2020-2023  润新知