【发布时间】:2012-05-01 16:09:16
【问题描述】:
我有一些来自 C# 书籍的 .nupkg 文件。如何安装它们?
【问题讨论】:
标签: visual-studio nuget
我有一些来自 C# 书籍的 .nupkg 文件。如何安装它们?
【问题讨论】:
标签: visual-studio nuget
菜单工具 → 选项 → 包管理器
提供名称和文件夹位置。单击确定。将 NuGet 包文件放到该文件夹中。
在解决方案资源管理器中转到您的项目,右键单击并选择“管理 NuGet 包”。选择新的包源。
这里是documentation。
【讨论】:
您还可以使用Package Manager Console 并通过在-Source 参数中指定包含包文件的目录的路径来调用Install-Package cmdlet:
Install-Package SomePackage -Source C:\PathToThePackageDir\
【讨论】:
-Source 选项在 nuget.exe 中也可用。例如:nuget install SomePackage -Source C:\PathToThePackageDir
对于我喜欢使用的 .nupkg 文件:
Install-Package C:\Path\To\Some\File.nupkg
【讨论】:
.nupkg 放在存储所有其他包的同一目录下)
您不能再仅使用 Install-Package 来指向本地文件。 (这可能是因为 PackageReference 元素不支持文件路径;它只允许您指定包的 Id。)
您首先必须告诉 Visual Studio 您的包的位置,然后才能将其添加到项目中。大多数人所做的是进入 NuGet 包管理器并将本地文件夹添加为源(菜单 Tools → Options → NuGet 包管理器 → 包来源)。但这意味着您的依赖项的位置不会与您的代码库的其余部分一起提交(版本控制)。
这将添加一个仅适用于特定解决方案的包源,您可以使用相对路径。
您需要在与您的.sln 文件相同的目录中创建一个nuget.config 文件。使用所需的包源配置文件。当您下次在 Visual Studio 2017 中打开解决方案时,这些源文件夹中的任何 .nupkg 文件都将可用。 (您会在包管理器中看到列出的源代码,当您管理项目的包时,您会在“浏览”选项卡上找到这些包。)
这里有一个示例 nuget.config 可以帮助您入门:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="MyLocalSharedSource" value="..\..\..\some\folder" />
</packageSources>
</configuration>
我使用此功能的用例是我的机器上有一个代码存储库的多个实例。代码库中有一个共享库,它作为 .nupkg 文件发布/部署。这种方法允许我们代码库中的各种依赖解决方案在同一个存储库实例中使用包。此外,全新安装 Visual Studio 2017 的人可以在任意位置签出代码,相关解决方案将成功恢复和构建。
【讨论】:
-Source 参数传递给Update-Package,它工作正常。可能与Install-Package 命令有关?
在您的解决方案文件旁边创建一个名为 NuGet.config 的文件,其中包含以下内容
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="LocalPackages" value="./LocalPackages" />
</packageSources>
<activePackageSource>
<!-- this tells that all of them are active -->
<add key="All" value="(Aggregate source)" />
</activePackageSource>
</configuration>
如果解决方案在 Visual Studio 中打开,请将其关闭,然后重新打开。
现在您的包应该出现在浏览器中,或者可以使用 Install-Package 进行安装
【讨论】:
如果您有一个 .nupkg 文件并且只需要 .dll 文件,您只需将扩展名更改为 .zip 并找到 lib 目录。
【讨论】:
在 Linux 上,使用 NuGet CLI,命令类似。要安装 my.nupkg,请运行
nuget add -Source some/directory my.nupkg
然后从那个目录运行dotnet restore
dotnet restore --source some/directory Project.sln
或将该目录添加为 NuGet 源
nuget sources Add -Name MySource -Source some/directory
然后告诉msbuild 将该目录与/p:RestoreAdditionalSources=MySource 或/p:RestoreSources=MySource 一起使用。第二个开关将禁用所有其他来源,例如,这对于离线场景很有用。
最近我想安装squirrel.windows,我从https://www.nuget.org/packages/squirrel.windows/ 尝试了Install-Package squirrel.windows -Version 2.0.1,但它失败并出现一些错误。于是我下载了squirrel.windows.2.0.1.nupkg并保存在D:\Downloads\,然后我可以在powershell中通过Install-Package squirrel.windows -verbose -Source D:\Downloads\ -Scope CurrentUser -SkipDependencies安装成功。
【讨论】:
dotnet build,然后是dotnet pack 命令)dotnet build,然后是nuget pack 命令)nuget add 命令将生成的包(在项目文件夹 bin > Debug (or Release) > *.nupkg 文件中)添加到离线提要(VS2019 中的默认位置是 C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\)Microsoft Visual Studio Online Packages。【讨论】: