所以我一直在开发一个用于工业用途的 Unity 应用程序。我希望将它直接连接到我的 SQL Server 数据库。我不担心安全性或任何其他我会使用网络服务的事情,所以直接到数据库对这里的部署时间最有意义。
我有几个其他 DLL 作为外部插件加载到 Unity 中,例如
Newtonsoft.Json
、NModbus
和 Dapper
,所以我知道这个过程有效。但是,当我添加System.Data.SqlClient
时,出现以下错误:
PlatformNotSupportedException:此平台不支持 System.Data.SqlClient。 System.Data.SqlClient.SqlConnection..ctor (System.String connectionString) (at <96d33b42cd1045a395dc2ad162924ac9>:0)
此错误的堆栈跟踪是在此处调用构造函数调用库的第一个实例。
using (IDbConnection connection = new SqlConnection(ConnectionString))
{
Dictionary<string, AppSetting> dataset = new Dictionary<string, AppSetting>();
List<AppSetting> values = connection.Query<AppSetting>($"dbo.spGetAllAppSetting").AsList();
foreach (AppSetting v in values)
dataset.Add(v.Name, v);
return dataset;
}
我使用的获取.dll的过程是去Nuget.org,然后下载
System.Data.SqlClient v4.8.3
。然后,我将 .nupkg 的扩展名更改为 .zip,并将其解压缩。然后我进入lib/netstandard-2.0/
文件夹访问.dll。我检查了我的 Unity 设置,API 兼容性设置为 .NET Standard 2.0
.
然后我只需将 .dll 添加到我在 Unity 项目中创建的 Assets/Plugins 文件夹中。 DLL 加载到项目中并在编码过程中被识别。上面的错误只会在使用库中的方法时出现。
从那时起,我尝试了不同的版本,并使用了可用的 .NET Framework 4.6 版本以及与
Microsoft.Data.SqlClient
相同的过程,但在这些路由中发现了更多错误。
任何关于如何在 Unity 中正确使用
System.Data.SqlClient
的想法将不胜感激。最坏的情况我会硬着头皮做一个网络服务。谢谢!
缺少用于在 Unity 中将 C# 连接到 SQL Server 的 .dll
您似乎缺少一些参考资料。您应该通过 NuGet 添加 Microsoft.Data.SqlClient 包,这将处理依赖关系
好吧,在尝试了有关添加.dll 的不同解决方案后,我发现项目设置不正确。因此,为了帮助可能遇到相同问题的任何人:我的解决方案是转到项目设置 -> 播放器 -> “配置”标题并确保“Api 兼容级别”在 .NET 4.X 上,而不是在 .NET 2.X 上