.NET项目中64位版本DLL的要求 简介要求我尝试过的事情问题

问题描述

简介

我正在开发一个.net项目,其中使用了一些32位版本的DLL。 DLL的列表是:

  1. 系统。*
  2. 微软。*
  3. AWSSDK。*
  4. Npgsql.dll
  5. Newtonsoft.Json.dll
  6. 其他供应商提供的其他dll

(DLL列表的长度实际上太长,因此无法在本篇文章中附加,但不要太长。)

要求

我只需要64位版本的DLL,目前,我手中只有32位版本的DLL。

我尝试过的事情

我使用名为SigCheck的工具验证了DLL的版本。

我尝试使用以下方法查找/转换DLL版本:

  1. 我在Internet和NuGet软件包管理器上进行了搜索,但找不到64位DLL。
  2. 我尝试通过更改项目属性下的以下设置将项目重新编译为64位: -构建->平台目标-> x64

编译后,项目DLL被转换为64位。但是,其余项目DLL的版本没有更改。

问题

如果有人可以共享文档链接/步骤将32位DLL转换为64位版本,我将不胜感激?

有人可以给我们发送链接以找到给定DLL的重新编译的64位版本吗?

请注意,我正在使用.NET Framework 4.6

解决方法

托管的.Net dll通常与平台无关。因此,对于大多数库而言,您无需担心,只需使用nuget来引用这些库,那么您应该会很好。 JIT编译器将负责根据平台将程序集编译为64/32位。

在编译dll时指定的平台目标仅在dll中设置一个标志。可以使用CorFlags更改此标志,但是如果它具有32位标志,则可能是有原因的。

当您需要使用本机程序集(即c ++ dll)时,通常会出现大问题。这些需要特定于平台。最好的解决方案是获取这些DLL的64位版本,但是您需要从libray的供应商那里获取它们,并更新项目中的引用。如果无法获得64位版本,最常见的解决方法是在单独的32位进程中运行该库。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...