【问题标题】:Installing MSI package gives BadImageFormatException安装 MSI 包会产生 BadImageFormatException
【发布时间】:2013-05-11 18:18:32
【问题描述】:

我有一个在 VS Professional 2010 (10.0.40219.1 SP1Rel)、.NET 4.5.50709 SP1Rel、Windows 7 中创建的 MSI 包 (x64) 它包含一个 Windows 服务、其他 dll 和第 3 方 dll。 在我添加对在 VS2005 下编译的 x64.net(2.0) dll 的引用之前,它可以正常工作。 我现在得到的错误是:

MSI (s) (74:A0) [12:23:10:931]:生成随机 cookie。 MSI (s) (74:A0) [12:23:10:933]:使用 PID 13876 (0x3634) 创建了自定义操作服务器。 MSI (s) (74:DC) [12:23:10:954]:作为服务运行。 MSI (s) (74:DC) [12:23:10:955]:您好,我是您的 32 位 Elevated 自定义操作服务器。 MSI (s) (74!E4) [12:38:33:692]:为线程 9444 创建 790531 类型的 MSIHANDLE (84) 调试:错误 2835:在对话框 ErrorDialog 上找不到控件 ErrorIcon 安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2835。参数为:ErrorIcon、ErrorDialog、 错误 1001。错误 1001。初始化安装时发生异常: System.BadImageFormatException:无法加载文件或程序集 'file:///C:\Program Files\xyz\xyz Manager\xyz.Service.exe' 或其依赖项之一。试图加载格式不正确的程序.. MSI (s) (74!E4) [12:39:24:631]: MSI (s) (74:38) [12:39:24:634]:线程 9444 的 790531 类型的 MSIHANDLE (84) 泄漏 MSI (s) (74:38) [12:39:24:634]: 注意: 1: 2769 2: _57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install 3: 1 调试:错误 2769:自定义操作 _57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install 未关闭 1 MSIHANDLE。 安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2769。参数为:_57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install, 1, CustomAction _57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install 返回实际错误代码 1603(请注意,如果翻译发生在沙箱内,这可能不是 100% 准确) MSI (s) (74:38) [12:39:24:636]:为线程 12548 关闭 790536 类型的 MSIHANDLE (83) 操作于 12:39:24 结束:InstallExecute。返回值 3。 MSI (s) (74:04) [12:39:24:649]:用户策略值“DisableRollback”为 0 MSI (s) (74:04) [12:39:24:650]:机器策略值“DisableRollback”为 0 MSI (s) (74:04) [12:39:24:653]: 执行操作: Header(Signature=1397708873,Version=500,Timestamp=1118855907,LangId=1033,Platform=589824,ScriptType=2,ScriptMajorVersion= 21,ScriptMinorVersion=4,ScriptAttributes=1) MSI (s) (74:04) [12:39:24:653]: 执行 op: DialogInfo(Type=0,Argument=1033) MSI (s) (74:04) [12:39:24:654]: 执行 op: DialogInfo(Type=1,Argument=xyz) MSI (s) (74:04) [12:39:24:654]:执行操作:RollbackInfo(,RollbackAction=Rollback,RollbackDescription=回滚操作:,RollbackTemplate=[1],CleanupAction=RollbackCleanup,CleanupDescription=删除备份文件,CleanupTemplate=文件: [1]) 行动 12:39:24:回滚。回滚动作: 回滚:_57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install MSI (s) (74:04) [12:39:24:655]:执行操作:ActionStart(Name=_57DBC9CE_7D15_455B_8B30_5B2EB10DF0BB.install,,) MSI (s) (74:04) [12:39:24:656]:执行操作:ProductInfo(ProductKey={7C3F562E-7D0F-49B6-AFE1-7DD5C4EBD2C2},ProductName=xyz Manager,PackageName=Setup.msi,Language =1033,Version=33554432,Assignment=1,ObsoleteArg=0,ProductIcon=_853F67D554F05449430E7E.exe,,PackageCode={DAA1A94E-2679-4076-A4CF-0F7B1E839A86},,,InstanceType=0,LUASetting=0,RemoteURTInstalls= ProductDeploymentFlags=3) 回滚:_A57B6B8D_EBFF_40E0_82DD_21B8F6E64792 MSI (s) (74:04) [12:39:24:657]:执行操作:ActionStart(Name=_A57B6B8D_EBFF_40E0_82DD_21B8F6E64792,,) 回滚:_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback MSI (s) (74:04) [12:39:24:658]:执行操作:ActionStart(Name=_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback,,) MSI (s) (74:04) [12:39:24:659]:执行操作:CustomActionRollback(Action=_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback,ActionType=3329,Source=BinaryData,Target=ManagedInstall,CustomActionData=/installtype=notransaction /action =rollback /LogFile= "C:\Program Files\xyz\xyz Manager\xyz.Service.exe" "C:\Users\abc~1.STO\AppData\Local\Temp\CFG2C18.tmp") MSI (s) (74:04) [12:39:24:693]:为线程 12548 创建类型为 790536 的 MSIHANDLE (85) MSI (s) (74:C4) [12:39:24:693]:调用远程自定义操作。 DLL:C:\Windows\Installer\MSI29ED.tmp,入口点:ManagedInstall MSI (s) (74!88) [12:39:24:727]:为线程 12424 创建类型为 790531 的 MSIHANDLE (86) 调试:错误 2835:在对话框 ErrorDialog 上找不到控件 ErrorIcon 安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2835。参数为:ErrorIcon、ErrorDialog、 安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2835。参数为:ErrorIcon、ErrorDialog、 错误 1001。错误 1001。初始化安装时发生异常: System.BadImageFormatException:无法加载文件或程序集 'file:///C:\Program Files\xyz\xyz Manager\xyz.Service.exe' 或其依赖项之一。试图加载格式不正确的程序.. MSI (s) (74!88) [12:59:18:001]: MSI (s) (74:C4) [12:59:18:016]:线程 12424 的 790531 类型的 MSIHANDLE (86) 泄漏 MSI (s) (74:C4) [12:59:18:016]: 注意: 1: 2769 2: _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 3: 1 调试:错误 2769:自定义操作 _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 未关闭 1 个 MSIHANDLE。 安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2769。参数为:_3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback, 1, CustomAction _3CB427CA_9552_4B3E_9238_DC91BB0F603B.rollback 返回实际错误代码 1603 但由于继续标记将转换为成功 MSI (s) (74:C4) [12:59:18:017]:为线程 12548 关闭 790536 类型的 MSIHANDLE (85) 回滚:_1D90AC8C_CBD2_432C_8C03_8E17E724219A

感谢任何帮助。

【问题讨论】:

  • 这是基本的,但您是否尝试从提升的命令提示符运行 msiexec /i "yourmsi.msi"?只是为了消除缺乏提升权限错误的影响。
  • 还有 2005 DLL 的源代码吗?可以用VS2010重新编译吗?
  • 我试过 msiexec /i "yourmsi.msi 并没有工作。我没有 2005 dll 源代码,我也更新了 msi 包,如下所述:[link]blogs.msdn.com/b/heaths/archive/2006/02/01/…跨度>
  • 你能排除 2005 DLL,然后将它的脚本放入 system32 或适当的位置吗?然后你可以做一个 regsvr 并在之后向 Windows 注册 DLL。
  • 2005 dll是.net dll,不用注册regsvr,主应用是windows服务,一切都安装正确,然后延迟几分钟我觉得无法将 .exe 文件添加到 Windows 服务。

标签: badimageformatexception


【解决方案1】:

删除 VS2012 C#,重新安装 VS2010 和其他 3rd 方应用程序后问题解决。

它运行了 3 年多没有任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-03
    • 2011-05-11
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    相关资源
    最近更新 更多