无法向空.NET项目添加Autofac NuGet包的问题求助
问题分析与解决方案
核心原因
你的项目名称和要安装的NuGet包同名(都是Autofac),这会让NuGet在依赖解析时彻底混乱:
- 最初的
The given key '(Autofac, 8.2.0)' was not present in the dictionary错误,是因为NuGet误把项目本身当成了要查找的包,找不到对应版本的条目 - 指定SDK后出现的
NU1108: Cycle detected. Autofac -> Autofac (>= 8.2.0),直接戳破问题本质——NuGet误以为项目需要引用自身作为依赖,形成循环
解决步骤
1. 重新创建不同名的项目
删掉现有项目文件,创建一个和Autofac不同名的控制台项目,比如AutofacDemo:
del .\Autofac.csproj dotnet new console -n AutofacDemo -o . -f net8.0 --force
2. 安装Autofac包
在新项目里重新执行安装命令:
dotnet add package Autofac
3. (可选)关联原解决方案
如果想保留Autofac作为解决方案名称,把新项目添加进解决方案即可:
dotnet sln add .\AutofacDemo.csproj
验证
完成操作后,NuGet就能正常解析并安装Autofac包,之前的字典键缺失、循环依赖错误都会消失。
内容的提问来源于stack exchange,提问作者mark
相关产品推荐
相关产品推荐

