无法在 Azure Pipeline 中构建 F# 项目

Not able to build F# project in Azure Pipeline

我在 dotnet core 2.2 中有一个 f# 项目,具有以下依赖项。

    <PackageReference Include="Expecto" Version="8.12.0" />
    <PackageReference Include="FSharp.Data" Version="3.3.2" />
    <PackageReference Include="FSharp.Data.SqlClient" Version="2.0.5" />

我可以在本地构建 运行 没有任何问题。 但是当尝试在 azure pipeline 上构建它时,我收到以下错误。

error FS3033: The type provider 'FSharp.Data.SqlCommandProvider' reported an error: Could not load file or assembly 'System.Data.SqlClient, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context.

我尝试添加 System.Data.SqlClient 包。但仍然没有工作。

    <PackageReference Include="Expecto" Version="8.12.0" />
    <PackageReference Include="FSharp.Data" Version="3.3.3" />
    <PackageReference Include="FSharp.Data.SqlClient" Version="2.0.6" />
    <PackageReference Include="SQLProvider" Version="1.1.26" />
    <PackageReference Include="System.Data.SqlClient" Version="4.5.1" />

当我尝试添加 System.Data.SqlClient Version="4.4.0" 时,我在本地出现以下错误

Detected package downgrade: System.Data.SqlClient from 4.5.1 to 4.4.0. Reference the package directly from the project to select a different version. ElbBazarApiComponentTest -> FSharp.Data.SqlClient 2.0.6 -> System.Data.SqlClient (>= 4.5.1) ElbBazarApiComponentTest -> System.Data.SqlClient (>= 4.4.0) ElbBazarApiComponentTest F:\ElbBazar\ElbBazarApi\ElbBazarApiComponentTest\ElbBazarApiComponentTest.fsproj

我不知道还能做什么。

Not able to build F# project in Azure Pipeline

根据报错信息:

Could not load file or assembly. Reference assemblies should not be loaded for execution.  They can only be loaded in the Reflection-only loader context.

它指出无法加载 文件或程序集而不是无法找到 文件或程序集。

此外,当我们检查nuget包FSharp.Data.SqlClient时,它有依赖项:

因此,该错误的原因不是我们丢失了引用 System.Data.SqlClient,而是我们无法加载它。

AFAIK,关于它有 issue on the github,您可以检查解决方法是否适合您,使用 MSBuild 而不是 dotnet build 来构建这个项目。

希望对您有所帮助。