Windows Service无法在其他平台上安装

本文关键字:平台 安装 其他 Service Windows | 更新日期: 2023-09-27 18:05:36

我创建了一个简单的windows服务,项目的平台是Any CPU,我使用installutil.exe命令安装我的服务。然后卸载服务,将平台设置为X64。但在此之后,我无法安装服务。我得到了以下错误

初始化安装时发生异常:System。badmageformatexception:无法加载文件或程序集——或它的一个依赖项。试图加载一个程序不正确的格式。

为了使用一些dll,我想将平台更改为X64

Windows Service无法在其他平台上安装

您必须选择x86平台,dll以混合模式运行,并将与您的服务一起工作

installutil .exe是平台特定的

看看这个:https://stackoverflow.com/a/2160932/891715

同样,这将给你正确的路径到正确的版本:

 string InstallUtilPath = Path.Combine(
     System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory(),
     "installutil.exe");

还有一点警告:如果您使用setup项目来安装服务,请特别小心。它将installutil嵌入到自身中(通常不是正确的版本…)。