TeamCity 中的“dotnet 恢复”与“nuget 恢复”

2024-03-07

我有一个 ASP.NET Core 项目,可以使用 Visual Studio 正确构建,但不能在 MSBuild 下构建。

它没有找到所有公共库(系统等)。

我正在使用 TeamCity,构建过程的一部分是nuget restore.

我尝试执行与 TeamCity 相同的步骤,但使用 MSBuild 手动执行,但失败了,没有找到库。

我添加了一个dotnet restore步骤然后就成功了。

那么,a 和 a 有什么区别nuget restore and a dotnet restore?


Both nuget restore and dotnet restore大致相同:它们执行 NuGet 恢复操作。

唯一的区别:dotnet restore是一个方便调用的包装器dotnet msbuild /t:Restore它调用 MSBuild 集成的恢复。这仅适用于包含 NuGet 的 MSBuild 发行版,例如 Visual Studio 2017(完整的 Visual Studio、构建工具)或 Mono 5.2+(=>msbuild /t:Restore)和提供此便利命令的 .NET Core SDK。

目前,有两种方法可以在项目中使用 NuGet 包(实际上是三种,但让我们忽略project.json目前在 UWP 上):

  • packages.config:引用 NuGet 包的“经典”方式。这假设 NuGet 是一个单独的工具,并且 MSBuild 对 NuGet 一无所知。 NuGet 客户端,例如nuget.exe或 Visual Studio 集成工具可以看到packages.config文件并在还原时将引用的包下载到本地文件夹中。包安装会修改项目以引用此本地文件夹中的资源。所以恢复一个packages.config项目仅下载文件。
  • PackageReference:该项目包含引用 NuGet 包的 MSBuild 项。不像packages.config,仅列出直接依赖项,项目文件不直接引用包外的任何资产(DLL 文件、内容文件)。恢复时,NuGet 通过评估直接依赖项和传递依赖项来计算依赖关系图,确保所有包都下载到用户的全局包缓存中(不是解决方案本地的,因此只下载一次)并将资产文件写入obj文件夹,其中包含项目使用的所有包和资产的列表,以及其他 MSBuild 目标(如果任何包包含需要添加到项目的生成逻辑)。因此,如果包尚未位于全局缓存中,NuGet 还原可能会下载包并创建此资产文件。除了包引用之外,该项目还可以引用 CLI 工具,这些工具是 NuGet 包,其中包含可用于dotnet在项目目录中。

msbuild 集成恢复仅适用于PackageReference类型项目(默认为 .NET Standard、.NET Core,但任何 .NET 项目都可以选择加入),而不是packages.config项目。如果您使用新版本nuget.exe(例如4.3.0),它能够恢复两种项目类型。

