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

本文介绍了如何在Visual Studio中安装本地.nupkg文件。首先,通过工具->选项->软件包管理器设置自定义包源。然后,将.nupkg文件拖放到指定文件夹。在项目中管理NuGet软件包时选择新源,但可能会遇到签名不匹配问题,需要卸载并重新安装NuGet。在VS2010及更高版本中,可以通过Package Manager控制台使用`Install-Package`命令指定.nupkg文件路径进行安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一些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:

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文件,我喜欢使用:

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的文件,内容如下

如果在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入门示例:

背景故事

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

我正在使用VS 2017,还没有遇到这个问题。我只是将-Source参数传递给Update-Package,它工作正常。也许与Install-Package命令专门有关?

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

如果将其视为zip文件,则文件名中带有空格的文件将被提取为%(替换空格)。为了避免使用NuGet进行此安装。

实际上,您甚至不需要重命名扩展名。只需右键单击该文件,然后选择"打开方式",然后找到可以打开.zip文件的应用程序,然后即可打开.nupkg文件,然后可以将所需的dll文件提取到指定的文件夹中。

我需要的最佳解决方案

在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一起使用。 第二个开关将禁用所有其他来源,例如,这对于脱机情况很有用。

在Mac(也假设Linux)上,如果使用dotnet restore(或VS Mac),则不能依赖nuget sources,因为此错误。我必须手动将本地源添加到~.nugetNuGetNuGet.Config(请参见此GH问题)。

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

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

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

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

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

<think>我们参考了用户提供的引用内容,特别是引用[1]和引用[2]中关于本地安装.nupkg文件的方法。用户的需求很明确:已经下载了FluentFTP的.nupkg文件,想要在本地配置并使用它。步骤分解如下:1.**将.nupkg文件放入本地文件夹**:创建一个专门的文件夹(例如`C:\LocalNuGet`)并将下载的`FluentFTP.nupkg`文件放入其中。2.**在VisualStudio中添加本地源**(根据引用[2]):-打开VisualStudio-转到菜单:工具→NuGet管理器→管理器设置-在选项窗口中,选择“源”-点击“+”添加新源-名称:例如“LocalFluentFTP”-源:指向刚才创建的文件夹(例如`C:\LocalNuGet`)-点击“确定”保存3.**在项目中使用本地安装FluentFTP**:-在解决方案资源管理器中,右键单击项目→管理NuGet程序-在NuGet管理器中,将“源”切换为刚刚创建的“LocalFluentFTP”-搜索“FluentFTP”并安装4.**备选方法:使用NuGet命令行**(根据引用[1]):-打开程序管理器控制台(工具→NuGet管理器→程序管理器控制台)-执行命令:```powershellInstall-PackageFluentFTP-Source"C:\LocalNuGet"```5.**验证安装**:-在项目中尝试使用FluentFTP的命名空间,例如:```csharpusingFluentFTP;```-编写简单的FTP连接代码进行测试注意事项:-如果下载的是特定版本,请确保文件名正确(如`FluentFTP.40.0.0.nupkg`)-如果遇到依赖问题,可能需要将依赖也放入同一文件夹(但通常FluentFTP依赖的会自动从官方源获取,如果离线环境则需要手动下载所有依赖并放入文件夹)对于完全离线的环境,建议将所有依赖括FluentFTP依赖的)都下载到本地文件夹。可以通过以下方式获取依赖树:```bashdotnetaddpackageFluentFTP--dry-run```然后将所有需要的.nupkg文件都放入同一个本地文件夹,这样在安装时就能从本地源解析所有依赖。如果用户没有VisualStudio,也可以使用.NETCLI:```bashdotnetaddpackageFluentFTP--source"C:\LocalNuGet"```这样,用户就可以在本地配置并使用从NuGet官网下载的FluentFTP.nupkg文件了。</think>### 如何在本地配置并使用从NuGet下载的FluentFTP .nupkg文件 #### 方法1:通过Visual Studio配置本地NuGet源(推荐) 1. **创建本地存储目录** 新建文件夹存放.nupkg文件,例如:`C:\LocalNuGet\` 2. **配置Visual Studio本地源** - 打开VS → 工具 → NuGet管理器 → 管理器设置 - 选择"源" → 点击"+"添加新源 - 名称:`LocalFluentFTP`(自定义名称) - 源路径:`C:\LocalNuGet\` - 点击"更新"保存配置[^2] 3. **安装FluentFTP** - 右键项目 → 管理NuGet程序 - 源切换为`LocalFluentFTP` - 搜索"FluentFTP" → 点击"安装" #### 方法2:使用NuGet命令行安装 ```powershell # 进入.nupkg文件所在目录 cd C:\LocalNuGet\ # 安装本地 dotnet add package FluentFTP --source C:\LocalNuGet\ ``` #### 方法3:直接安装.nupkg文件(无需配置源) ```powershell nuget install "C:\LocalNuGet\FluentFTP.40.0.0.nupkg" -OutputDirectory packages ``` #### 验证安装 在代码中添加引用测试: ```csharp using FluentFTP; public class FtpService { public void Connect() { using var ftp = new FtpClient("ftp.example.com", "user", "pass"); ftp.Connect(); var files = ftp.GetListing("/"); } } ``` #### 依赖项处理技巧 1. **获取完整依赖树**(离线环境必备): ```powershell dotnet add package FluentFTP --dry-run ``` 输出结果会显示所有依赖,将这些.nupkg文件一并放入本地目录 2. **合并多个**(可选): 使用[NuGet Package Explorer](https://www.nuget.org/downloads): - 新建空白 → 拖入所有依赖.nupkg文件 - 保存为`FluentFTP-Full.nupkg`[^4] #### 常见问题解决 - **版本冲突**:在.nupkg文件名中明确版本号,如`FluentFTP.40.0.0.nupkg` - **证书信任**:首次使用需执行: ```powershell Set-PackageSource -Name LocalFluentFTP -Trusted ``` - **跨平台支持**:Linux/macOS使用相同逻辑,注意路径格式: ```bash dotnet nuget add source ~/LocalNuGet --name local_ftp ``` > **关键提示**:对于企业环境,建议设置[内部NuGet服务器](https://docs.microsoft.com/zh-cn/nuget/hosting-packages/nuget-server)实现集中管理[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值