我创建了一个 powershell 脚本,它加载一些大 (50MB+) XML 文件并从中检索一些值。它可以作为独立脚本正常工作(但速度很慢)。
当我从 msbuild proj 文件中调用 .ps1 时,它正常启动,但随后在加载带有 System.OutOfMemoryException 异常的大 XML 文件时死掉。
"C:\Program Files (x86)\MSBuild\12.0\Bin\msbuild.exe" Test.proj
电源外壳 4.0
我的解决方法是使用 XMLReader 而不是 XMLDocument,这样它就可以进行顺序读取,工作速度更快,并且不会在 MSBUILD 下死掉。
尽管我对我的解决方法感到满意,但我仍然想知道为什么在从 msbuild 任务执行 ps1 时会有内存限制?
32 位版本的 MSBUILD 是罪魁祸首吗?还是设计使然?