重新/重新定位System.Runtime.Serialization程序集

时间:2011-11-22 21:18:55

标签: c# .net

我需要最小化私有WS内存以便在Citrix /终端服务环境中运行。查看我在vmmap中的进程,最高的私有WS映像(大约1 MB)是System.Runtime.Serialization.ni.dll。通过在Process Explorer中突出显示重定位的DLL,我可以看到这个dll已被重新定位。我的理解是,不能共享重新定位的本机映像,因此高级私有WS。此外,在Win7上运行时,它没有重新定位(由于ASLR),而私有WS只有32 KB。

我创建了一个简单的.Net控制台应用程序,除了System.Runtime.Serialization.dll之外没有任何引用 - 它仍然被重新命名,其私有WS为1 MB。 Dumpbin.exe显示其图像库为79530000 (79530000 to 7961FFFF)。我看不出它与之相矛盾的是什么。最近的图像加载在:

790C0000 - mscorlib.dll (790C0000 to 79519FFF according to dumpbin)
79E70000 - mscorwks.dll

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

al.exe可用于设置程序集的加载地址(选项/base[address])。

但是,除非你在加载时遇到性能问题(并控制足够的加载程序集),否则这不太可能有任何区别。