如何使用msbuild创建nuget包而不重建项目?

2023-11-24

我想设置一个包含构建、测试和部署阶段的 CI/CD 管道。 我可以在构建阶段构建我的项目

msbuild src\MyProject.csproj /t:Restore 
msbuild src\MyProject.csproj /p:Configuration=Release /p:OutputPath=../BuildOutput

接下来我将构建并运行测试..\BuildOutput\MyProject.dll那已经建成了。

msbuild tests\MyProject.Tests.csproj /t:Restore
msbuild tests\MyProject.Tests.csproj /p:Configuration=Release /p:OutputPath=../BuildOutput /p:BuildProjectReferences=false
vstest.console BuildOutput\MyProject.Tests.dll

到目前为止,它似乎有效。

现在我想生成nuget包。 我可以打电话:

msbuild src\MyProject.csproj /t:Pack /p:Configuration=Release /p:OutputPath=../BuildOutput /p:VersionPrefix=1.2.3

这将创造MyProject.1.2.3.nupkg in BuildOutput文件夹。 然而它重新构建了该项目。

我正在寻找类似的东西dotnet cli.

dotnet pack --no-build

但我不能使用dotnet因为我的项目有 COM 引用。

我还查看了 Nuget.exe,但当我调用时它似乎抛出错误nuget pack

Unable to cast object of type 'System.String' to type NuGet.Frameworks.NuGet.Frameworks1051960.NuGetFramework'.

msbuild有一个可以跳过构建的属性吗?


这取决于您的工作流程中是否可以接受,但您可以使用<GeneratePackageOnBuild>财产在一个<PropertyGroup>你的.csproj文件以在构建项目时获取包。如果您的测试没有通过,您可以放弃.nupkg文件,但至少没有额外的重建来获取 NuGet 包。

There is a more complete example of how to use this setting at the end of the article Easily supporting multiple target frameworks (TFMs) with VS2017 and Nuget1, but an exemplary very simple snippet would look like this:

<PropertyGroup>
    <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
</PropertyGroup>

1: While the original link does not report a 404, it appears as blank in October 2021. The same article can, however, be found on another URL.

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

