我有几个针对32位但一直在64位操作系统上运行的Windows服务。我希望从64位进程的优势中受益,特别是从内存的角度来看。除了将平台目标从32位更改为64位之外,还有什么我需要做或注意的吗?
答案 0 :(得分:1)
请确保您在Windows服务中使用的所有引用也在“任何”目标下编译,否则在尝试在64位服务中加载32位程序集时将遇到问题。
答案 1 :(得分:1)
答案是 - 取决于。你说:
我有几个针对32位但一直在64位操作系统上运行的Windows服务
如果您构建针对x86的应用程序 - 即使在64位计算机上仍然运行32位。
如果您要为AnyCPU构建服务,您的exe将表现如下:
在32位系统上,它将尝试加载为x86,所有组件必须是x86或AnyCpu
在64位系统上,它将尝试将x86构建的程序集加载为x86,并且所有组件必须仅为x86。如果您有一些COM或第三方 - 您可能需要编译x86
在64位系统上,它会将AnyCPU加载到x64上下文中,最好不要为x86构建任何依赖项。此外,您可以构建x64,优化代码。
因此,要回答您具体的原始句子,您需要(至少)定位AnyCPU或x64才能在x64环境中运行您的应用程序。如果它是针对x86构建的 - 您仍然在32位上下文中运行