关于Nuget包依赖项的Azure Function System.IO.NotFoundException

时间:2018-09-19 22:17:13

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

我遇到一个问题,我的azure函数在本地运行时会引发以下异常。

System.IO.FileNotFoundException: 'Could not load file or assembly 'System.Data.SqlClient,
     Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its 
     dependencies. The system cannot find the file specified.'

有关我的项目的一些信息:

  • Azure函数针对框架:.NET 4.6.1
  • Nuget软件包A的目标是.NET标准1.3。
  • Nuget程序包A也正在使用Nuget程序包B,它的目标框架是.NET标准1.2
  • Nuget软件包B依赖于Nuget软件包System.Data.SqlClient 4.5.1

因此,在我的Azure函数中,一切在编译时看起来都很好,但是当我运行该应用程序并进入Nuget程序包A中的方法调用时,遇到了上述异常。我注意到,如果我创建一个针对框架.NET 4.6.1的控制台应用程序,则一切工作正常! (超级困惑)。

所以这让我相信,在使用Microsoft.NET.Sdk时会引起一些兼容性问题,但是到目前为止,我还没有发现任何类似的问题。

这是我的Azure函数的.csproj:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Dapper" Version="1.50.5" />
    <PackageReference Include="Microsoft.ApplicationInsights" Version="2.7.2" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.21" />
    <PackageReference Include="NugetPackageA" Version="1.0.1.3" />
  </ItemGroup>
  <ItemGroup>
    <Reference Include="Microsoft.CSharp" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project> 

0 个答案:

没有答案