1

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

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

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

BadImageFormatException: 无法加载文件或程序集“Interop.TaskScheduler,Version=1.0.0.0,Culture=neutral,PublicKeyToken=4b71cab8d8e4499f”或其依赖项之一。试图加载格式不正确的程序。

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

4

3 回答 3

4

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

于 2012-08-01T14:13:54.773 回答
0

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

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

于 2012-08-01T15:42:29.050 回答
0

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

于 2012-08-01T14:16:01.027 回答