【问题标题】:SAP HANA connectivity from .Net Core application来自 .Net Core 应用程序的 SAP HANA 连接
【发布时间】:2020-02-24 02:31:09
【问题描述】:

我正在尝试做的事情:

  • 从 .Net Core 应用程序连接 HANA 数据库。 (Windows 环境)

我做了什么:

  • 已下载并安装适用于 Windows 的 HANA 客户端。使用文件夹“hdb_client_windows_x86_64”中的“hdbinst.exe”安装我明白了。
  • 从路径:C:\Program Files\sap\hdbclient\dotnetcore\v2.1 为文件“Sap.Data.Hana.Core.v2.1.dll”创建了一个 NuGet 包
  • 通过 NuGet 包管理器将此文件安装到我的示例 .Net Core 2.1 项目中。

我正在经历的事情:

  • 警告 1 --> 警告 NU1701。包“SAP.HANADBClient.NetCore 2.1.0”是使用“.NETFramework,Version=v4.6.1”而不是项目目标框架“.NETCoreApp,Version=v2.1'。此软件包可能与您的项目不完全兼容。
  • 警告 2 --> 警告 MSB3270。正在构建的项目“MSIL”的处理器架构与参考“C:\Users\XXXXX.nuget\packages\sap.hanadbclient.netcore\2.1.0\lib\Sap.Data”的处理器架构不匹配.Hana.Core.v2.1.dll”、“AMD64”。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改项目的目标处理器架构,以使您的项目和参考之间的处理器架构保持一致,或者依赖与您项目的目标处理器架构相匹配的处理器架构的参考。
  • .Net Core 2.2 项目的类似案例

我环顾四周:

  • 我在网上进行了搜索,发现很少有成员已经分享过此类问题(.Net core with HANA integration)。但是看到this 帖子说问题已经解决了。但它好吗?不确定。
  • 甚至this 的帖子都说 HANA 支持 .Net Core。
  • 在网上搜索过,但找不到解决方案。

我在寻找什么:

  • 为什么我会收到这两个警告?
  • 以后会不会出现任何问题?(prod runtime..)
  • 特别是 - 第二个警告 - 为什么它正在寻找“处理器架构”,以及如何解决这个问题。

我可以请求你们中的任何人帮助我完成这项工作吗? 请让我知道还需要更多详细信息。

提前致谢。

【问题讨论】:

  • 您最近是否将项目从 .NET 4.6.1 升级到 .NET Core 2.1 或 2.2?如果是这样,您可能只需要重新安装 NuGet 包,因为您的项目运行时已更改。
  • 感谢您的回复!不,我没有。使用 .Net Core 创建项目。
  • Shan,你试过用update-package -reinstall这样的命令重新安装你所有的包吗?参考。 docs.microsoft.com/en-us/nuget/consume-packages/…
  • 我刚刚尝试了这个命令(以及 -source 参数,因为我创建了我的本地包 repo)。 Update-Package -Reinstall -Source 没有帮助。得到此响应:基于传递包管理的项目 不遵守“源”参数。将使用 NuGet 配置中启用的源。项目“”的当前包源中没有可用的包更新。注意:我的 pckg 文件中没有任何更新。
  • 你试过卸载然后重新安装包吗?

标签: c# .net-core hana


【解决方案1】:

要缩小问题范围,尝试将 Sap.Data.Hana.Core.v2.1.dll 库直接添加到您的 .NET Core 2.1 项目中(不是通过 NuGet),然后查看是否收到编译警告。

如果您没有收到警告,很可能是您的 NuGet 包导致了问题。

如果是这样,你是如何创建你的包的?如果您使用SDK-style 创建它,请检查TargetFramework 以确保将其设置为正确的 TFM 或 TxM 为 described here

另外,根据this answer确保您使用的是正确版本的 DLL, x86 或 x64。

【讨论】:

  • 是的!我能够清除这两个警告。感谢您一直以来的帮助。警告#1:两种方式都可以清除。 - 如果我通过浏览 dll 直接添加引用,它会解决(不使用 NuGet)。 - 而且如果我在创建包时遵循文件夹层次结构(使用 NuGet Explorer),它会解决。
  • 不客气!所以,这是个好消息!关于处理器架构的第二个警告呢?您是否确保下载了正确的 DLL,无论是 x86 还是 x64?最后,您是否尝试过使用 SDK 样式重新创建 NuGet 包并检查项目设置的 TargetFramework 以确保它使用正确的 TFM 或 TxM?
  • 第二个也被清除了。 (我正要在我的上一条评论中添加它,但在进入我的 cmets 时离开了一半。它已发布!!)过去我尝试通过 Build\Configuration Manager 将项目平台更改为 x64,但有些方法并没有多大帮助.我又试了一次,它起作用了。所以,现在两个警告都消失了。再次感谢。保重。
  • 珊,不客气,伙计!请随时接受我的回答或发表您自己的回答。
猜你喜欢
  • 1970-01-01
  • 2017-05-20
  • 1970-01-01
  • 2020-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-09
相关资源
最近更新 更多