使用 msbuild v15.0 调试 msbuild 自定义任务

2024-02-20

Microsoft 关于启用 MSBuild 任务调试的说明 https://blogs.msdn.microsoft.com/visualstudio/2010/07/06/debugging-msbuild-script-with-visual-studio/似乎不再起作用了。我不明白msbuild /?显示/debug切换,当我尝试时dotnet publish /debug它抱怨说/debug不是有效的开关。

有没有办法再调试 MSBuild 任务?


The /debugmsbuild 的功能已从 MSBuild 15 的公共版本及其代码中删除后来被完全删除 https://github.com/Microsoft/msbuild/pull/2955.

要“调试”构建目标/msbuild 文件中的逻辑,最好的选择是使用以下命令创建二进制日志-bl论证并使用以下方法检查它们MSBuild 结构化日志查看器 http://msbuildlog.com。它向您显示任务调用的所有输入/输出以及 Msbuild 运行期间发生的所有步骤。

调试自定义任务(例如 C# 代码)非常困难。它将涉及循环+睡眠直到Debugger.IsAttached对于调试构建(然后附加到 Visual Studio 中的进程)或调用来说是正确的Debugger.Launch()(仅适用于 .NET Framework,不适用于 .NET Core MSBuild)。

我建议将实际的任务类与逻辑实现分开,以便您对逻辑进行单元测试。这应该消除在运行期间调试它的需要。

您可以在以下位置查看调试器逻辑和分离的示例NuGet 的 PackTask https://github.com/NuGet/NuGet.Client/blob/314a51e00e0741beca7f2e6138afed0cc7191091/src/NuGet.Core/NuGet.Build.Tasks.Pack/PackTask.cs和它的PackTaskLogic 类 https://github.com/NuGet/NuGet.Client/blob/dev/src/NuGet.Core/NuGet.Build.Tasks.Pack/PackTaskLogic.cs.

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

使用 msbuild v15.0 调试 msbuild 自定义任务 的相关文章

随机推荐

  • Angular 通用元标记在页面源中不可见

    当我查看在我的角度通用项目的构造函数中设置标题和元标记的页面时 标题显示在选项卡中 当我单击 检查元素 并转到时 我可以在 html 中看到元标记和标题到 html 文档的头部 但是 如果您仅单击 查看页面源代码 则不会显示标签 也不会显示
  • 自定义dateutil.parser世纪推理逻辑

    我正在处理具有两位数年份的旧文本文件 其中默认世纪逻辑dateutil parser似乎效果不太好 例如 珍珠港袭击事件并未发生dparser parse 12 7 41 返回 2041 12 7 回滚到 1900 年代的内置世纪 阈值 似
  • 左移 (<<) 是 C++11 中负整数未定义行为吗?

    左移是负数吗intC 11 中未定义的行为 这里的相关标准段落来自 5 8 2 E1 让我困惑的部分是 否则 如果 E1 具有有符号类型和非负值 且 E1 2E2 可以用结果类型表示 那么这就是结果值 否则 行为是未定义的 这是否应该被解释
  • 简单的iframe不显示在github页面上

    我定期嵌入iframes在我的 github io 页面中 但这个失败了 我不明白为什么 The iframe 嵌入此页面的多个位置 并且没有出现 https seinecle github io codapps generated htm
  • 从外部触发 Perfect 工作流程

    我目前有一个在 EC2 实例上本地运行的 Prefect 工作流程 我可以通过 UI 在 localhost 8080 上触发我的工作流程 有没有办法通过 REST API 或其他方式在外部触发 Prefect 工作流程 例如 AWS La
  • Errno 13,尝试读取文件时权限被拒绝

    我创建了一个小的 python 脚本 我正在尝试读取 txt 文件 但我的访问被拒绝 解决了 13 号错误 这是我的代码 import time import os destPath C Users PC Desktop New folde
  • Nancy 测试在其他程序集中找不到路线

    我有以下规格 使用 Machine Specifications 或 mSpec public class when a user logs in successfully static Browser browser static Bro
  • 通过 godaddy SMTP 发送电子邮件的正确设置是什么?

    我在电子邮件和 Office 下使用 GoDaddy 专业电子邮件 不是工作区电子邮件 对于我的网站 我想使用 PHPMailer 向用户发送电子邮件 我已根据 GoDaddy 电子邮件服务器信息使用了所有凭据 根据 GoDaddy 的说法
  • 如何制作一个可拉伸以适合包装物品的弹性盒容器? [复制]

    这个问题在这里已经有答案了 我想要一个flex direction column Flexbox 容器的宽度会增长以适合包含的元素 在此代码笔中 http codepen io justinmc pen ZYwWMz 灰色的 div 是 F
  • 排序规则问题 - SQL Server 2005

    我想了解我在 SQL Server 2005 实例上遇到的这个错误 错误如下 无法解决排序规则冲突 在 Latin1 General CI AI 和 SQL Latin1 General CP1 CI AI 中 等于操作 简单查询中包含的两
  • 列出通过 RFC 连接时允许的方法?

    我可以通过 SAP RFC 以用户 foo 和密码 bar 的身份从我的计算机连接到 SAP 服务器 是否可以通过 SAP RFC 进行自省 我想知道允许用户 foo 执行哪些方法 我正在使用 PyRFC 但据我所知 这对于这个问题来说应该
  • Qt 气球提示

    在我的 Qt 应用程序中 我想使用气球 气球提示 如Windows 用户体验指南 http msdn microsoft com en us library windows desktop dn742400 aspx 不是系统托盘气球 Qt
  • 如何从 React Native Navigator 中删除标题?

    我有一个标签栏导航器 水平滑动 并设置在屏幕底部 我希望该栏仅包含图标 没有标题 这是当前的设计 这是代码 const AppTabNavigator createMaterialTopTabNavigator Home screen Ho
  • 获取videoview下播放视频的进度时间?

    我需要获取 VideoView 中播放的视频的进度时间 即进度条左侧显示的时间 任何帮助将不胜感激 谢谢 您可以通过以下方式获取视频的持续时间mVideoView getDuration 最初将进度条设置为 0 然后通过以下方式获取视频的当
  • 如何在使用多线程时更新 aspx 页面

    我正在使用多线程来更新 显示页面内容 页面正在使用多个 和嵌套的 更新面板 现在 我正在使用以下logic更新页面 我有七个线程 每个线程通过查询数据库获取数据并将其显示在页面的特定部分 我们启动线程并等待 2 分钟 经过 2 分钟后 如果
  • 在 python 中绘制流数据的最轻量级方法

    为了让您了解我在寻找什么 它看起来像this http youtu be xMWIATas e0 t 1m37s 到目前为止 我已经使用 matplotlib 进行所有绘图 并且时间并不重要 它是在后处理中完成的 我想知道除了将数据向左移动
  • 以编程方式设置微调器文本颜色滞后、速度慢、瞬间颜色错误

    TLDR 我的微调器瞬间显示错误的颜色 我的旋转器有问题 每当我运行应用程序时 如果活动未缓存在内存中 它有时会滞后 在我可以将文本设置为正确的颜色之前 文本是默认颜色 如黑色 看起来确实很不专业 Video 请观看此屏幕录制以了解其实际效
  • 如何按第一个字符串对字符串对向量进行分组?

    我有一个包含字符串对的向量 vector
  • QAbstractTableModel::insertRows 将新数据附加到内部 QList

    我有以下类 它代表数据结构中的记录 ifndef UECONNECTEDCLIENTRECORD H define UECONNECTEDCLIENTRECORD H include
  • 使用 msbuild v15.0 调试 msbuild 自定义任务

    Microsoft 关于启用 MSBuild 任务调试的说明 https blogs msdn microsoft com visualstudio 2010 07 06 debugging msbuild script with visu