【发布时间】:2019-02-16 05:11:20
【问题描述】:
我得到了一个 Windows 服务,它引用了一个仅在 32 位上运行的 COM 组件。 我的机器是 x64,所以服务尝试启动,无法创建 COM 组件,然后死了。
我没有源代码,只有 .exe 文件。有什么方法可以强制服务在 win64 机器上以 32 位模式启动?
【问题讨论】:
标签: .net configuration 64-bit
我得到了一个 Windows 服务,它引用了一个仅在 32 位上运行的 COM 组件。 我的机器是 x64,所以服务尝试启动,无法创建 COM 组件,然后死了。
我没有源代码,只有 .exe 文件。有什么方法可以强制服务在 win64 机器上以 32 位模式启动?
【问题讨论】:
标签: .net configuration 64-bit
也许 .NET 工具 corflags 会有所帮助:
corflags /32bit+ myservice.exe
【讨论】:
corflags : error CF001 : Could not open file for writing 时遇到问题,解决方案是添加/force
corflags.exe 附带 Windows SDK,而不是 .NET。
corflags.exe 只需针对目标服务 exe 运行一次。然后服务将在此后以 32 位模式运行。
注意所需的参数是 /32bitreq+ 或 /32bitpref+ 。
corflags.exe /32bitreq+ myservice.exe
【讨论】: