【问题标题】:BadImageFormatException when trying to use TaskScheduler on Any CPU尝试在任何 CPU 上使用 TaskScheduler 时出现 BadImageFormatException
【发布时间】:2012-07-30 11:02:46
【问题描述】:

我们正在尝试将程序从 32 位更改为任何 CPU。该程序在 .NET 3.5 上使用 C# 编写。

我们正在使用 Windows 任务计划程序 COM 包装器。

应用程序可以编译,但是当我们尝试在 64 位平台上运行它时,我们收到以下错误:

BadImageFormatException: 无法加载文件或程序集“Interop.TaskScheduler, 版本=1.0.0.0,文化=中性,PublicKeyToken=4b71cab8d8e4499f' 或 它的依赖项之一。试图加载一个带有 格式不正确。

更新:我们在 Any CPU 中创建了一个新的 C# 项目,以 TaskScheduler 作为参考,并使用非常简单的 2 行代码(创建 TaskSchedulerClass 的实例并将一行写入控制台)。我们在同一个 64 位平台上运行它,它工作正常。但是,整个应用程序仍然无法正常工作。 感谢您的帮助。

【问题讨论】:

    标签: c# .net 32bit-64bit comobject anycpu


    【解决方案1】:

    由于它是一个 COM 互操作程序集,它可能只有 32 位。您必须将项目保持为 32 位。

    【讨论】:

      【解决方案2】:

      您的程序集只能工作 32 位,尝试查找 x64 版本或替代程序集

      【讨论】:

        【解决方案3】:

        您可以使用 WMI 通过标准托管接口安排任务,以避免使用限制您以 32 位运行的 COM 组件。

        http://msdn.microsoft.com/en-us/library/windows/desktop/aa394399(v=vs.85).aspx

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-17
          • 1970-01-01
          • 1970-01-01
          • 2012-10-20
          相关资源
          最近更新 更多