我有一个v3队列触发函数,在我的Windows 10机器上一直工作得很好。.csproj文件是这样的:
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AzureFunctionsVersion>v3</AzureFunctionsVersion>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>
我不确定为什么我开始得到主题行中提到的异常,但底线是这个函数过去工作得很好。这个Stackoverflow的帖子对解决这个问题没有帮助。会不会是升级到Windows 11操作系统的原因?我没有在迁移到Windows 11后立即运行这个功能应用程序,所以我不能就此发表评论。
异常的完整堆栈跟踪如下:
无法加载文件或程序集'Microsoft.Extensions '。DependencyModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'。系统找不到指定的文件。在Microsoft.Azure.Functions.Extensions.DependencyInjection.FunctionsStartup.Configure (WebJobsBuilderContextcontext, IWebJobsBuilder builder)Microsoft.Azure.WebJobs.WebJobsBuilderExtensions.ConfigureStartup (IWebJobsStartupWebJobsBuilderContext上下文,webjobsbuilder构建器)C: 项目azure-webjobs-sdk-rqm4t src Microsoft.Azure.WebJobs.Host 托管 WebJobsBuilderExtensions.cs:行162
有什么可能的解决方案,因为它已经成为一个障碍?
要保留特定版本以避免升级到较新的版本,您可以将此条目添加到csproj
<ItemGroup>
<FunctionsPreservedDependencies Include="Microsoft.Extensions.DependencyModel.dll" />
</ItemGroup>
您可以尝试添加<_FunctionsSkipCleanOutput>true到函数的项目文件
:
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
</PropertyGroup>