代码之家  ›  专栏  ›  技术社区  ›  Mark

VisualStudio安装项目:通过CustomAction BadImageFormatException部署带有数据库的项目

  •  1
  • Mark  · 技术社区  · 14 年前

    我有一个使用MSSQL数据库的项目的解决方案,并为此生成了一个VisualStudio安装程序。然后我用一个安装程序类创建了另一个项目,该安装程序类应该在安装时部署我的数据库。

    所以我使用 this 教程和 this 类似的C溶液。

    当我现在运行我的安装项目并想安装我的应用程序时,总是会出现一个错误:

    初始化安装时 发生异常: System.BadImageFormatException:文件 或程序集。。。\CustomAction.dll或 找不到其依赖项之一。这个 程序集由以下术语插入: 比当前加载的 期限,不能加载。

    我希望这个错误是可以理解的,我把它从德语翻译成英语。。。

    所以我很感激你给我的建议。

    当做

    2 回复  |  直到 14 年前
        1
  •  1
  •   Cosmin    14 年前

    也许这篇文章会有帮助: http://msdn.microsoft.com/en-us/library/k7137bfe(VS.80).aspx

    似乎有两个可能的原因:

    1. 未正确解析DLL路径,因此找不到该DLL。您可以尝试检查如何根据工作目录解析DLL相对路径。
    2. 自定义操作有问题。在这种情况下,您可以尝试创建一个日志,看看是否可以找到更多信息。可以使用msiexec.exe创建日志,例如:

    msi exe C.exe/i package.msi/l*v“C:\包.log”

        2
  •  1
  •   Christopher Painter    14 年前

    不使用InstallUtil(安装程序类)自定义操作的众多原因之一是,当涉及宿主进程和正在进行jitted的CLR版本时,它们是“粘性的”。如果1.1 CA触发,则2.0触发将失败,并出现BadImageFormat异常。

    我真的很乐意为WiX部署工具基金会做一个很好的搜索。对于托管代码来说,它是一个更好的托管模型,可以解决问题和许多其他问题。