我有一些用Java编写的REST服务,我需要在ASP.NET中重写。我不习惯MS世界,但想想它有多难,对吗?
所以我去了Visual Studio 2017.创建了一个" ASP.NET核心Web应用程序(.NET Core)"项目。这似乎是正确的事情。
开始为REST服务编写一些代码,但是当它有时间整合MySQL时,问题就开始了。
依赖性 - >管理NuGet包 - >安装MySQL.Data 6.9.9生成:
Package MySql.Data 6.9.9 is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). Package MySql.Data 6.9.9 supports:
- net40 (.NETFramework,Version=v4.0)
- net45 (.NETFramework,Version=v4.5)
One or more packages are incompatible with .NETCoreApp,Version=v1.1.
哦,好好阅读MySQL Connetcor NET 7.x应该解决这个问题。在MySQL下载站点上访问MySQL Connetcor NET 7.07。
安装它并将C:\ Program Files(x86)\ MySQL \ MySQL Connector Net 7.0.7 \ Assemblies \ v4.5.1 \ MySql.Data.dll添加到项目依赖项 - >组件。
编译问题:
MySqlConnection con ...;
conn.Open(); <--------
错误CS0012类型&#39; DbConnection&#39;在未引用的程序集中定义。您必须添加对程序集&System; System.Data,Version = 4.0.0.0
的引用好的,所以加入: C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Data.dll
同一行的新错误:
Error CS0012 The type 'Component' is defined in an assembly that is not referenced. You must add a reference to assembly 'System, Version=4.0.0.0
好的,所以加入: C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.dll
同一行的新错误:
Error CS0012 The type 'MarshalByRefObject' is defined in an assembly that is not referenced. You must add a reference to assembly'mscorlib, Version=4.0.0.0
好的,所以加入: C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ mscorlib.dll
现在,60个错误如:
Error CS0518 Predefined type 'System.Void' is not defined or imported
Error CS0518 Predefined type 'System.String' is not defined or imported
Error CS0518 Predefined type 'System.Object' is not defined or imported
ARH!我在这里缺少什么?
我以为我导入了错误的库,所以我查看了: C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETCore \ v4.5
(注意.Netcore而不是.Netframework子目录)
但在这里: System.Data.dll无法使用。我猜System.Data.dll无法用于.NETCore?
任何帮助都会得到满足!如何从ASP.NetCore应用程序运行MySQL?
干杯!