关于缺少类型的错误有点更有趣:“引用程序集”(作为输入传递给编译器的库)未安装在系统上,而是通过 NuGet 包提供。因此,只要全局包缓存或obj/project.assets.json文件尚未由恢复操作生成,基本类型如System.Object编译器将无法使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TeamCity 中的“dotnet 恢复”与“nuget 恢复” 的相关文章

  • .NET / C# / WPF 项目的命名约定

    NET C WPF 项目广泛接受的命名约定是什么 Microsoft 有一篇关于命名约定的内容广泛的 MSDN 文章here http msdn microsoft com en us library ms229002 aspx
  • NUnit 测试项目的 log4net 配置部分

    我正在使用名为 AssemblyTest nunit 的项目运行 NUnit 该测试调用另一个使用 log4net 程序集的程序集 这是使用 nunit 版本 2 4 3 和 net 2 0 框架 在 TestFixtureSetup 中
  • 从调试版本检测发布版本的最佳方法? 。网

    所以我有大约 10 个简短的 css 文件与 mvc 应用程序一起使用 有像 错误 css 登录 css ETC 只是一些非常短的 css 文件 使更新和编辑变得容易 至少对我来说 我想要的是能够优化 if else 分支而不是将其合并到最
  • 将 SQL Server 与 Dart 结合使用

    我还没有找到很好的答案 所以我想尝试一下得到答案 将 Microsoft SQL Server 与 Dart 结合使用的最佳方式是什么 我需要它能够从基本上任何操作系统 网络和移动设备上使用它 我觉得最好的方法可能是 GraphQL 但我对
  • 颜色变换器功能上的堆栈溢出错误

    我有两种颜色 红色 和 鲑鱼色 我需要动态创建面板以及面板背景颜色 这些颜色必须介于两种颜色之间 红色 public Color x y protected void Page Load object sender EventArgs e
  • 以编程方式获取命名管道的系统名称

    我正在使用 WCF NetNamedPipeBinding 编写进程间通信 我的目标是让服务在 net pipe localhost service 上运行 所以我运行最简单的主机 host new ServiceHost contract
  • 如果将其名称作为参数传递,如何在方法中打开表单

    我正在尝试创建一个标准方法来根据传递给它的参数打开表单 基本上 要完成此任务 using Quotes newQte new Quotes newQte ShowDialog 通过替换 Quotes with a passed parame
  • NUnit 与 xUnit

    两者有什么区别NUnit http www nunit org and xUnit net https xunit net 开发其中两个而不是仅一个有什么意义 我读到 xUnit 是由 NUnit 的发明者开发的 xUnit net 是 N
  • 该变量未声明或从未分配警告

    这是基类 public class BaseClass UserControl protected ListView list protected TreeView tree public BaseClass 儿童班 public part
  • 包管理器控制台中缺少文件错误

    我们的开发团队的一些成员在打开包管理器控制台时开始看到以下错误 它完全阻止我们运行实体框架命令 我们已经检查过并且提到的文件确实存在 GetEvent types ps1xml Diagnostics Format ps1xml Diagn
  • 使用编译时编织进行依赖注入? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我只是想了解 PostSharp 老实说我认为它太棒了 但有一件事对我来说很难如何纯依赖注入 不是服务定位器 无法完成 https cod
  • 在 .Net 中创建 EPUB

    有没有可以用来在 NET C 中创建 epub 文件的库 Flowdocument gt epub 转换工具将是理想的选择 但任何类型的库都很棒 我还对评估编写一个程序的复杂程度感兴趣 我知道它基本上是一堆压缩的 XHTML 文件 但我不断
  • Microsoft.WebApplication.targets

    当我将服务器签入构建服务器 使用 TFS 时遇到问题 但由于某种原因 返回下一个错误 Exception Message MSBuild error 1 has ended this build You can find more spec
  • 将 MSBuild 与外部 xml 参数文件结合使用

    如何让 MSBuild 任务使用外部 xml 参数文件中的参数 示例 将外部 xml 文件中的 MyConnectionStringParameter 用于我的 MSBuild 任务 MS构建文件
  • 计算从给定日期开始的月份中的第几天?

    我正在努力寻找一种简单有效的解决方案来计算每月的工作日 例如 如果给定日期是第一个星期一Monday 5th March 2018然后我想获取接下来 6 个月每个月第一个星期一的日期 例如 Monday 2nd April 2018 and
  • 生成Excel文件错误

    我在经典 ASP 中使用以下代码生成 Excel 文件 代码很简单并且有效 我在 Windows Vista x86 上的 IIS 7 0 下运行代码 两个问题 有一个奇怪的警告框 这是屏幕快照 http i27 tinypic com 2
  • 下载 .NET 3.5 的实体框架

    哪个版本的实体框架 EF 我可以用在 NET 3 5我可以在哪里下载这个旧版本 对于 Net 3 5 您可以使用 EF v1 您是否尝试从以下位置下载 Microsoft NET Framework 3 5 Service Pack 1 h
  • 如果浏览器在 asp .net 中关闭,请从浏览器中注销?

    我的要求有点复杂 用户正在使用 Web 浏览器访问数据库 而在访问数据库时 如果用户关闭活动页面而不是注销会话 该会话需要自动注销 有人可以指导我如何做这个吗 我在母版页中使用了jquery onbeforeunload 我收到消息离开页面
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 是什么原因导致 Linq 错误:此方法无法转换为存储表达式?

    我有一堆具有相同 select 语句的 Linq to Entity 方法 所以我想我会很聪明 并将其分离到它自己的方法中以减少冗余 但是当我尝试运行代码时 我得到了以下内容错误 该方法不能转化为 商店表达式 这是我创建的方法 public

