尝试在任何CPU上使用TaskScheduler时BadImageFormatException

时间:2012-08-01 14:10:25

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

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

我们正在使用Windows Task Scheduler COM包装器。

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

  

BadImageFormatException:   无法加载文件或程序集'Interop.TaskScheduler,   Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 4b71cab8d8e4499f'或   其中一个依赖项。尝试加载带有的程序   格式不正确。

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

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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