使用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上)
我建议将实际任务类从逻辑实现中分离出来,以便对逻辑进行单元测试。这样就不需要在运行期间对其进行调试
您可以在及其中看到调试器逻辑和分离的示例