无需发布即可使用自定义Nuget包,出现NU1101错误如何解决?
完全可以将自定义Nuget包存放在.sln文件同级目录下本地使用,你遇到的NU1101报错是配置细节问题导致,你的报错提示中没有识别到自定义的MySource源,按以下步骤修正即可:
修正步骤
- 调整nuget.config配置
首先确保nuget.config文件存放在和.sln文件完全同级的目录下,其次修改包源的相对路径,你之前写的..\MyPackages代表nuget.config所在目录的上级目录,和你要放在sln同级的需求不符,修正后的配置如下:
<?xml version="1.0" encoding="utf-8"?> <configuration> <config> <add key="dependencyVersion" value="Highest" /> </config> <packageSources> <!-- 先加clear清空默认继承的全局源,避免源优先级问题 --> <clear /> <add key="MySource" value=".\MyPackages" /> <!-- 保留nuget.org源用于拉取公共包,不需要可以删除 --> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> </packageSources> </configuration>
- 确认自定义包存放正确
在.sln同级目录新建MyPackages文件夹,把你打包好的MyPackage1234.xxx.nupkg文件放入该文件夹,注意包ID必须和csproj中PackageReference的Include值完全一致,版本号合法。 - 重新还原Nuget包
配置修改完成后执行以下操作生效:- 关闭解决方案后重新打开,确保VS加载最新的nuget.config配置
- 右键解决方案选择「还原NuGet包」
- 如果仍报错,执行命令清空本地Nuget缓存后再次还原:
dotnet nuget locals all --clear
可选验证操作
打开Visual Studio的「工具」->「选项」->「NuGet包管理器」->「包源」,确认列表中已经出现MySource项,路径指向你本地的MyPackages文件夹,且前方复选框处于勾选状态。
内容的提问来源于stack exchange,提问作者Nikita Burmistrov
相关产品推荐
相关产品推荐

