我在我的项目中使用 PackageReference Include="Microsoft.Identity.Web.Certificate" Version="1.25.3"。该应用程序在我的本地计算机上成功运行。但是,当部署到 Azure 中的任何环境时,我遇到 ModuleInitializeException 错误。此错误消息指出无法为模块加载“Azure.Identity” C:\home\site\platform pp_data\modules\TestModule.Web.dll.
经过调查,我发现Azure环境中缺少以下库,导致了该问题:
这些库似乎与 Microsoft.Identity.Web.Certificate 包相关。我尝试过升级和降级软件包版本,但问题仍然存在。有解决此错误的建议吗?
与缺少
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 存储”->“确定”。
在将应用程序重新部署到 Azure 应用服务之前,请使用 Kudu 控制台删除
wwwroot
文件夹中的所有文件,然后继续部署。