您当前的位置:钢材 > 型钢 > 市场分析

怎样启用net 3.5 sp1,启用net 3.5

来源:头条 作者: chanong
分享到
关注德勤钢铁网在线:
  • 扫描二维码

    关注√

    德勤钢铁网微信

在线咨询:
  • 扫描或点击关注德勤钢铁网在线客服

昨天分享了《如何让.NET应用使用更大的内存》,有同学说他们很多遗留项目不能用32位迁移,所以最好加32位,开辟大内存。事实证明这一切非常简单。

如何查看Large Address Aware(Large Address Aware[3G交换机])最常用的工具是dnSpy(可以在参考资料中下载)

打开此软件,将经过验证的MemeryTest(32)应用程序直接拖入其中,以显示组装相关信息。当您在步骤的第二步中编辑模块时,您将看到该应用程序的PE 标头。

可以看到,默认是i386机器,并且没有选择默认大地址支持。

64位应用程序默认是AMD64机器,默认选择Large Address Aware。这也符合我昨天分享的文章中所说的。默认情况下启用64 位应用程序。

.Net 8 应用程序我碰巧检查了一个现代的.Net 8 应用程序,发现dnSpy 标头信息是:

您可以直接在文件头中看到结果。

如何更改和启用Large Address Aware(大地址感知[3G交换机])dnSpy 最简单的解决方案是使用dnSpy,直接勾选复选框,然后保存项目。

再次打开,你会看到它发生了变化。

editbin.exe 和dumpbin.exe 工具包含在Visual Studio 中。我的工具路径是:

C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.38.33130\bin\Hostx86\x86 然后使用以下相关命令更改(启用)应用程序的3G 开关: 待办事项。

.\editbin.exe /largeaddressaware \'E:\MemoryTest.exe\'使用以下命令验证更改是否成功:

.\dumpbin.exe /headers \'E:\MemoryTest.exe\'具体的例子是:

默认情况下,不启用32 位应用程序的查看。

通过输入

输入.\editbin.exe /largeaddressaware \'E:\MemoryTest\bin\x86\Debug\MemoryTest.exe\' 后,它看起来像这样:

设置完成后,再次查看,已经启用。

dotnetCampus.LargeAddressAware 这是我在搜索时发现的另一个很棒的库,它的介绍支持.NET Core 和.NET Framework。

使用起来也非常简单,直接应用nuget包即可。

编译生成的时候可以直接看到3G开关打开了。

使用方法非常简单

实际的原理分析可以看这张图,实际上是用微软提供的工具修改的。

从工程中可以看到编译时开关是打开的。很好的解决方案。

综上所述,大多数仍然使用32位应用程序的场景都是在非常旧的环境中运行的传统旧项目。 (几百G的内存应该超过一切)。

再次感谢所有提供反馈的人。

代码地址https://github.com/kesshei/MemeryTest.git

https://gitee.com/kesshei/MemeryTest.git

参考地址:《dnspy》 https://github.com/dnSpy/dnSpy 《dotnetCampus.LargeAddressAware》 https://github.com/dotnet-campus/dotnetCampus.LargeAddressAware 一键连续读取3次。谢谢老大的支持,您的支持就是我的动力!

责任编辑:德勤钢铁网 标签:

热门搜索

相关文章

广告
德勤钢铁网 |市场分析

怎样启用net 3.5 sp1,启用net 3.5

chanong

|

昨天分享了《如何让.NET应用使用更大的内存》,有同学说他们很多遗留项目不能用32位迁移,所以最好加32位,开辟大内存。事实证明这一切非常简单。

如何查看Large Address Aware(Large Address Aware[3G交换机])最常用的工具是dnSpy(可以在参考资料中下载)

打开此软件,将经过验证的MemeryTest(32)应用程序直接拖入其中,以显示组装相关信息。当您在步骤的第二步中编辑模块时,您将看到该应用程序的PE 标头。

可以看到,默认是i386机器,并且没有选择默认大地址支持。

64位应用程序默认是AMD64机器,默认选择Large Address Aware。这也符合我昨天分享的文章中所说的。默认情况下启用64 位应用程序。

.Net 8 应用程序我碰巧检查了一个现代的.Net 8 应用程序,发现dnSpy 标头信息是:

您可以直接在文件头中看到结果。

如何更改和启用Large Address Aware(大地址感知[3G交换机])dnSpy 最简单的解决方案是使用dnSpy,直接勾选复选框,然后保存项目。

再次打开,你会看到它发生了变化。

editbin.exe 和dumpbin.exe 工具包含在Visual Studio 中。我的工具路径是:

C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.38.33130\bin\Hostx86\x86 然后使用以下相关命令更改(启用)应用程序的3G 开关: 待办事项。

.\editbin.exe /largeaddressaware \'E:\MemoryTest.exe\'使用以下命令验证更改是否成功:

.\dumpbin.exe /headers \'E:\MemoryTest.exe\'具体的例子是:

默认情况下,不启用32 位应用程序的查看。

通过输入

输入.\editbin.exe /largeaddressaware \'E:\MemoryTest\bin\x86\Debug\MemoryTest.exe\' 后,它看起来像这样:

设置完成后,再次查看,已经启用。

dotnetCampus.LargeAddressAware 这是我在搜索时发现的另一个很棒的库,它的介绍支持.NET Core 和.NET Framework。

使用起来也非常简单,直接应用nuget包即可。

编译生成的时候可以直接看到3G开关打开了。

使用方法非常简单

实际的原理分析可以看这张图,实际上是用微软提供的工具修改的。

从工程中可以看到编译时开关是打开的。很好的解决方案。

综上所述,大多数仍然使用32位应用程序的场景都是在非常旧的环境中运行的传统旧项目。 (几百G的内存应该超过一切)。

再次感谢所有提供反馈的人。

代码地址https://github.com/kesshei/MemeryTest.git

https://gitee.com/kesshei/MemeryTest.git

参考地址:《dnspy》 https://github.com/dnSpy/dnSpy 《dotnetCampus.LargeAddressAware》 https://github.com/dotnet-campus/dotnetCampus.LargeAddressAware 一键连续读取3次。谢谢老大的支持,您的支持就是我的动力!


市场分析