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

使用msbuild v15.0调试msbuild自定义任务,msbuild,.net-core,Msbuild,.net Core,似乎不再管用了。我无法获取msbuild/?以显示/debug开关,当我尝试dotnet publish/debug时,它会抱怨/debug不是有效的开关 是否有任何方法可以调试MSBuild任务?已从MSBuild 15的公共生成及其代码中删除MSBuild的/debug功能 要在生成目标/msbuild文件中“调试”逻辑,最好的选择是使用-bl参数创建二进制日志,并使用。它显示了任务调用的所有输入/输出以及Msbuild运行期间发生的所有步骤 调试自定义任务(例如C#代码)非常困难。它将涉及

似乎不再管用了。我无法获取
msbuild/?
以显示
/debug
开关,当我尝试
dotnet publish/debug
时,它会抱怨
/debug
不是有效的开关


是否有任何方法可以调试MSBuild任务?

已从MSBuild 15的公共生成及其代码中删除MSBuild的
/debug
功能

要在生成目标/msbuild文件中“调试”逻辑,最好的选择是使用
-bl
参数创建二进制日志,并使用。它显示了任务调用的所有输入/输出以及Msbuild运行期间发生的所有步骤

调试自定义任务(例如C#代码)非常困难。它将涉及循环+休眠,直到调试生成(然后在Visual Studio中附加到进程)的
Debugger.IsAttached
为true,或调用
Debugger.Launch()
(仅在.NET Framework上,而不是.NET Core MSBuild上)

我建议将实际任务类从逻辑实现中分离出来,以便对逻辑进行单元测试。这样就不需要在运行期间对其进行调试

您可以在及其中看到调试器逻辑和分离的示例