问题标签 [dotnet-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 投票
0 回答
200 浏览

.net - dotnet restore 不使用 PackageReference 条件

我的项目有多个目标框架,其中 2 个包引用需要为 .net461 使用不同的版本

在此处输入图像描述

在 VS 2017 中构建时,一切正常,并且依赖项使用正确的版本显示。

在此处输入图像描述

但是当使用 dotnet cli 构建时,依赖项显示 .net461 使用了错误的版本。这是 dotnet cli 中的错误吗?

在此处输入图像描述

我也尝试将这 2 个 pkg 放在另一个 ItemGroup 标记中,但条件仍然相同

更新:对于遇到此问题的其他人,我最终使用<Choose>条件<when>来解决此问题..所以看起来像这样。

0 投票
1 回答
4415 浏览

visual-studio - 强制将特定 nuget 包下载到本地包文件夹

我有一个引用 Json.Net 12.0.1 的 .NET Core Visual Studio 2017 解决方案。在我的开发环境中一切都很好。当我运行 dotnet restore 时,Json.Net 被下载到解决方案包文件夹中的 Newtonsoft.Json.12.0.1。

但是,当我在构建服务器上运行恢复时,解决方案希望从 nuget 全局缓存中获取 Json.Net 版本。

我可以强制将所有包下载到本地包文件夹,但这最终会使用不同的命名约定(Newtonsoft.Json/12.0.1),并且当然会重新下载全局变量中存在的所有内容。所以它只会产生很多开销并且仍然不起作用。

我想我可以在我的 .csproj 文件中使用一些技巧,以便为 Json.Net 提供不同的提示路径,但这似乎过于复杂。

有没有办法强制 Nuget 将 Json.net(或任何包)下载到本地包中的特定文件夹,或者使用 CLI 工具解决此问题?

同样,这是 .NET Core,因此没有 packages.config。

谢谢!

0 投票
1 回答
4980 浏览

nuget - 由于 api.nuget.org/v3/index.json 导致 Dotnet 还原失败

我有一个.NET Core 2.1应用程序,不能再运行dotnet restore了。
我收到此错误:

恢复 D:\Work-2\Anubis\Core\AnubisServer.Server\AnubisServer 的包。
Server.csproj... D:\Work-2\Anubis\Core\COM\SharedCOM\SharedCO
M.csproj 的恢复在 22.22 毫秒内完成。D:\Work-2\Anubis\Core\AnubisServer.Shared\An
ubisServer.Shared.csproj 的恢复在 26.09 毫秒内完成。D:\Work-2\Anubis\Core\Server\Extensions\Exte
nsions.csproj 的恢复在 26.07 毫秒内完成。D:\Work-2\Anubis\Core\AnubisServer.Client\An
ubisServer.Client.csproj 的恢复在 26.12 毫秒内完成。C:\Program Files\dotnet\sdk\3.0.100-preview-009812\NuGet.targets(114,5): 错误:无法加载源 https://api.nuget.org/v3/index的服务索引.json
. [D:\Work-2\Anubis\Core\AnubisServer.Server\AnubisServer.Server.csproj] C:\Program Files\dotnet\sdk\3.0.100-preview-009812\NuGet.targets(114,5):错误:无法建立 SSL 连接,请参阅内部异常。[D:\Work-2\
Anubis\Core\AnubisServer.Server\AnubisServer.Server.csproj] C:\Program Files\dotnet\sdk\3.0.100-preview-009812\NuGet.targets(114,5):错误[
_
_
D:\Work-2\Anubis\Core\AnubisServer.Server\AnubisServer.Server.csproj] C:\Program Files\dotnet\sdk\3.0.100-preview-009812\NuGet.targets(114,5):错误:连接尝试失败,因为连接方
在一段时间后没有正确响应,或者连接失败,因为连接的主机
没有响应。[D:\Work-2\Anubis\Core\AnubisServer.Server\
AnubisServer.Server.csproj]

如您所见,一切都解决了,api.nuget.org/v3/index.json但我不知道出了什么问题。

我查看了以前的答案并尝试过:

- 从 C:/Users:/[username]/Nuget 中
删除 Nuget C:\Users\[user]\AppData\Roaming\NuGet.config文件夹 - 查看文件并查看所有 url 是否正常

Nuget.config

令我好奇的是,它直到今天都运行良好。我没有对系统进行任何更改。

0 投票
2 回答
571 浏览

c# - 以编程方式恢复 nuget 包(.net 核心和 .net 框架)

我想基于Packages.config& 包引用以编程方式为 .net core 和 .net Framework 恢复 nuget 包。

任何想法?

谢谢!

0 投票
1 回答
285 浏览

c# - 使用 C# 代码以编程方式恢复 PackageReferences

我正在尝试使用 C# 基本代码以编程方式恢复.NET 框架和 .NET 核心项目的packageReference

我想过使用 dotnet.exe / msbuild.exe 但我不知道如何!

我想模拟我们可以用dotnet CLI做什么:

但我想以编程方式进行。

感谢您的回答。

0 投票
1 回答
8133 浏览

asp.net - 没事做。指定的项目都不包含要恢复的包

我在 dot net 中有一个网络应用程序以及其他项目。当我打开 .sln 文件并发布 Web 项目时,它确实如此。但是,当我尝试使用命令行和 .csproj 发布 web 项目时,它给出了一个错误。“无事可做。指定的项目都不包含要恢复的包。”

0 投票
3 回答
627 浏览

msbuild - Azure DevOps - 有条件的包还原

通过 Azure DevOps 管道构建的解决方案有一些使用条件包引用的项目,例如:

包源是私有 NuGet 源。

dotnet restore 任务不遵守条件包选择。(它恢复 Mock.MyPackage)
问题:
如何有条件地恢复包(基于 $Configuration)?

备注:
我还尝试在 Visual Studio Build 任务期间通过指定 MsBuild 参数进行恢复:/t:restore。
在这种情况下,它会失败并显示一条消息:无法从远程源检索有关 XX 的信息。如果此命令可以恢复包,我如何为私人提要指定授权参数?

Github 上有一个问题:https ://github.com/NuGet/Home/issues/5895最后提到了这样的问题。

0 投票
1 回答
791 浏览

linux - linux 上的 dotnet restore 不包括来自 nuget 包的 XML 文件

我有一个 Visual Studio 解决方案,并且正在尝试构建以在 Docker 的 Linux 安装上运行。作为该过程的一部分,我需要从我的 Swagger 文档的一个 nuget 包中复制 XML 文档。在我的 windows 开发盒上,我可以做到这一点,但在 Linux 上它不起作用。问题似乎是当我在 linux 上查看 nuget 包的 lib 文件夹时,我只看到一个 .dll,而在 Windows 上我同时看到 .dll 和 .xml。下面是我的恢复命令

为什么在 Linux 上没有提取 XML 文件?

另一方面,linux似乎使用全小写创建目录。因此,如果我要提取 nuget 包 Test.MyPackage-3.4.3,它将位于 Linux 上的 /root/.nuget/.../test.mypackage/3.4.3。在我的 csproj 文件中,我引用了%(PackageReference.Identity)返回骆驼大写字母的包。是否也有解决方法?

0 投票
0 回答
798 浏览

asp.net-core-mvc - dotnet restore:检索包时发生错误...缺少元数据根元素

我有一个 nuget/docker 构建问题,我已经花了几天时间进行调试并且没有想法:你知道我为什么会收到以下错误吗?

问题在于一个 asp.net 核心解决方案(其他非常相似的不受影响):虽然我可以使用 docker compose 文件在 Visual Studio 2019 中构建受影响的解决方案,但它无法使用 dockerfile 和 docker build 命令无法运行。

如果我通过在命令提示符下执行如下构建来运行 dockerfile:

然后我收到以下错误:

我在 dockerfile 的每一行之后都放置了 RUN echo 命令,所以看起来是 dotnet restore 导致了这个问题。如果我自己运行 dotnet restore 命令,它运行正常。

为了解决这个问题,我做了很多事情,例如

  • - 从此解决方案和项目中删除了 obj 和 bin 文件夹,
  • -卸载并重新安装nuget,
  • -删除了nuget缓存以强制重新下载包,
  • -卸载并重新安装 dotnet core sdks,
  • -从项目文件中删除了错误消息中提到的包('System.Text.Encodings.Web.4.5.0)(这不会导致任何错误,所以无论如何肯定是多余的)。这并没有影响这个错误,它恢复了这个包,所以必须有别的东西说要使用这个包,或者可能系统包都默认包含在内。

我的同事可以构建这个项目,并给我发了一份他可以构建的副本;我在构建他的副本时遇到了同样的问题,所以假设它是项目外部的东西。

如果我在 docker 文件中的 dotnet restore 命令中添加“--verbosity detail”,我已在输出下方添加。

0 投票
0 回答
471 浏览

.net-core - 检测到的包降级:System.Runtime 从 4.3.1 到 4.3.0

本地 Visual Studio 构建运行干净,没有此类还原错误。

但是 TeamCity 构建会引发这种类型的许多错误。

我有两个问题:

  1. 如何可靠地解决此错误?

请注意,将包引用添加到 .csproj 不是一个好选择,因为我的构建有很多此类错误。可能需要向PackageReference依赖关系树中的每个叶子包添加显式。

  1. 为什么MSBUILD认为这是一个错误而不是警告?

在我看来,版本约束是兼容的,因为4.3.1同时满足约束System.Runtime (>= 4.3.1)System.Runtime (>= 4.3.0).

这不就是作者的Newtonsoft.Json 10.0.1本意吗?

在四个不同的版本中(在四个不同的应用程序中)发生了类似类型的错误:

因为我几乎在同一时间开始在所有四个构建中看到这些错误,并且因为没有可能导致错误的代码提交(并且绝对不是所有四个应用程序),所以这让我相信在构建代理(与他人共享)。

或者是什么可能导致许多应用程序恢复同时开始失败并出现这些错误?