【问题标题】:Azure Function - System.Data.SqlClient is not supported on this platformAzure 函数 - 此平台不支持 System.Data.SqlClient
【发布时间】:2019-05-25 22:01:34
【问题描述】:

我正在将我的 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 命令?我做错了什么?

【问题讨论】:

  • 在 Windows Server 2016、.NET Core 2.1.6 的生产环境中,我遇到了同样的问题。我没有直接引用 System.Data.SqlClient v4.6.0 的 nuget 包。所以我不知道它是如何更新的,也不知道如何删除或恢复它......

标签: c# azure .net-core azure-functions


【解决方案1】:

如果您不需要最新的稳定版本 4.6.0,只需恢复为 4.5.1 即可。

否则解决方法是自行加载程序集。右键Function项目和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>

有一个issue 跟踪此程序集引用问题。

【讨论】:

  • 我尝试使用 4.8 仍然会抛出相同的异常,但 4.5.1 工作正常
  • Mac 上的 VS - 这可行,但您需要将反斜杠更改为斜杠。
【解决方案2】:

我已将 System.Data.SqlClient 降级到 4.6.0 然后它对我有用

【讨论】:

  • 还必须添加对函数应用项目 csproj 的 nuget 包引用。
  • 乔伊,你是什么意思?
【解决方案3】:

我刚刚遇到了一个 Azure Functions 实例,该实例以某种方式配置为使用 .NET Core 3.0.0。我将配置设置 FUNCTIONS_EXTENSION_VERSION 从 beta 更改为 ~2。我重新启动它后,它又回到使用 2.0.x 并且这个错误消失了。

【讨论】:

    【解决方案4】:

    在我的情况下,我通过在 Azure 的 FunctionApp 中的 FunctionAppSettings 下将运行时版本 3 更改为 2 解决了这个问题

    【讨论】:

      【解决方案5】:

      如果您使用的是 EF Core,v2.1.4 似乎可以工作。

      【讨论】:

        猜你喜欢
        • 2018-08-27
        • 2019-12-29
        • 2021-01-05
        • 1970-01-01
        • 2019-01-25
        • 2019-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多