## 前言 本人之前開發了一個叫[電子腦殼](https://github.com/maker-community/ElectronBot.DotNet)的上位機應用,給稚暉君[ElectronBot](https://github.com/peng-zhihui/ElectronBot)開源機器人 ...
現象:
- 創建NuGet本地包後,使用NuGet管理器訪問LocalNuGet時,報錯:
【LocalNugGet】未將對象引用設置到對象的實例
- 檢查C:\Users{此處時你的用戶名}\AppData\Roaming\NuGet路徑下的NuGet.Config配置文件。
發現:
- LocalNuGet名字有重覆出現。
- LocalNuGet後面有參數: protocolVersion="3"
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="LocalnuGet" value="D:\LocalNuget" protocolVersion="3" />
<add key="LocalNuGet" value="D:\LocalNuget" protocolVersion="3" />
<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
</packageSources>
</configuration>
分析:
- 經過測試,重覆出現應該是在添加時,key值:文件名大小寫的問題。
- 參數:protocolVersion:要使用的 NuGet 伺服器協議版本。 當前版本為“3”。具體參考:nuget.config 文件參考 | Microsoft Learn
解決:
針對以上2個問題修改,NuGet管理器可以正常訪問LocalNuGet包了。以下是修改後的配置文件。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="LocalNuGet" value="D:\LocalNuget" />
<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
</packageSources>
</configuration>