我正在使用 C# 的目标框架创建 Azure 函数netstandard2.0
在 Windows 10 环境中。该函数调用另一个类库中的方法,并且该方法创建 SqlConnection 的实例。当我运行该函数时,出现以下异常:
Microsoft.Azure.WebJobs.Host.FunctionInitationException:异常
执行函数时:Functions.RefreshImages --->
System.Reflection.TargetInitationException:异常已
由调用的目标抛出。 --->
System.PlatformNotSupportedException:System.Data.SqlClient 不是
在此平台上支持。在
System.Data.SqlClient.SqlConnection..ctor(String connectionString)......
显然 Windows 支持 SqlConnection,所以我认为这里还发生了其他事情。
当通过反射动态加载使用 SqlConnection 的 .Net Standard 库时,会发生这种情况。 .Net 标准库通常会引用System.Data.SqlClient
这似乎是一个没有实际实现的虚拟库。它显然确保该库可以在所有平台上编译,包括那些没有注册表的平台以及真正的 SqlClient 实现所依赖的其他特定于平台的东西。
我能找到的最简单的解决方案是添加对Microsoft.Data.SqlClient
主机应用程序中的 NuGet 包(动态加载 .Net 标准库的 .Net core 应用程序)。
您可能会在解决方案资源管理器中看到一个小的黄色警告感叹号图标,因为 Visual Studio 认为您没有使用该库,如果您使用“删除未使用的引用”功能,它还会建议删除该包。有一个功能可以抑制 PropertyGrid 中的警告,但我无法弄清楚应该填写 wat 编号,因为编译时警告不会出现在错误列表中...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)