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 /debug
msbuild 的功能已从 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(使用前将#替换为@)