Azure DevOps 自托管代理上的此平台不支持 System.Data.SqlClient

时间:2021-07-14 10:20:47

标签: c# asp.net-core azure-devops

我正在我的自托管代理上运行 UI 测试,尝试恢复数据库时,我收到以下错误消息:

<块引用>

[错误] System.Data.SqlClient 在此平台上不受支持。

这些是我的依赖

  <ItemGroup>
    <PackageReference Include="Appium.WebDriver" Version="4.3.1" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
    <PackageReference Include="Microsoft.VisualStudio.TestPlatform" Version="14.0.0" />
    <PackageReference Include="SpecFlow.Plus.LivingDocPlugin" Version="3.9.5" />
    <PackageReference Include="SpecRun.SpecFlow" Version="3.9.7" />
    <PackageReference Include="FluentAssertions" Version="5.10.3" />
    <PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
  </ItemGroup>

我的 buildpipline 工作正常,看起来像这样: enter image description here

当在代理机器上运行 dotnet --info 时,我得到以下输出

 Version:   2.1.524
 Commit:    ab11250770

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17763
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.524\

Host (useful for support):
  Version: 2.1.28
  Commit:  612cb8b183

.NET Core SDKs installed:
  2.1.524 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.28 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.28 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.28 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

有什么想法吗?

编辑: 在运行我的程序的发布管道中,我需要添加 Use .NET Core sdk 2.1.816 任务。

enter image description here

但现在我得到一个不同的错误:

<块引用>

[错误] 'System.Data.SqlClient.TdsParser' 的类型初始值设定项引发异常。 -> 'System.Data.SqlClient.SNILoadHandle' 的类型初始值设定项引发异常。 -> 无法加载 DLL 'sni.dll' 或其依赖项之一:找不到指定的模块。 (来自 HRESULT 的异常:0x8007007E)

1 个答案:

答案 0 :(得分:0)

如果您使用的是 .NET Core 2.x,但您的 SDK 版本高于 2.x 或更低,请继续根据您的 .net Core 版本将其升级到类似版本。例如- 2.1.2/2.3.2/2.3.1/2.2.1 等

因此您的 System.Data.SqlClient 版本应遵循此规则。您可以根据规则升级此版本。

我认为它会解决您的问题。

更新

将此添加到您的 function .csproj file’s <PropertyGroup>

<SkipFunctionsDepsCopy>true</SkipFunctionsDepsCopy>

enter image description here