Azure 部署上的 ModuleInitializeException:缺少 Microsoft.Identity.Web.Certificate 版本 1.25.3 的依赖项

问题描述 投票:0回答:1

我在我的项目中使用 PackageReference Include="Microsoft.Identity.Web.Certificate" Version="1.25.3"。该应用程序在我的本地计算机上成功运行。但是,当部署到 Azure 中的任何环境时,我遇到 ModuleInitializeException 错误。此错误消息指出无法为模块加载“Azure.IdentityC:\home\site\platform pp_data\modules\TestModule.Web.dll.

PackageReference Application Event Logs -\> 错误

经过调查,我发现Azure环境中缺少以下库,导致了该问题:

  • Azure.Security.KeyVault.Secrets.dll
  • Microsoft.Identity.Client.Extensions.Msal.dll
  • Azure.Identity.dll

这些库似乎与 Microsoft.Identity.Web.Certificate 包相关。我尝试过升级和降级软件包版本,但问题仍然存在。有解决此错误的建议吗?

Missing Libraries
.net azure-web-app-service nuget-package microsoft-identity-web dllnotfoundexception
1个回答
0
投票

与缺少

Microsoft.Identity.Web.Certificate
依赖项相关的错误。

它在本地运行,但由于缺少库

Azure.Security.KeyVault.Secrets.dll
Microsoft.Identity.Client.Extensions.Msal.dll
Azure.Identity.dll
,在 azure 上失败。

这是因为

Microsoft.Identity.Web.Certificate
包与项目中的其他包之间存在版本冲突。

您正在使用

Microsoft.Identity.Web.Certificate
版本
1.25.3
,此版本仅支持
.netcore 3.1
.NETFramework 4.6.2
.NETFramework 4.7.2

根据此文档,如果您使用 .NET Core 版本 3.1 或 .NET Framework,

Microsoft.Identity.Web.Certificate
的相关包为
Azure.Identity
版本
>= 1.3.0
Azure.Security.KeyVault.Secrets
版本
>= 4.1.0

如果您使用的是 .NET Core 6 或更高版本,请使用最新版本的

Microsoft.Identity.Web.Certificate
版本
3.3.1

相关软件包的兼容版本请参考此文档

根据 .NET 版本更新包,然后删除

bin
obj
文件夹,并按照以下步骤清除所有 NuGet 缓存存储。

转到“工具”->“NuGet 包管理器”->“管理解决方案的 NuGet”->“设置符号”->“NuGet 包管理器”->“常规”->“清除所有 NuGet 存储”->“确定”。

enter image description here

enter image description here

在将应用程序重新部署到 Azure 应用服务之前,请使用 Kudu 控制台删除

wwwroot
文件夹中的所有文件,然后继续部署。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.