C# 将应用程序从32位移动到64位

C# 将应用程序从32位移动到64位,c#,windows,32bit-64bit,C#,Windows,32bit 64bit,我们有一个用C语言编写的Windows服务应用程序,面向任何CPU。它在Win2003(32位)服务器上运行。最近它开始耗尽内存 将此服务重新部署到Win2003(64位)机箱所涉及的内容。我是否需要重新编译它?如果我不重新编译,应用程序是否会获得更多内存?如果为任何CPU设置了exe,则没有什么特别之处-默认情况下,64位CLR将在64位机器上加载。你只需要确保你真的准备好了任何CPU(没有不安全或安全的32位指针数学假设,等等)。如果您运行的所有托管代码都没有Pinvoke,那么您应该状态良

我们有一个用C语言编写的Windows服务应用程序,面向任何CPU。它在Win2003(32位)服务器上运行。最近它开始耗尽内存


将此服务重新部署到Win2003(64位)机箱所涉及的内容。我是否需要重新编译它?如果我不重新编译,应用程序是否会获得更多内存?

如果为任何CPU设置了exe,则没有什么特别之处-默认情况下,64位CLR将在64位机器上加载。你只需要确保你真的准备好了任何CPU(没有不安全或安全的32位指针数学假设,等等)。如果您运行的所有托管代码都没有Pinvoke,那么您应该状态良好。

真正的问题是:您的内存不足是因为应用程序存在某种缺陷,还是仅仅因为您确实需要那么多内存?如果您正在泄漏,移动到64位只会延长不可避免的时间。这是一个字母打印应用程序。每个模板都是将数据xml转换为wordml文件的XSL。每个模板的尺寸约为300k。最近,模板的数量几乎翻了一番。我们将更好地将它们保留在内存中,但我需要一种短期解决方案