Обновите мою функцию Azure с .net Core 3.1 до .net Core 7.0. Ошибка «Не удалось загрузить файл или сборку Microsoft.Extensions.Configuration.Abstraction
У меня есть функция Azure, которая работает на .net core 3.1, но когда я меняю версию .net с 3.1 на 7, я получаю эту ошибку:-
System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.'
вот снимок экрана:-
вот мой файл csproj:-
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.15.0" />
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.11" />
<PackageReference Include="PnP.Core.Auth" Version="1.8.0" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>
Любые советы по этому поводу, пожалуйста?
я установилInstall-Package Microsoft.Extensions.Configuration.Abstractions -Version 7.0.0
но и это не решило проблему.
1 ответ
- .NET 3.1 находится в процессе, а .NET 7 — тип изолированного рабочего процесса.
- Я вижу ваш код файла .csproj , указанный в вопросе, что вы изменили только .NET Framework и версию функций Azure, которая не является полным кодом конфигурации для функции Azure изолированного процесса .NET 7, а также вам не хватает нескольких ссылок на пакеты Function Worker вкод файла.
- Проект изолированных функций Azure Basic/Default .NET 7 содержит приведенный ниже код в
.csproj
файл:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
<OutputType>Exe</OutputType>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.8.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.7.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Http" Version="3.2.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="7.0.0" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Using Include="System.Threading.ExecutionContext" Alias="ExecutionContext" />
</ItemGroup>
</Project>
- .NET 7 In-Process еще не выпущен, и для преобразования .NET 3.1 (внутрипроцессная модель) в .NET 7 (изолированный рабочий процесс) вам необходимо написать .NET 7 изолированные совместимые пакеты NuGet, изменения кода в Код функции,
program.cs
файл и т. д.,
См. этот документ MS , чтобы узнать об этапах миграции и проверках функций Azure с версии 3 на версию 4, а также в одном из моих ответов SO № 74428448 указано обновление поддерживаемой доступной версии в функциях Azure C#.