.NET 项目中 64 位版本 DLL 的要求
Requirement of 64-bit version DLLs in a .NET project
简介
我正在开发一个 .net 项目,其中我使用了一些 32 位版本的 DLL。 DLL 列表为:
- 系统.*
- 微软。*
- AWSSDK.*
- Npgsql.dll
- Newtonsoft.Json.dll
- 来自其他供应商的一些其他 dll
(DLL 列表实际上太长了,无法附加到此 post 中而不会太长。)
要求
我只需要 64 位版本的 DLL,目前我手上只有 32 位版本的 DLL。
我尝试过的事情
我使用名为 SigCheck 的工具验证了 DLL 的版本。
我尝试使用以下方法 find/convert DLL 版本:
- 我在 Internet 和 NuGet 包管理器上进行了搜索,但找不到 64 位 DLL。
- 我尝试通过更改项目属性下的以下设置将项目重新编译为 64 位:
- 构建 -> 平台目标 -> x64
编译完成后,工程DLL转为64位。但是,其余项目 DLL 的版本没有改变。
问题
如果有人可以共享文档 links/steps 将 32 位版本的 DLL 转换为 64 位版本,我将不胜感激?
或
有人可以向我们发送 link 以查找给定 DLL 的重新编译的 64 位版本吗?
请注意,我使用的是 .NET Framework 4.6
托管 .Net dll 通常与平台无关。因此,对于大多数库,您无需担心,只需使用 nuget 来引用库就可以了。 JIT 编译器将根据平台将程序集编译为 64/32 位。
您在编译dll 时指定的平台目标仅在dll 中设置一个标志。可以使用 CorFlags 更改此标志,但如果它具有 32 位标志,则可能是有原因的。
当您需要使用本机程序集(即 c++ dll)时,通常会出现大问题。这些需要特定于平台。最好的解决方案是获取这些 DLL 的 64 位版本,但您需要从库供应商处获取它们并更新项目中的引用。如果无法获得 64 位版本,最常见的解决方法是 运行 将库放在单独的 32 位进程中。
简介
我正在开发一个 .net 项目,其中我使用了一些 32 位版本的 DLL。 DLL 列表为:
- 系统.*
- 微软。*
- AWSSDK.*
- Npgsql.dll
- Newtonsoft.Json.dll
- 来自其他供应商的一些其他 dll
(DLL 列表实际上太长了,无法附加到此 post 中而不会太长。)
要求
我只需要 64 位版本的 DLL,目前我手上只有 32 位版本的 DLL。
我尝试过的事情
我使用名为 SigCheck 的工具验证了 DLL 的版本。
我尝试使用以下方法 find/convert DLL 版本:
- 我在 Internet 和 NuGet 包管理器上进行了搜索,但找不到 64 位 DLL。
- 我尝试通过更改项目属性下的以下设置将项目重新编译为 64 位: - 构建 -> 平台目标 -> x64
编译完成后,工程DLL转为64位。但是,其余项目 DLL 的版本没有改变。
问题
如果有人可以共享文档 links/steps 将 32 位版本的 DLL 转换为 64 位版本,我将不胜感激?
或
有人可以向我们发送 link 以查找给定 DLL 的重新编译的 64 位版本吗?
请注意,我使用的是 .NET Framework 4.6
托管 .Net dll 通常与平台无关。因此,对于大多数库,您无需担心,只需使用 nuget 来引用库就可以了。 JIT 编译器将根据平台将程序集编译为 64/32 位。
您在编译dll 时指定的平台目标仅在dll 中设置一个标志。可以使用 CorFlags 更改此标志,但如果它具有 32 位标志,则可能是有原因的。
当您需要使用本机程序集(即 c++ dll)时,通常会出现大问题。这些需要特定于平台。最好的解决方案是获取这些 DLL 的 64 位版本,但您需要从库供应商处获取它们并更新项目中的引用。如果无法获得 64 位版本,最常见的解决方法是 运行 将库放在单独的 32 位进程中。