使用新的dotnet核心,我们无法再从外部导入我们引用的dll,而是必须通过Nuget源。我想让Oracle.ManagedDataAccess
Nuget包与我的项目一起工作,但到目前为止还没有运气。
以下是project.json
文件中的错误:
说The dependency Oracle.ManagedDataAccess >= 12.1.24160419 could not be resolved.
这是Package Manager输出中的错误:
Project Oracle.ManagedDataAccess is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Project Oracle.ManagedDataAccess supports: net451 (.NETFramework,Version=v4.5.1)
这是否意味着我不能再使用这个包了?从我到目前为止所读到的,dotnet核心不支持.net framework v4.5.1。如果确实如此,我可以使用哪些替代方法连接到Oracle数据库?
答案 0 :(得分:1)
我刚看了Oracle.ManagedDataAccess NuGet包,我认为它不能在CoreClr上运行。首先,它有一个仅针对net40的dll,因此它可能使用CoreClr / CoreFx中不可用的某些API,或者依赖于框/ GAC中的内容。其次,它在bin \ x64和bin \ x86子文件夹中有本机二进制文件。我想即使你把这个包强制成netcoreapp1.0也可能无法正常工作。如果他们使用DllImport
属性导入这些dll,CoreClr将无法找到它们,因为包含本机资产的包的结构在新世界中有点不同。在我看来,由于这种依赖性,你的应用程序应该只针对完整的.NET(例如net451或更新版本)。