问题标签 [nuget-package-restore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
372 浏览

repository - Nuget 2.7 在还原包时忽略存储库路径

由于我升级到 nuget 2.7,它不尊重在我的解决方案目录中的 nuget.config 中设置的存储库路径。

它只在恢复包时忽略它,但是如果我添加一个新包,它会尊重存储库路径。

如何使 nuget restore 在我的 nuget.config 的存储库路径中指定的目录中查找包?

0 投票
3 回答
9904 浏览

visual-studio - NuGet 包还原已启用,但我收到一条错误消息,提示它未启用

我在我的解决方案中启用了 nuget 包还原。但是,当我尝试构建项目时,出现此错误:

任何想法如何解决这个问题?

我已尝试删除我的 NuGet.targets 和 NuGet.exe 文件并重新启用块包还原。它重新创建文件,我得到同样的错误。

0 投票
2 回答
10534 浏览

visual-studio - 不使用包还原,但仍然得到“必须安装 nuget 包 Microsoft.Bcl.Build”

我正在开发一个使用 nuget 但不使用包还原的项目。(顺便说一句,这是我无法控制的决定,因此任何涉及启用包还原的答案都不是我能够使用的答案。)

解决方案中的少数项目(总共 34 个项目中的 4 个;一个 WinJS 应用商店项目、两个普通 .NET 类库和我的一个 Azure 云项目)报告了这个臭名昭著的警告:

...packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.targets(225,5): warning : All projects referencing Valhalla.Consumer.Core.csproj must install nuget package Microsoft.Bcl.Build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317569.

该链接假定我要打开包还原。到目前为止,我在这个主题上找到的所有其他建议也是如此。

顺便说一句,我尝试在选项 -> 包管理器 -> 常规设置中禁用包还原。这无济于事(即使有,也是不可取的——我在我从事的所有其他工作中都使用包还原)。

我真的不明白为什么我在不使用包还原的解决方案中得到这个。据我了解,它要求的软件包的全部意义在于支持软件包还原。因此,在不使用包还原的解决方案中,出现此包似乎很奇怪。

但是,似乎某些其他 nuget 包会导致您依赖它。我有一个使用Microsoft.Bclnuget 包的 Windows 运行时组件项目,由于某种原因,它依赖于Microsoft.Bcl.Build. (当我创建项目时,Visual Studio 似乎为我添加了包。大概是必要的。)其他项目似乎通过 HTTP 客户端库Microsoft.Bcl获得了依赖。Microsoft.Bcl.Build

显然,某些常见的 nuget 包似乎会强制依赖Microsoft.Bcl.Build您是否使用包还原。

如果您可以通过将相关包添加到所有收到此警告的项目中来消除警告,那将很好。但令人烦恼的是,即使我将Microsoft.Bcl.Build包添加到消费组件(例如,我的 WinJS Window Store 应用程序),我仍然会收到此警告!(所以它继续抱怨我需要安装 nuget 包,即使我已经安装了它。)

有谁知道在这种情况下如何消除这个警告?做它要求我做的事情似乎还不够。少了什么东西?

0 投票
2 回答
2280 浏览

msbuild - VisualStudio.com (Visual Studio Team Services) 在 nuget 包依赖项上构建失败

以为我会尝试充分利用我的 visualstudio.com 试用会员资格。我用几个项目创建了一个解决方案,将其推送到 Microsoft git 源代码控制提供程序,配置了构建定义并尝试在项目服务器上构建它。但是它一直没有告诉我:

找不到类型或命名空间名称“Moq”(您是否缺少 using 指令或程序集引用?)

我知道这意味着构建服务器找不到 Moq.dll 库。我使用 NuGet 安装了它,但配置了我的 .gitignore 以使包文件夹不受源代码控制。我还为解决方案启用了 NuGet 包还原,并推送了 nuget.exe、nuget.targets 和 nuget.config(.nuget 文件夹中的所有 3 个文件)以及所有其他项目文件。

现在我确信如果我也推送包文件夹,我可以让构建工作,但我想让 nuget 包文件夹不受源代码控制。所以我想知道,这可能吗?visualstudio.com 文档说构建服务器安装了 Visual Studio 2013,因此我认为 nuget 包还原可以下载丢失的 dll,以便 MSBuild 可以解决它们。这是正确的吗?或者要在 visualstudio.com 上使用自动化 CI 构建,您是否需要将包置于源代码控制之下?

根据日志文件,nuget package restore 下载了包。是什么赋予了?

项目“C:\a\src\MySln.sln”(1)正在节点 1 上构建“C:\a\src\Tests\MySln.ProjA.UnitTests\MySln.ProjA.UnitTests.csproj”(3)(默认目标)。RestorePackages:
"C:\a\src.nuget\NuGet.exe" 安装 "C:\a\src\Tests\MySln.ProjA.UnitTests\packages.config" -source "" -NonInteractive -RequireConsent -solutionDir "C: \a\src\ " 正在恢复 NuGet 包...要防止 NuGet 在构建期间下载包,请打开 Visual Studio 选项对话框,单击包管理器节点并取消选中“允许 NuGet 下载丢失的包”。
packages.config 中列出的所有软件包都已安装。PrepareForBuild:创建目录“obj\Debug\”。ResolveAssemblyReferences:主要参考“起订量”。C:\Program Files (x86)\MSBuild\12.0\bin\amd64\Microsoft.Common.CurrentVersion.targets(1635,5):警告 MSB3245:无法解析此引用。找不到程序集“Moq”。检查以确保该程序集存在于磁盘上。如果您的代码需要此引用,您可能会遇到编译错误。[C:\a\src\Tests\MySln.ProjA.UnitTests\MySln.ProjA.UnitTests.csproj]

这一行也在构建日志文件中,在上面的下面:

考虑“..\packages\Moq.4.1.1311.0615\lib\net40\Moq.dll”,但它不存在。

0 投票
2 回答
1153 浏览

automation - nuget 适合日常开发工作流程吗?

我正在寻找 nuget 以改进开发过程中依赖项(内部和第三方)的自动处理。

只要你通过 CI Build Server 进行开发,一切都很好:

  1. 获取 A 和 B 的最新来源,其中 B 取决于 A
  2. 修复A中的错误
  3. 建个
  4. 检查源代码控制
  5. CI 构建服务器已启动
  6. 创建新的 nuget 包并将其放置在公司存储库中
  7. build B(将获得更新的 A 包)
  8. 运行 B 以验证 A 中的错误是否已修复。重复n次

但是,我想知道是否可以作为单个开发人员在本地工作,而不必等待 CI Build Server 生成新包?

Nuget 有一个功能包还原,它将在构建时自动下载所有依赖项。您还可以列出包还原应查找包的存储库顺序。

如果工作流程可以变成:

  1. 获取 A 和 B 的最新来源,其中 B 取决于 A
  2. 修复A中的错误
  3. 建个
  4. (构建创建一个本地 nuget 包)
  5. 运行 B 以测试 A 中的(已解决)错误(现在应该使用我们的本地 nuget 包,而不是本地存储库)
  6. ...重复 n 次
  7. 检查源代码控制
  8. CI 构建服务器已启动
  9. 在公司存储库中创建新的 nuget 包

这可以使用 Visual Studio、MSBuild、CI 构建服务器和 nuget 吗?我对在本地开发时制作本地包特别感兴趣。

请注意,我有本地项目,尽管除了构建后生成 nuget 包之外,这将是一个我希望适用于 C# 和 C++ 项目的工作流。

0 投票
16 回答
85204 浏览

visual-studio-2012 - 项目杂项文件的 NuGet 包还原失败:值不能为 null 或空字符串。参数名称:root。0 0

我在 vs 2012 中有这样的错误:项目杂项文件的 NuGet 包还原失败:值不能为空或空字符串。参数名称:root。0 0

我看到这是针对 2.8 版修复的错误https://nuget.codeplex.com/workitem/3780但我在https://nuget.codeplex.com上找不到 2.8 版本 是否可以修复不安装2.8版本报错?或者如何获得2.8?

0 投票
2 回答
1337 浏览

linq - Unable to find version '2.0.21' of package 'LinqToFacebook'

I'm working with NopCommerce 2.60, and suddenly I'm getting this error when I run the project

NuGet Package restore failed for project Nop.Plugin.ExternalAuth.Facebook: Unable to find version '2.0.21' of package 'LinqToFacebook'..

I tried to restore the package by NuGet but got the same error and the wired thing is that I cannot find even the reference to LinqToFacebook in project "Reference", also search for the LinqToFacebook.dll in package folder but is not there.

Any help would be great

Best regards.

0 投票
3 回答
1834 浏览

c# - 为什么我应该将 NuGet 包 dll 添加到源代码管理?

我习惯于将 dll 保留在源代码控制之外。也可以使用 NuGet 包轻松完成。

但是,我注意到一些流行的操作系统项目(例如https://github.com/octokit/octokit.nethttps://github.com/AutoFixture/AutoFixture)更喜欢保持 dll 签入。为什么是这样吗?

0 投票
2 回答
7397 浏览

c# - 构建时的 NuGet 包还原极其缓慢(每个项目约 10 秒)

我在一个包含 12 个项目的解决方案中构建非常缓慢的问题,其中 7 个启用了 NuGet 包还原。诊断输出通常显示如下:

这是典型的;对于每个项目,RestorePackages 通常需要 9-10 秒,而对于 7 个项目,这会使我的构建时间增加了 70 秒。构建相同解决方案的同事都没有这个问题。我已禁用所有扩展并且 Visual Studio (2012) 是最新的。

我已经在 CodePlex 上提交了一个问题,但我也想询问这个知识渊博的社区,以防万一有快速修复,并寻求帮助解决这个问题。

编辑:我完全删除了 NuGet——RestorePackages 目标仍在执行,它仍然需要 10 秒。我需要在 csproj 文件中手动设置RestorePackages = false以使其消失。

编辑 2:如果我注释掉 NuGet.targets 中的 RestorePackages 任务中的内容,问题也会消失。像这样:

如果我删除 CheckPrerequisites 目标并没有什么不同。

编辑:我安装了 Windows 8.1,不再出现问题。

0 投票
1 回答
78 浏览

visual-studio - “启用 nuget 包恢复”对于包恢复真的有必要吗?

即使项目中没有打开“启用 nuget 包恢复”选项,我也可以成功恢复包。另外,它会在我的解决方案中生成其他文件。