我已在此处阅读有关如何设置 LARGEADDRESSAWARE 标志的信息,这是对我的 Windows 服务完成的。但是,此 Windows 服务托管基于另一个项目的 WCF 服务,并且此服务正在使用其他项目中的库等。
我需要整个应用程序来使用 LARGEADDRESSAWARE,是否可以在 Window Service 项目(ServiceBase)上设置它?还是我需要在所有项目上设置它?
此时我无法切换到 64 位,所以必须这样做。
我已在此处阅读有关如何设置 LARGEADDRESSAWARE 标志的信息,这是对我的 Windows 服务完成的。但是,此 Windows 服务托管基于另一个项目的 WCF 服务,并且此服务正在使用其他项目中的库等。
我需要整个应用程序来使用 LARGEADDRESSAWARE,是否可以在 Window Service 项目(ServiceBase)上设置它?还是我需要在所有项目上设置它?
此时我无法切换到 64 位,所以必须这样做。
它不是 IDE 公开的选项,您将通过在构建后事件中运行 editbin.exe 来打开它。 这个答案显示了您需要使用的命令。
但是请注意,您很可能在这方面浪费了精力。只有当操作系统能够提供支持“大地址”的执行环境。多年前使用 /3GB 引导选项就可以实现这一点,但不久前就不再有用了。对服务器也非常不利,它们确实需要内核地址空间。当您的服务器启动 64 位版本的 Windows 时,它仍然很有用,如果它们与 /LARGEADDRESSAWARE 链接,任何 32 位代码都可以获得 4 GB 的地址空间。但是,如果您有这样的操作系统,那么将项目的目标平台更改为 AnyCPU 无疑是利用 64 位进程中获得的更大地址空间的更有效率的方法。也许这不适用于您的具体情况,但这是最好的一般建议。