无法加载Azure.ResourceManager.ResourceGraph程序集的问题求助
问题说明
遇到程序集加载错误:
无法加载文件或程序集‘Azure.ResourceManager.ResourceGraph, Version=1.0.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8’,系统找不到指定文件。
已尝试清理项目、重装NuGet包、删除NuGet缓存、重建项目等常规操作,错误仍反复出现;注意到NuGet包版本为1.0.0,但错误中版本显示1.0.0.0,且该包在另一解决方案可正常运行。
关键澄清:版本号差异
首先明确:NuGet显示的1.0.0是语义化版本,错误里的1.0.0.0是**.NET程序集版本**,两者属于不同版本标识体系,这个差异是正常的,并非版本不匹配导致的问题。
针对性解决方案
核对目标框架兼容性
确认当前项目的目标.NET框架版本与正常运行的解决方案一致。Azure.ResourceManager系列包对.NET版本有要求(如最低.NET Core 3.1或.NET 6),框架版本过低会引发加载异常。添加程序集绑定重定向
强制让运行时将对1.0.0.0版本的请求指向实际安装的程序集:- 非ASP.NET Core项目:修改
app.config,添加以下配置:<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Azure.ResourceManager.ResourceGraph" publicKeyToken="92742159e12e44c8" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> - ASP.NET Core项目:修改
runtimeconfig.json,添加以下配置:{ "runtimeOptions": { "assemblyBinding": { "dependentAssembly": [ { "name": "Azure.ResourceManager.ResourceGraph", "publicKeyToken": "92742159e12e44c8", "culture": "neutral", "bindingRedirects": [ { "oldVersion": "0.0.0.0-1.0.0.0", "newVersion": "1.0.0.0" } ] } ] } } }
- 非ASP.NET Core项目:修改
检查依赖链与版本冲突
使用NuGet包管理器的「查看依赖项」功能,确认是否有间接依赖包引用了旧版本的Azure.ResourceManager.ResourceGraph,尝试将所有Azure相关包更新至同一大版本,避免依赖不一致。验证输出目录的程序集
编译项目后,前往输出目录(如bin/Debug/net6.0),检查是否存在Azure.ResourceManager.ResourceGraph.dll:- 右键查看文件属性,确认程序集版本为
1.0.0.0 - 若缺失,手动从NuGet缓存(路径通常为
%userprofile%/.nuget/packages/azure.resourcemanager.resourcegraph/1.0.0/lib/[目标框架])复制dll到输出目录测试
- 右键查看文件属性,确认程序集版本为
清理MSBuild缓存
删除解决方案目录下的.vs文件夹、所有项目的bin和obj文件夹,重新生成解决方案,清除MSBuild缓存导致的异常引用。检查项目文件的直接引用
打开项目的.csproj文件,若存在手动添加的程序集引用,确认路径和版本是否正确,或删除手动引用,改用NuGet自动管理。例如:<Reference Include="Azure.ResourceManager.ResourceGraph, Version=1.0.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8"> <HintPath>..\packages\Azure.ResourceManager.ResourceGraph.1.0.0\lib\net6.0\Azure.ResourceManager.ResourceGraph.dll</HintPath> </Reference>若
HintPath路径错误,修正后保存,重新加载项目。
对比参考(利用正常运行的解决方案)
将当前项目与正常运行的解决方案对比以下内容,定位差异:
- 目标框架版本
- NuGet包的版本(含所有Azure相关依赖)
- 项目配置文件(绑定重定向、引用方式)
- 输出目录的程序集完整性
内容的提问来源于stack exchange,提问作者cjr

