- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ASP.NET Core 项目,可以使用 Visual Studio 正确构建,但无法在 MSBuild 下构建。
它没有找到所有公共(public)库(系统等)。
我正在使用 TeamCity,构建过程的一部分是 nuget 恢复
。
我尝试执行与 TeamCity 相同的步骤,但使用 MSBuild 手动执行,但失败了,没有找到库。
我添加了一个 dotnet Restore
步骤,然后它就起作用了。
那么,nuget 恢复
和 dotnet 恢复
之间有什么区别?
最佳答案
nuget restore
和 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 包的方式有两种(实际上是三种,但我们暂时忽略 UWP 上的 project.json
):
packages.config
:引用 NuGet 包的“经典”方式。这假设 NuGet 是一个单独的工具,并且 MSBuild 对 NuGet 一无所知。 NuGet 客户端(例如 nuget.exe
或 Visual Studio 集成工具)会看到 packages.config
文件,并在还原时将引用的包下载到本地文件夹中。包安装会修改项目以引用此本地文件夹中的资源。因此,恢复 packages.config
项目只会下载文件。PackageReference
:该项目包含引用 NuGet 包的 MSBuild 项。与 packages.config
不同,仅列出直接依赖项,项目文件不直接引用包外的任何 Assets (DLL 文件、内容文件)。恢复时,NuGet 通过评估直接依赖项和传递依赖项来计算依赖关系图,确保所有包都下载到用户的全局包缓存中(不是解决方案本地的,因此只下载一次)并将 Assets 文件写入 obj
文件夹其中包含项目使用的所有包和 Assets 的列表,以及其他 MSBuild 目标(如果任何包包含需要添加到项目中的生成逻辑)。因此,如果包尚未位于全局缓存中,NuGet 还原可能会下载包并创建此 Assets 文件。除了包引用之外,项目还可以引用 CLI 工具,这些工具是 NuGet 包,其中包含可用于项目目录中的 dotnet
的其他命令。msbuild 集成恢复仅适用于 PackageReference
类型项目(默认为 .NET Standard、.NET Core,但它是任何 .NET 项目的选择加入),不适用于 packages.config
项目。如果您使用新版本nuget.exe
(例如4.3.0),它可以恢复两种项目类型。
有关缺少类型的错误更有趣:“引用程序集”(作为输入传递给编译器的库)未安装在系统上,而是通过 NuGet 包提供。因此,只要全局包缓存中缺少 NuGet 包,或者恢复操作尚未生成 obj/project.assets.json
文件,编译器就无法使用 System.Object
等基本类型。
关于.net - “dotnet Restore”与 TeamCity 中的 'nuget restore',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45897271/
我有一个 ASP.NET Core 项目,可以使用 Visual Studio 正确构建,但无法在 MSBuild 下构建。 它没有找到所有公共(public)库(系统等)。 我正在使用 TeamCi
我正在尝试将数据库的本地快照恢复到 heroku 开发实例中。 heroku pgbackups:restore --app app_name HEROKU_POSTGRESQL_AMBER_URL
我正在为我的项目使用 rippleeffect 库。但是在 Android Nougat 和 Marshmallow 中,应用程序由于这个库而崩溃: 编译'com.github.traex.rippl
当我想取消暂存文件时,我所有的 Git 教程都显示如下内容: $ git add * $ git status On branch master Changes to be committed:
我有以下 CSS 和 HTML 可以很好地显示 DIV 的 Paralleled。但是当我减小 IE 窗口大小时 (restore-down) 按钮控件溢出根 DIV。有什么办法可以解决它。基本上我希
我开始学习 Canvas ,但我遇到了第一个令人沮丧的情况,我试图在三 Angular 形中制作 .jpg src 的剪贴蒙版。一切看起来都很好,直到我恢复我的上下文并尝试添加任何其他路径...我的剪
Redis 文档说 "RESTORE checks the RDB version and data checksum. If they don't match an error is returne
如何保存寄存器的当前状态并在以后恢复它? 我想确保我的函数没有意外的副作用。 最佳答案 为了安全地执行此操作,您不仅需要恢复寄存器的内容,还需要恢复其类型: let old_reg = getreg(
我刚刚升级到 dotnet core 2.1,但 dotnet restore 失败了。由于某种原因,它没有使用 http_proxy 或 https_proxy 设置。同时提供具有正确代理设置的 n
以编程方式创建系统还原点是“禁忌”吗?我会在执行软件更新之前执行此操作。如果有更好的方法可以仅使用我的软件文件和数据创建还原点,请告诉我。 我想要一种方法,如果在更新期间一切都发生了故障(关闭/终止更
我有一个 SQL Server Express 实例,每天两次对整个服务器进行文件级备份。我在想文件级备份可以作为表的备份。这可能是一个错误。 我现在需要查看旧的 database.mdf 文件中包含
我想知道why and when您会使用 Canvas.save , Canvas.restore ,甚至是 Canvas.saveLayer 。 我听说它们确实有用,但是我不知道何时使用它们。 最佳
以下软删除代码对我来说很好用: $post = Post::find($post_id); $post->delete(); Deleted_at 字段已更新。但这给了我一个错误: $post = P
我目前正在编写代码,当在 Node.js 上运行时,仅记录下面对象的每个值,每次迭代延迟一秒,并与字符串“您现在正在观看”连接 const episodes = [ { id: 's06e01',
假设我有两个数据库实例: InstanceA - Production server InstanceB - Test server 我的工作流程是首先将新的架构更改部署到InstanceB,对其进
This question is about a depeciated feature. dotnet core projects from version 2.x and up no longer
我最近在我的用户模型上添加了软删除,并且它的删除部分工作得很好,但是当我尝试恢复时,我收到一个错误,提示在非对象上调用成员函数restore(). 我恢复软删除用户的代码如下: public func
This question is about a depeciated feature. dotnet core projects from version 2.x and up no longer
我最近在我的用户模型上添加了软删除,并且它的删除部分工作得很好,但是当我尝试恢复时,我收到一个错误,提示在非对象上调用成员函数restore(). 我恢复软删除用户的代码如下: public func
启动Spring boot后如何“恢复”数据库中的数据? 例如 - 当我的服务器关闭时,某些行仍处于 NEW 状态。启动服务器时,我需要将状态更改为另一个状态。首先想到的是调用@PostConstru
我是一名优秀的程序员,十分优秀!