随机推荐

  • 在 EF 查询中添加 DateTime 和 TimeSpan 的代码示例

    我正在寻找这个问题的代码示例 将 DateTime Add TimeSpan 与 LINQ 结合使用 https stackoverflow com questions 16781587 using datetime addtimespan
  • 将“浮动”内容放置在文本段落的右下角

    这是代码 http jsfiddle net ym2GQ http jsfiddle net ym2GQ p background lightblue end background orange float right display in
  • Firebase 存储的上传/下载速度非常慢

    故事 我在应用程序中使用 Firebase Storage 将大文件上传到 Firebase 存储中 文件大多是视频 有时甚至超过 2 GB 我做了什么 这就是我所做的 UploadTask originalUpload originalD
  • Python 根据另一个列表对一个列表进行排序

    我有两个列表 第一个列表是键顺序 第二个列表是元组列表 colorOrder red blue yellow green tupleList 111 red 222 pink 333 green 请注意 这两个列表不是一对一的关系 有些颜色
  • 从表中显示 MySQL 数据的 C++executeQuery() 错误

    我需要一些帮助 我有这段代码 如下 将数据添加到 MySQL 表 然后返回同一个表 代码运行良好 当我运行它时 它将列添加到 MySQL 表中 但它停止了 并出现错误 SQL error Error message 字面意义上的空白 如果我
  • C 为什么函数指针作为参数而不是仅仅作为函数?

    我一直在阅读有关以函数作为参数的函数 特别是在 C 中 它们使用函数指针 假设我想实现牛顿拉夫森方法 以简单的方式 来计算非线性方程中的零点 double derivative double f double double x double
  • 如何在 React 中播放 blob 对象的音频?

    我正在尝试使用 ReactJS 创建一个录音机应用程序 我使用了 npm 包反应麦克风 https www npmjs com package react mic服务于目的 但录音被保存为blob object 如何在浏览器中播放录制的文件
  • 断言可以用在常量表达式中吗?

    The assert 宏来自
  • 使用 Knockout 将任何键(通过键码)绑定到操作

    我正在寻找一种方法将许多不同的键绑定到我的视图模型中的不同操作 功能 我找到了这个example http geekswithblogs net michelotti archive 2011 10 11 knockoutjs custom
  • 如何在 Python 中交错字符串? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何在 Python 中交错字符串
  • ANT 有没有一种方法可以从 JAR 中提取一个类文件并将其放入另一个 JAR 中?

    我的 ANT 构建脚本使用名为 createEJBStubs 的 WebSphere 命令 该命令生成一个 JAR 文件 其中包含所有内容以及一个新生成的类 即 com myapp services User Service Stub cl
  • 批处理脚本 - 对目录中的每个文件运行命令

    我需要将一些 xls 文件转换为 xlsx 文件 我可以通过在 cmd 提示符 Windows 中运行以下命令成功地将一个 xls 文件转换为 xlsx ssconvert inputFileName xls outputFileName
  • 由于新的 couchbase 安装,将数据恢复到 couchbase

    我们有一个 couchbase 服务器 不知何故进行了全新安装 并且我们在那里的所有数据都丢失了 我已经设法备份了 opt couchbase var lib couchbase data 现在 当我尝试将数据复制回来时 它没有显示 cou
  • 自动选择毒理学部分中的平台(或其他)条件

    我想专门运行某个有毒部分 然后在特定平台上自动决定 如果我刚刚运行 下面的示例代码片段可以正常工作tox e ALL 然后平台条件可以很好地找出正确的平台 然而 我想only地址并运行特定部分 例如类似的内容tox e other not
  • 如何使用 C# 裁剪图像

    我有一张用相机拍摄的文档照片 现在我要做的就是从该图像中仅裁剪文档 请任何人建议我如何最好地做到这一点 或者首先是否可能 Edit 欲了解更多信息 我的下一个问题如何获取图像的边缘坐标 https stackoverflow com que
  • Bittorrent 协议如何处理数据块?

    BitTorrent 协议中如何处理数据块 当客户想要下载时 例如Linux 发行版中 跟踪器是否返回对等点列表 然后客户端连接到该列表并向每个对等点请求块 或者跟踪器是否返回对等点列表以及哪个对等点具有哪些数据的信息 数据块在哪里管理或处
  • 多维动态数组中什么需要最终确定?

    我经常使用动态数组 并且对 SetLength 和 Finalize 过程没有任何问题 我最近有理由使用动态数组 其中每个数组元素本身可以包含可变数量的元素 声明是这样的 TScheduleArray array of array of a
  • 使用 Sharepoint Word Automation 进行文本替换

    我正在使用 sharepoint 2010 我想做的是采用一个 word 文档模板 对几个关键字进行替换 例如 替换 ClientID 与客户端的 ID 并以特定名称将其保存在共享点上的库中 我已经弄清楚如何使用 word interop
  • ASP.NET登录页面问题

    Q The login page是任何网站的起点 也是验证用户身份的最重要的事情 当我开始构建任何网络应用程序时 我花了很多时间思考如何设计一个具有灵活界面且安全的登录页面 我的问题是 Is当我开始构建这个特殊页面时 有任何常见的建议 提示
  • TeamCity 中的“dotnet 恢复”与“nuget 恢复”

    我有一个 ASP NET Core 项目 可以使用 Visual Studio 正确构建 但不能在 MSBuild 下构建 它没有找到所有公共库 系统等 我正在使用 TeamCity 构建过程的一部分是nuget restore 我尝试执行