Функция Azure System.IO.NotFoundException при зависимости пакета Nuget - PullRequest
0 голосов
/ 20 сентября 2018

У меня проблема с тем, что моя функция 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 также использует пакет B Nuget, который предназначен для инфраструктуры таргетинга: стандарт .NET1.2
  • Пакет Nuget B зависит от пакета Nuget System.Data.SqlClient 4.5.1

Так что в моей функции Azure все выглядит хорошо во время компиляции, но когда яперейти к запуску приложения, и я получаю вызов метода в Nuget Package A, я получаю выше исключение.Я замечаю, что если я создаю консольное приложение, предназначенное для платформы .NET 4.6.1, все работает нормально!(в замешательстве).

Так что мне остается верить, что есть какая-то проблема совместимости, вызывающая это при использовании Microsoft.NET.Sdk, но я пока не обнаружил подобной проблемы.

Это .csproj моей функции Azure:

<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> 
...