7

我按照此处的步骤使我现有的 WCF 服务(已经作为控制台应用程序正常工作)成为 Windows 服务,在我的 Windows 7 机器上也是我的开发机器。

无论我尝试了什么,在执行使用 installutil 的最后一步时,我都会在命令行中收到以下消息:

初始化安装时发生异常:
System.BadImageFormatException:无法加载文件或程序集“file:///[path here]”或其依赖项之一。
试图加载格式不正确的程序..

我有我的控制台应用程序主类继承ServiceBase并实现OnStartOnEnd方法。

我添加了ProjectInstaller继承自System.Configuration.Install.Installer标记[RunInstaller(true)]属性的类以及它们在构造函数中提供的代码。

上面文章中没有提到的我已经尝试过的东西?

  1. 以管理员身份运行命令行
  2. 导航到 EXE 文件所在的目录并从那里运行 installutil
  3. 为 EXE 文件及其使用的所有 DLL 提供强密钥

此外,即使使用/LogFile=myLog.txt.

欢迎任何想法,谢谢。

4

2 回答 2

6

这听起来像是 32 位/64 位的问题。

你的机器是64位Windows 7吗?您的服务是否以某种方式引用了 32-bit 的东西,例如旧的 COM 组件或其他东西?

您可能需要在 Visual Studio 中使用 x86 平台编译您的东西以使其正常工作......

于 2010-10-25T16:38:16.930 回答
3

BadImageFormat 异常通常在程序集加载到较旧版本的 .NET 框架(没有 4.0 的机器上的 4.0 程序集)中加载时发生。由于您在同一台机器上进行部署,我猜您没有使用正确版本的 installutil。

确保使用位于此处的 installutil:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319

于 2010-10-26T06:17:08.643 回答