【问题标题】:How to check if .NET Core 2.1 assembly is built in Debug mode?如何检查 .NET Core 2.1 程序集是否在调试模式下构建?
【发布时间】:2019-10-17 15:17:27
【问题描述】:

我有一个 Azure 持久函数,我想将 VS2019 调试器附加到该函数。当我尝试这个时,我收到一条消息,该功能已在发布模式下构建。但是,我的 DevOps 构建管道使用配置“调试”。

我已经获取了已构建的 dll 的副本。如何判断这是否真的是调试或发布 dll?我在 Telerik JustDecompile 中打开过,但看不到任何明显的迹象。

【问题讨论】:

  • 您的.dll 也有一个.pdb 文件吗?
  • 是的,我可以看到 DevOps 构建创建的 zip 包含 dll 旁边的 pdp

标签: .net-core azure-devops


【解决方案1】:

dotnet core 2.1组装如何知道是否调试?

由于您可以获得所有的 dll 文件,您可以创建一个控制台应用程序,然后引用这个/那些 dll 文件。调试这个控制台应用,在调试模式下打开Modules窗口(@98​​7654324@->Windows->Modules):

如您所见,有一个选项Optimized,如果引用的dll是release dll,则显示为Yes,否则显示为No

希望这会有所帮助。

【讨论】:

  • 感谢@Leo 的成功!我的下一个问题是弄清楚为什么当来自 devops 构建管道的日志显示 --configuration 参数设置为 debug:" [command]"C:\Program Files\dotnet\dotnet.exe 时它被构建为优化的" build d:\a\1\s\Interfaces.Avaloq.Presentation.AzureFunctions\Interfaces.Avaloq.Presentation.AzureFunctions.csproj --configuration Debug"
  • @RobBowman,我不确定您是否在项目Interfaces.Avaloq.Presentation.AzureFunctions.cspro 中设置了类似:<Optimize>true</Optimize>。如果没有,我们可能需要检查构建日志,以检查是否在调试文件夹中创建了 dll。顺便说一句,如果以上对您没有帮助,我建议您可以打开一个新线程,其中包含有关此问题的更多详细信息,例如构建日志和有关此任务的构建定义。
  • 我在这里发了一个后续问题:stackoverflow.com/questions/58448161/…
猜你喜欢
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-21
  • 2020-04-29
  • 2010-12-21
  • 1970-01-01
相关资源
最近更新 更多