创建NuGet本地包的问题:【LocalNugGet】未将对象引用设置到对象的实例

发布时间 2023-06-07 16:40:22作者: Light_Yang

现象:

  1. 创建NuGet本地包后,使用NuGet管理器访问LocalNuGet时,报错:

    【LocalNugGet】未将对象引用设置到对象的实例

  2. 检查C:\Users{此处时你的用户名}\AppData\Roaming\NuGet路径下的NuGet.Config配置文件。

发现:

  1. LocalNuGet名字有重复出现。
  2. 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>

分析:

  1. 经过测试,重复出现应该是在添加时,key值:文件名大小写的问题。
  2. 参数: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>