如何使用msbuild创建nuget包而不重建项目? 的相关文章

  • 如何使用.NET从gitlab hooks获取推送信息

    我需要写一个网站来显示我们团队的推送信息 现在我遇到一个问题 如何从gitlab获取信息 the type of push infomation is JSON and what you need to do is to add a URL
  • 创建序列的幂集

    我正在尝试创建一个程序 作为创建序列 字符串或数字的可能组合的基础 这是某种加密 解密程序 我正在使用 Visual Studio 2013 和 C 我想做的是从序列中生成幂集 但我有点困惑并且无法继续进行 这是代码 public stat
  • 向父进程发出信号,表明子进程已完全初始化

    我正在启动一个公开 WCF 端点的子进程 如何从子进程向父进程发出信号 表明子进程已完全初始化并且现在可以访问端点 我曾考虑过使用信号量来实现此目的 但不太清楚如何实现所需的信号 string pipeUri net pipe localh
  • 如何使 PLINQ 在 .NET 4.0 beta 2 中产生更多并发线程?

    在以前版本的并行扩展中 您可以设置线程数 enumerable AsParallel numberOfThreads 但现在这种超载不再可用 现在该怎么做呢 在新版本中 您可以使用扩展方法 WithDegreeOfParallelism i
  • Spring.Net可以起到PostSharp的作用吗?

    几个月前 我发现了 PostSharp 有一段时间 它非常棒 但随后法律部门回复说他们不喜欢旧版本的许可证 然后部门告诉我2 0的价格高得令人无法接受 对于我们需要的座位数量 我非常失望 但并不沮丧 我想 这不可能是唯一的这样的框架 我一直
  • 使用反应式扩展对事件进行单元测试

    我在用着 NET 的反应式扩展 Rx http msdn microsoft com en us devlabs ee794896 aspx将事件公开为IObservable
  • 如何使用Entity Framework Code First CTP 5存储图像?

    我只是想弄清楚是否有一种简单的方法可以使用 EF Code First CTP 5 存储和检索二进制 文件 数据 我真的很希望它使用 FILESTREAM 类型 但我真的只是在寻找某种方法让它工作 我总是创建另一个类 例如ProductIm
  • 是否有 Visual Studio 宏的 API 样式参考

    我想使用 Visual Studio 宏自动执行一些常见任务 但我找不到可通过宏访问的 Visual Studio 对象的合适 API 参考 这样的想法存在吗 或者有什么方法可以通过 API 找到我需要的东西 你的意思是DTE http m
  • 返回无效或过期令牌的错误

    我正在尝试使用 Owin 实施 OAuth 承载身份验证 当传递无效或过期的令牌时 默认实现是将其记录为警告并且只是不设置身份 然而 在这种情况下 我想拒绝整个请求并出现错误 但我该怎么做呢 深入研究代码后我发现OAuthBearerAut
  • C# HttpClient:为什么使用 MediaTypeWithQualityHeaderValue?

    尝试在请求上设置 Content Type 标头属性时 MediaTypeWithQualityHeaderValue 参数的用途是什么 MSDN 文档 https msdn microsoft com en us library syst
  • 延迟加载实体框架 v.1 中昂贵的字段

    在网上搜寻并认为我能找到解决方案后 我似乎又碰上了另一堵砖墙 我的数据库中有一个表 照片 包含 PhotoID 标题 排序和四组二进制数据的列 原始 大 中和小 是的 它基于旧的 ASP NET 入门工具包 并进行了各种修复等 我正在从 L
  • 如何检查DLL文件是否已注册?

    如何以编程方式查找用 C 编写的 DLL 文件是否已注册 我已经尝试过这段代码 但它没有成功 如果我注册一个 DLL 文件并使用此代码进行检查 它将返回 如果我取消注册它并运行同一段代码 它会再次返回 true 我将 DLL 文件的完整路径
  • 拆分容器,制作固定面板

    我有一个水平方向的 splitcontainer 我希望仅在表单调整大小期间为 panel2 设置固定高度 并让 splitter 调整 panel2 大小 现在我正在这样做 但我不满意 因为用户注意到面板调整了大小 Private Sub
  • 如何将 POST 请求内容保存为 .NET 中的文件 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个客户端应用程序POST请求a
  • 您将如何在 F# 中解决这个问题? (高频传感器数据)

    我是一名机械工程研究生 我的导师刚刚要求我为我们的一个传感器项目编写一个数据可视化实用程序 由于现在是夏天 他希望我能从中获得一些乐趣 我认为这将是学习一门擅长科学计算的语言的好时机 所以我直接开始学习 F 由于我是函数式编程范例的新手 因
  • 将授权放在服务层而不是Web API层

    我正在使用 NET Core Web API 构建 REST API 我的控制器只是将请求转发到服务层并返回结果 HttpPost nameof Create public async Task
  • 无法对 ContainsGenericParameters 为 true 的类型或方法执行后期绑定操作

    我有一个适用于所有实体的扩展 public static class EntityBaseExtensions public static T Clone
  • 增加超时时间

    我必须增加超时时间 以下是我的代码 Private Function GetConnectionInstance As SqlConnection Dim objConn As SqlConnection Dim strConnection
  • 使用 Visual Studio 复制文件?

    我想创建一个 Visual Studio 我正在使用 VSTS 2008 项目 它只执行文件复制工作 更详细地说 我将向该项目添加一些文件 并将该项目复制文件 包含在该项目中 到某个目标位置我构建该项目 有什么想法如何在 VSTS 中做到这
  • 如何将 Binding.Path 属性绑定到基础数据?

    我正在尝试以非常动态的方式绑定 TextBlock 的 Text 属性 我需要从底层对象获取路径 这是数据模板

