在 Unity3D 中使用 System.Data.SqlClient 时出现 PlatformNotSupportedException

问题描述 投票:0回答:1

所以我一直在开发一个用于工业用途的 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
的想法将不胜感激。最坏的情况我会硬着头皮做一个网络服务。谢谢!

c# sql-server unity3d
1个回答
0
投票

缺少用于在 Unity 中将 C# 连接到 SQL Server 的 .dll

  1. 您似乎缺少一些参考资料。您应该通过 NuGet 添加 Microsoft.Data.SqlClient 包,这将处理依赖关系

  2. 好吧,在尝试了有关添加.dll 的不同解决方案后,我发现项目设置不正确。因此,为了帮助可能遇到相同问题的任何人:我的解决方案是转到项目设置 -> 播放器 -> “配置”标题并确保“Api 兼容级别”在 .NET 4.X 上,而不是在 .NET 2.X 上

© www.soinside.com 2019 - 2024. All rights reserved.