运行时加载Azure.Core程序集失败问题求助
运行时Azure.Core程序集加载异常排查
问题现象
运行时抛出以下异常:
System.IO.FileNotFoundException: 'Could not load file or assembly 'Azure.Core, Version=1.40.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8' or one of its dependencies. The system cannot find the file specified.'
但实际环境存在以下矛盾点:
- 已安装的NuGet包版本为
1.41.0.0 - 未找到任何直接引用
1.40.0.0的代码或配置 - 输出文件夹中的Azure.Core.dll版本确认为
1.41.0.0 - app.config已配置正确的绑定重定向:
<dependentAssembly> <assemblyIdentity name="Azure.Core" publicKeyToken="92742159e12e44c8" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.41.0.0" newVersion="1.41.0.0" /> </dependentAssembly>
MSBuild诊断输出(中文翻译)
将MSBuild日志级别设置为Diagnostic后,得到以下关键输出:
Unified primary reference "Azure.Core, Version=1.41.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8". (TaskId:21) 1> 使用此版本替代"C:\Users\user\.nuget\packages\azure.identity\1.12.0\lib\netstandard2.0\Azure.Identity.dll"中的原始版本"1.40.0.0",因为AutoUnify为'true'。(TaskId:21) 1> 使用此版本替代"C:\Users\user\.nuget\packages\azure.security.keyvault.secrets\4.6.0\lib\netstandard2.0\Azure.Security.KeyVault.Secrets.dll"中的原始版本"1.37.0.0",因为AutoUnify为'true'。(TaskId:21) 1> 解析的文件路径为"C:\Users\user\.nuget\packages\azure.core\1.41.0\lib\net472\Azure.Core.dll"。(TaskId:21) 1> 在搜索路径位置"{RawFileName}"找到引用。(TaskId:21) 1> 找到关联文件"C:\Users\user\.nuget\packages\azure.core\1.41.0\lib\net472\Azure.Core.xml"。(TaskId:21) 1> 此引用未设置为"CopyLocal",因为至少有一个源项将"Private"设为"false",且没有源项将"Private"设为"true"。(TaskId:21)
解决方案
问题核心是Azure.Core.dll未被复制到输出目录:虽然MSBuild已解析到正确版本,但CopyLocal(对应项目引用的Private属性)被设为false,导致文件未同步到运行目录。
可通过以下步骤修复:
- 若项目中直接引用了Azure.Core:右键该引用→属性→将"复制本地"设置为
True - 若为NuGet间接引用:手动编辑项目文件(.csproj),添加强制设置Private属性的配置:
<ItemGroup> <Reference Include="Azure.Core, Version=1.41.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8"> <Private>True</Private> </Reference> </ItemGroup>
- 清理项目缓存,重新生成,确认输出目录中存在Azure.Core.dll
内容的提问来源于stack exchange,提问作者wads
相关产品推荐
相关产品推荐