随机推荐

  • 从 webdriver.io 获取数据后动态构建 Mocha 测试

    我正在寻找一种解决方案来在异步获取数据后定义 Mocha 测试 目前 我使用gulp webdriver使用 Selenium 获取 HTML 内容 我想测试某些 HTML 标签结构 例如 我想从 HTML 页面获取所有按钮结构 1 在 M
  • C 中的 sin v/s sinf 函数

    我正在尝试使用sinf函数在我的 C 程序中 但它在 MSVC 6 0 下给了我一个未定义的引用错误sin工作正常 这让我很好奇找到两者之间的区别sin and sinf 两者之间的逻辑区别是什么sin and sinf 我怎样才能实现我自
  • 如何知道是什么使休眠持久对象变脏?

    我用 hibernate 映射的对象有奇怪的行为 为了知道为什么该对象行为异常 我需要知道是什么使该对象变脏 有人可以帮助并给我提示吗 该对象是 Java Spring 上下文中的 Java 类 所以我更喜欢针对 Java 平台的答案 编辑
  • jQuery ajaxForm 返回 .json 文件

    我在 Rails 中有一个模型创建表单 我还通过 ajax 返回 JSON 到目前为止我的代码看起来像 new stem ajaxForm new stem is my form dataType json success formSucc
  • 将 JSON 日期信息解析为 C# DateTime

    我有一个返回 CLR 对象的 WCF 服务 该对象定义如下 DataContract public class Person DataMember public string FullName get return fullName set
  • Angular2 通过 Promise 获取路由的参数

    嘿 我尝试过以下代码 constructor private route ActivatedRoute ngOnInit this route params toPromise then data gt 然而它没有做任何事情 如果我交换to
  • PHP 警告:mysqli_stmt::bind_param():变量数量与准备好的语句中的参数数量不匹配

    不知道为什么我会收到此 PHP 警告消息 看来准备好的语句中有四个参数 bind param 中也有四个变量 谢谢你的帮助 if stmt mysqli gt prepare SELECT url month year cover imag
  • C++ 常量结构体成员初始化

    我有一个常数struct timespec我班的成员 我应该如何初始化它 我唯一疯狂的想法就是衍生出我自己的想法timespec并给它一个构造函数 非常感谢 include
  • 在 Gmail 中撰写邮件的 URL(具有完整的 Gmail 界面并指定收件人、密件抄送、主题等)

    我找到了一个post它提供了一个仅打开撰写消息窗口的链接示例 但是 我希望它打开一个窗口完整的 Gmail 界面但已准备好撰写新消息 当然这有效 https mail google com mail u 0 compose 但是 我还想添加
  • Go - 通过外部命令写入标准输入

    我有以下代码 它执行外部命令并将两个字段输出到控制台等待用户输入 一个用于用户名 另一个用于密码 然后我手动添加了它们 谁能给我提示如何写入标准输入以便从程序内部输入这些输入 对我来说 棘手的部分是有两个不同的字段等待输入 而我很难弄清楚如
  • 仅转置 data.frame 中的某些列

    这里是我有数据 am group v1 v2 v3 v4 1 2015 10 31 A 693 803 700 17 2 2015 10 31 B 524 859 302 77 3 2015 10 31 C 266 675 86 7 4 2
  • kubernetes 的外部 IP 在 minikube 中显示

    我对 Kubernetes 相当陌生 最近我使用 miniKube 公开了一项服务NodePort类型 我想测试我的应用程序的运行 但我没有看到任何外部 IP 只看到端口 这是我的输出 kubectl get service NAME CL
  • iOS Safari 和 Chrome 上的 Z 索引问题

    我遇到了基于 wordpress Underscores 主题的响应式下拉菜单的问题 它在桌面上看起来不错 但在 iOS Safari 上 包括 iPad 和 iPhone 则不然 我也尝试将 z index 添加到其他 div 但它不起作
  • Ajax 文件上传,“进度”上传事件在 Edge 浏览器中不会触发

    我正在开发一个文件上传控件 通过 ajax 发布表单数据 我在 Chrome Firefox IE 11 10 中可以使用此跨浏览器 但是在 Microsoft Edge 浏览器中 上传 进度 事件似乎不会触发 谁能指出原因并告诉我 Edg
  • make -j 8 g++:内部编译器错误:已杀死(程序 cc1plus)

    当我在 Ubuntu12 04 上部署 Apache Mesos 时 我按照官方文档进行操作 在步骤 make j 8 中 我在控制台中收到此错误 g internal compiler error Killed program cc1pl
  • 左外连接和右外连接哪个更好?

    我们可以通过这两种方式得到相同的结果 Table 1 LEFT OUTER JOIN Table 2 Table 2 RIGHT OUTER JOIN Table 1 如果我们能得到相同的结果为什么要使用右外连接 哪一个更好 正如其他人已经
  • pdfBox - 签名有效性复选标记在 Acrobat reader 中不可见

    我正在使用此作为参考向 pdf 添加视觉签名 https stackoverflow com a 27940667 7103795 我能够正确打印详细信息 但在 Acrobat 中打开 pdf 时 它不会显示绿色勾号 尽管它写着 已签名且所
  • 如何在 Quill 编辑器中预填充 http 链接?

    使用 Quill 编辑器添加链接时 我必须包含协议 否则链接将被视为相对链接 当有人单击添加链接时 我希望该字段预先填充http 所以当用户输入google com它将创建一个链接到http google com代替http myapp n
  • Apache VirtualHost 403 禁止

    我最近尝试使用 Apache 设置测试服务器 该网站必须在域下运行www mytest com 我总是得到一个403 Forbidden错误 我使用的是 Ubuntu 10 10 服务器版本 文档根目录位于 dir 下 var www 以下
  • 如何使用msbuild创建nuget包而不重建项目?

    我想设置一个包含构建 测试和部署阶段的 CI CD 管道 我可以在构建阶段构建我的项目 msbuild src MyProject csproj t Restore msbuild src MyProject csproj p Config