我正在azure函数中运行以下insert
代码到azure sql server 2014数据库中:
private static void Command(SqlConnection sqlConnection, string query)
{
var sqlCommand = new SqlCommand(query, sqlConnection);
try
{
sqlConnection.Open();
sqlCommand.ExecuteNonQuery();
}
finally
{
sqlConnection?.Close();
}
}
并收到以下异常:
该平台不支持System.Data.SqlClient
以下是其使用的依赖项链:
如何从我的应用程序运行一个简单的sql命令?我在做什么错了?
答案 0 :(得分:6)
如果您不需要最新的稳定版本4.6.0
,只需恢复为4.5.1
即可。
否则,解决方法是自行加载程序集。右键单击“函数”项目,然后单击Edit <FunctionAppName>.csproj
,在下面添加以下项目,以将相关程序集复制到输出目录。
<!-- For publish -->
<ItemGroup>
<None Include="$(USERPROFILE)\.nuget\packages\system.data.sqlclient\4.6.0\runtimes\win\lib\netcoreapp2.1\System.Data.SqlClient.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<!-- For local debug -->
<Target Name="CopyToBin" BeforeTargets="Build">
<Copy SourceFiles="$(USERPROFILE)\.nuget\packages\system.data.sqlclient\4.6.0\runtimes\win\lib\netcoreapp2.1\System.Data.SqlClient.dll" DestinationFolder="$(OutputPath)\bin" />
</Target>
有https://mapr.com/docs/61/AdvancedInstallation/Env_Variables_Installer_Container.html跟踪此程序集引用问题。
答案 1 :(得分:3)
在我的情况下,我通过在Azure的FunctionApp中的FunctionAppSettings下将运行时版本3更改为2来解决了此问题
答案 2 :(得分:1)
我已将System.Data.SqlClient降级为4.6.0,然后为我工作
答案 3 :(得分:1)
我刚遇到一个Azure Functions实例,该实例已以某种方式配置为使用.NET Core 3.0.0。我将配置设置FUNCTIONS_EXTENSION_VERSION
从beta
更改为~2
。重新启动它后,它又回到了使用2.0.x的状态,该错误消失了。
答案 4 :(得分:0)
如果您使用的是EF Core,则似乎可以使用v2.1.4。