【问题标题】:Windows Installer from .Net 2.0 Custom Action to .Net 4.0 Custom Action - BadImageFormatException从 .Net 2.0 自定义操作到 .Net 4.0 自定义操作的 Windows 安装程序 - BadImageFormatException
【发布时间】:2011-11-28 15:46:51
【问题描述】:

我最近从 .Net 2.0 升级到 .Net 4.0 的应用程序出现问题。在安装过程中,自定义操作开始执行并引发错误。

=== 开始记录:9/30/2011 2:34:09 === 错误 1001。错误 1001。初始化安装时发生异常: System.BadImageFormatException:无法加载文件或程序集“file:///C:\Program Files\MyPath\MyCustomAction.dll”或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。 === 记录停止:9/30/2011 2:34:30 ===

请注意,我应该先卸载旧版本的应用程序,然后安装新版本的应用程序,安装成功且没有错误。

我唯一能猜到的是 .Net 2.0 自定义操作无法由 Windows Installer 加载,因为它与我的最新版本的应用程序使用的 .Net 4.0 框架不同。有人遇到过这种情况吗?

【问题讨论】:

    标签: .net-4.0 .net-2.0 windows-installer upgrade


    【解决方案1】:

    您必须在 vdproj 中设置运行时的条件(它不会随您的自定义操作项目更新):

    http://msdn.microsoft.com/en-us/library/kz0ke5xt.aspx

    在解决方案资源管理器中,单击安装项目。

    在视图菜单上,指向编辑器,然后单击启动条件。​​

    单击 .NET 框架。

    在“属性”窗口中,将“版本”属性更改为您希望安装项目检查和安装的 .NET Framework 版本。

    【讨论】:

    • 我已经添加了默认的 .net Framework 自定义操作。针对 .Net 4.0 客户端配置文件框架(我也尝试过非客户端配置文件 .Net 4.0 框架)。启动条件在安装期间不会引发任何错误。直到自定义操作开始执行才会发生错误。我已经阅读了您提供的链接中的内容,甚至尝试通过 ORCA 调整 MSI。仍然无法使其正常工作。有没有人用 .Net 4.0 自定义操作升级以前具有 .Net 2.0 自定义操作的应用程序的经验?
    • 那么,您 100% 确定运行时所需版本的条件在所需版本中设置为 .NET 4.0(不是先决条件)?在将自定义操作更新到 4.0 后,我一次又一次遇到同样的错误,这一直是问题。
    • 因为我从 MSI 安装,pre-reqs 没有被评估(至少我最后知道 Windows 安装程序)。如果我单击我的设置项目,我会转到启动条件图标,在目标机器上的要求下,我有一个空的搜索目标机器节点(其中没有任何内容),我有一个包含 1 项的启动条件节点在它下面。 .Net 框架。该 .Net Framework 启动条件的属性是:名称:“.Net Framework”,InstallURL:“go.microsoft.com/fwlink/?LinkId=76617”,消息:“[VSDNETMSG]”,版本:“.Net Framework 4 Client Profile”。
    • 请注意,自定义操作库仅引用了 .Net 框架组件和我的其他自定义库之一。该其他自定义库是同一解决方案的一部分,并且还设置为针对 .Net 4.0 Client Profile 框架进行编译。
    • 并且自定义操作设置为 .NET 4.0 客户端配置文件(未满)?
    猜你喜欢
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    相关资源
    最近更新 更多