【问题标题】:DB2 connectivity from .NEt core 2.1来自 .NET core 2.1 的 DB2 连接
【发布时间】:2019-02-19 09:29:34
【问题描述】:

我正在尝试从 .NET 核心应用程序连接到 DB2 数据库。我的代码需要在 Linux 堆栈中的 PCF 中运行。然而,代码开发和 Jenkins 构建发生在 Windows 服务器上。我的问题是,要让 DB2 与 .NET 核心一起正常工作,我们需要为 Windows 添加单独的引用,在 Linux 中添加单独的引用。对于 Windows,它将是 <PackageReference Include="IBM.Data.DB2.Core" Version="1.2.2.100" />            <PackageReference Include="IBM.EntityFrameworkCore" Version="1.2.2.100" />

对于 Linux,它将是 <PackageReference Include="IBM.Data.DB2.Core-lnx" Version="1.2.2.100" />            <PackageReference Include="IBM.EntityFrameworkCore-lnx" Version="1.2.2.100" />

现在的问题是如何在构建期间将 DB2 引用从 Windows 更改为 Linux? 我还有构建完成后需要运行的集成测试。由于 Jenkins 服务器是 windows,post build,我需要有 DB2 windows 参考库,并且在部署之前我需要将它更改为 Linux,以便它可以部署在 Linux 堆栈中?

【问题讨论】:

    标签: .net-core db2


    【解决方案1】:

    您可以在您的包引用周围使用“选择/何时”;看看这个链接: choose when。将您的 linux 引用绑定到 $(Configuration)'=='Release' 并将您的 windows 引用绑定到 $(Configuration)'=='Debug' 下,或者如果调试/发布不可用,则创建一些新的解决方案配置。

    【讨论】:

    • 不,这仍然不能解决我的问题。这会导致更多的混乱 1)我实际上并没有测试我有集成测试的包。如果某些东西在 Windows 上运行但由于 Linux 驱动程序而失败怎么办 2) 我将我的 DB 层创建为 NuGet 包。所以我最终将创建两个 nuget 包而不是一个。因此,我将选择复杂性的这种复杂性推向所有消耗的服务。可能有大约 15 种不同的服务。我需要在包装器级别阻止这种差异,以便它对我的服务透明
    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 2021-09-26
    相关资源
    最近更新 更多