关于Visual Studio:如何在本地安装NuGet包.nupkg文件?

How do I install a NuGet package .nupkg file locally?

我有一些C#书中的.nupkg文件。 如何安装?

Cant see my packages


菜单工具→选项→软件包管理器

Enter image description here

输入名称和文件夹位置。单击将您的NuGet软件包文件拖放到该文件夹??中。

转到您的项目,右键单击并选择"管理NuGet软件包",然后选择新的软件包源。

Enter image description here

这是文档。


您还可以使用Package Manager控制台并通过在-Source参数中指定包含软件包文件的目录的路径来调用Install-Package cmdlet:

1
Install-Package SomePackage -Source C:\PathToThePackageDir\


对于.nupkg文件,我喜欢使用:

1
Install-Package C:\Path\To\Some\File.nupkg


  • 将文件添加到解决方案旁边的名为LocalPackages的文件夹中(不必调用该文件夹,但可以在接下来的步骤中相应地调整xml)
  • 在解决方案文件旁边创建一个名为NuGet.config的文件,内容如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
         
        </packageSources>
       
          <!-- this tells that all of them are active -->
         
        </activePackageSource>
     </configuration>
  • 如果在Visual Studio中打开了解决方案,请关闭它,然后重新打开它。

  • 现在,您的软件包应该出现在浏览器中,或者可以使用Install-Package安装


    对于Visual Studio 2017及其新的.csproj格式

    您不能再仅使用Install-Package指向本地文件。 (这可能是因为PackageReference元素不支持文件路径;它仅允许您指定程序包的ID。)

    您首先必须告知Visual Studio包的位置,然后可以将其添加到项目中。大多数人要做的是进入NuGet软件包管理器,然后将本地文件夹添加为源(菜单工具→选项→NuGet软件包管理器→软件包源)。但这意味着您的依赖项的位置未提交给其余代码库(用于版本控制)。

    使用相对路径的本地NuGet软件包

    这将添加仅适用于特定解决方案的软件包源,并且您可以使用相对路径。

    您需要在与.sln文件相同的目录中创建一个nuget.config文件。使用所需的包源配置文件。下次在VisualStudio2017中打开解决方案时,这些源文件夹中的所有.nupkg文件都将可用。 (您将在"程序包管理器"中看到源,在管理项目的程序包时,可在"浏览"选项卡上找到程序包。)

    以下是nuget.config入门示例:

    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <packageSources>
           
        </packageSources>
    </configuration>

    背景故事

    此功能的用例是,我的计算机上有一个代码存储库的多个实例。代码库中有一个共享库,它以.nupkg文件的形式发布/部署。这种方法允许整个代码库中的各种依赖解决方案在同一存储库实例中使用该程序包。此外,全新安装了VisualStudio2017的人员可以在任何位置签出代码,相关的解决方案将成功还原和构建。


    如果您有.nupkg文件,而只需要.dll文件,则只需将扩展名更改为.zip并找到lib目录。


    在Linux上,使用NuGet CLI,命令相似。 要安装my.nupkg,请运行

    1
    nuget add -Source some/directory my.nupkg

    然后从该目录运行dotnet restore

    1
    dotnet restore --source some/directory Project.sln

    或将该目录添加为NuGet源

    1
    nuget sources Add -Name MySource -Source some/directory

    然后告诉msbuild将该目录与/p:RestoreAdditionalSources=MySource/p:RestoreSources=MySource一起使用。 第二个开关将禁用所有其他来源,例如,这对于脱机情况很有用。


    只是为了进行更新,Visual Studio 2015用户进行了一些小的更改。

    要手动使用或安装软件包,请转到工具->选项-> NuGet软件包管理器->软件包源

    单击添加按钮,选择源,不要忘记单击"更新",因为它会更新软件包的文件夹位置,如果需要,请编辑所需的软件包源名称:

    enter image description here

    要选择添加的软件包,请右键单击您的解决方案,然后选择"管理Nuget软件包"

    下拉列表在右侧,然后选择"浏览"以浏览在文件夹源上指定的软件包。如果该文件夹源上没有nuget软件包,则它将为空:

    enter image description here