我有一些C#书中的.nupkg文件。 如何安装?
菜单工具→选项→软件包管理器
输入名称和文件夹位置。单击将您的NuGet软件包文件拖放到该文件夹??中。
转到您的项目,右键单击并选择"管理NuGet软件包",然后选择新的软件包源。
这是文档。
-
实际上,我已经执行了几次步骤1。但是,当我打开查看"已安装的软件包","更新"或"最近的"软件包时,我的软件包未在步骤2中显示。
-
在我的屏幕上,我只有"已安装的软件包"下的"全部",而不是" NuGet官方软件包源",而不是我的自定义" newNuget",它们丢失了。
-
您正在使用哪个版本的VS?您是否有nuget的更新版本?
-
我正在使用vs2010。刚刚尝试从其主页下载并安装最新的nuget。下载单击"下一步",然后单击"下一步……",然后出现错误... M $,如预期那样,有一个已知问题的链接,检查是否存在,签名不匹配,然后我需要卸载现有的nuget,并且很容易修复。很好,那样做。当我重新启动计算机并再次安装时,同样的错误又出现了,签名不匹配...所以现在我被旧版本卡住了,新版本不想安装。
-
安装错误:VSIXInstaller.SignatureMismatchException:NuGet软件包管理器更新版本上的签名与安装版本上的签名不匹配。因此,扩展管理器无法安装更新。在VSIXInstaller.InstallProgressPage.BeginInstallVSIX(SupportedVSSKU targetAppID)的VSIXInstaller.Common.VerifyMatchingExtensionSignatures(IInstalledExtension installedExtension,IInstallableExtension updateExtension)中
-
问题已解决。我从Windows->控制面板卸载了nuget。它没有那样工作。我需要启动VS并进入"工具"->"扩展管理器" ...,然后从此处单击"卸载nuget"。重新启动VS。然后再次去安装nuget,它起作用了。现在,本地nupkg文件也出现了(编辑:它们在Online选项卡中,而不是Installed选项卡中,这是我发布的图片中的错误)。谢谢您的帮助 :)
-
我对VS2010有同样的问题。奇怪的是,如果单击左下角的"设置"按钮,则会在"可用包源"下看到添加的文件夹,并且其复选框已选中。
-
我在Visual Studio 2015和Entity Framework 6.0.1(不依赖于其他程序包)中进行了尝试。尽管我选择安装本地软件包,但NuGet经理仍想上网。对我来说,这没有用,所以解压缩了程序包,只使用了DLL。只要看看这篇文章中" user3199610"的答案即可。
-
我没有足够的声誉来发表评论-但要在接受的关于VS2015仍想上网的答案中回答Michael。我遇到了同样的问题,但是在选项中,如果您取消选中所有在线资源,则它适用于离线资源。 nuget选项图片
-
有用!我想知道为什么VS 2015没有安装本地.nupkg。谢谢这个
-
在vs2015中,我无法添加新来源
-
由于某些原因,仅使用配置文件
-
我想使用右键单击添加解决方案名称-> Restore nuget软件包将使用添加的本地资源
-
不要忘记在齿轮图标附近从右侧更改套件来源。您的包裹将在上一个窗口中以您分隔的名称显示。谢谢
您还可以使用Package Manager控制台并通过在-Source参数中指定包含软件包文件的目录的路径来调用Install-Package cmdlet:
1
| Install-Package SomePackage -Source C:\PathToThePackageDir\ |
-
我也可以使用命令行工具来做类似的事情吗?
-
是。 -Source选项在nuget.exe中也可用。例如:nuget install SomePackage -Source C:\PathToThePackageDir
-
有点快,对不起。我想要的是另一种方式。我很乐意使用nuget命令行将dll安装到cms站点上的bin文件夹中。但是我发现在线阅读它无法安装,只能拉下dll。
-
您可能还需要指定-IncludePrerelease标志。否则,如果该软件包的版本带有后缀(例如" -beta1"),则Install-Package将找不到它。
-
这是比公认的答案更直接的答案。谢谢(你的)信息!
-
请注意,即使本地* .nupkg文件的文件名中包含版本号,也无需为SomePackage指定版本号。
-
不适用于VS 2017,请参阅f.ex. @Granger回答。
-
执行此命令后出现错误(无法找到软件包packagename)。我首先下载了nuget软件包,然后通过.zip将其提取到本地驱动器中,然后提供了.nuspec文件的-source部分,并使用了元数据标签中的软件包名称。如果我缺少某些东西,请纠正我
-
@NirajTrivedi您不必提取NuGet软件包的内容–用-Source指定的目录应包含NuGet软件包文件本身(* .nupkg)。
-
@JeffSharp这对我来说真的很关键。此外,在用户界面中,在与需要在命令行上提供该标志的情况相同的情况下,可能需要按"包括预发布"。
对于.nupkg文件,我喜欢使用:
1
| Install-Package C:\Path\To\Some\File.nupkg |
-
唯一有效的方法。如果目录的路径包含空格,请将其用双引号引起来。
-
同意。值得一提的是,只有绝对路径有效
-
不适用于VS 2017,请参阅f.ex. @Granger回答。
-
@RenniePet在VS2017中为我工作(但我已经将.nupkg放在所有其他包都存储在同一目录下)
-
它不适用于我,我正在使用VS2013版本12.0.21..5和Nuget软件包管理器2.12.0.817 :(
-
我没有将其与nuget.exe cli工具一起使用。它尝试使用nuget配置中的提要查找包(GET nuget.COMPANY.nl/nuget/NuGet/ Files(x86)...)
-
为我工作。能够导入CodeView(java东西)的Nuget包,并构建和运行一个简单的应用程序。
-
对我来说,这没有用。我遇到一个错误,告诉我The Source parameter is not respected for the transitive package management based project(s)。这似乎尚未解决:github.com/NuGet/Home/issues/7189
-
这才是真正的答案!因为,如果您只需要从某个位置安装一次软件包,就可以这样做。不需要像接受的答案中那样的开销。
将文件添加到解决方案旁边的名为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安装
-
很棒的答案,正是我所寻找的解决方案。谢谢!
-
谢谢!那对我有用。
-
这可能仅是因为我在Nuget存储库中拥有一个名称与软件包相同的软件包,但是在运行Install-Package之前,我需要使用软件包管理器控制台并选择软件包源作为LocalPackages。
对于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的人员可以在任何位置签出代码,相关的解决方案将成功还原和构建。
-
我正在使用VS 2017,还没有遇到这个问题。我只是将-Source参数传递给Update-Package,它工作正常。也许与Install-Package命令专门有关?
如果您有.nupkg文件,而只需要.dll文件,则只需将扩展名更改为.zip并找到lib目录。
-
如果将其视为zip文件,则文件名中带有空格的文件将被提取为%(替换空格)。为了避免使用NuGet进行此安装。
-
实际上,您甚至不需要重命名扩展名。只需右键单击该文件,然后选择"打开方式",然后找到可以打开.zip文件的应用程序,然后即可打开.nupkg文件,然后可以将所需的dll文件提取到指定的文件夹中。
-
我需要的最佳解决方案
在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一起使用。 第二个开关将禁用所有其他来源,例如,这对于脱机情况很有用。
-
在Mac(也假设Linux)上,如果使用dotnet restore(或VS Mac),则不能依赖nuget sources,因为此错误。我必须手动将本地源添加到~.nugetNuGetNuGet.Config(请参见此GH问题)。
只是为了进行更新,Visual Studio 2015用户进行了一些小的更改。
要手动使用或安装软件包,请转到工具->选项-> NuGet软件包管理器->软件包源
单击添加按钮,选择源,不要忘记单击"更新",因为它会更新软件包的文件夹位置,如果需要,请编辑所需的软件包源名称:
要选择添加的软件包,请右键单击您的解决方案,然后选择"管理Nuget软件包"
下拉列表在右侧,然后选择"浏览"以浏览在文件夹源上指定的软件包。如果该文件夹源上没有nuget软件包,则它将为空: