Vb.net VB项目始终以调试模式生成

Vb.net VB项目始终以调试模式生成,vb.net,debugging,compiler-construction,release,pdb,Vb.net,Debugging,Compiler Construction,Release,Pdb,今天我遇到了一个问题,VB的行为与C不同。问题如下 还要注意,这是针对.NET4.0的 这两个项目都设置为在发布模式下生成 两个项目都在同一个解决方案中 解决方案设置为内置版本 两个项目都输出到bin/obj中的发布文件夹 除了一件事,一切似乎都很好。使用诸如VB项目显示为调试和C#项目显示为发布等工具检查文件时 我找到了pdb文件的高级编译器选项中的一个设置。如果VB的调试信息输出设置为“无”,则项目将在调试模式下生成(请记住,它仍将输出到发布文件夹)。C#没有表现出这种行为 我在这里写了

今天我遇到了一个问题,VB的行为与C不同。问题如下

还要注意,这是针对.NET4.0的

  • 这两个项目都设置为在发布模式下生成
  • 两个项目都在同一个解决方案中
  • 解决方案设置为内置版本
  • 两个项目都输出到bin/obj中的发布文件夹
除了一件事,一切似乎都很好。使用诸如VB项目显示为调试和C#项目显示为发布等工具检查文件时

我找到了pdb文件的高级编译器选项中的一个设置。如果VB的调试信息输出设置为“无”,则项目将在调试模式下生成(请记住,它仍将输出到发布文件夹)。C#没有表现出这种行为

我在这里写了一篇博客来解决这个问题,但是如果有人知道的话,我很想知道根本原因


我怀疑您的工具报告的信息不正确。请注意,在其他领域也有很多关于这一点的讨论。那么,您如何通过检查dll/可执行文件来确定它是调试模式还是发布模式呢?同样值得注意的是,该工具显示项目处于优化状态,但是调试模式。这意味着什么?优化但调试模式?我做了一些研究,这个工具使用了DebuggableAttribute类,并引用了IsJITTrackingEnabled。如果已启用-它将程序集显示为调试模式。它正在查看调试类上的jitpoptimized属性,以判断是否启用了优化。