使用<;调试类型>;完整</调试类型>;及<;调试类型>;便携式</调试类型>;对于.net核心项目?

使用<;调试类型>;完整</调试类型>;及<;调试类型>;便携式</调试类型>;对于.net核心项目?,.net,.net-core,roslyn,opencover,.net,.net Core,Roslyn,Opencover,要生成公开封面报告,我必须将debugType设置为Full。我在构建服务器上生成报告,因为如果覆盖率没有达到某个阈值,我必须使构建失败。 构建是在发布模式下生成的。 在我的csproj文件中保持debugType完整会有什么后果?它会降低生产中的性能吗?不同之处在于,“完整”类型会发出一个经典的windows PDB符号文件,该文件复杂且文档记录不完整。“可移植”PDB格式是一种新的开源格式,可以在所有平台上创建和使用。有关此格式的详细信息,请访问 它与应用程序是否可以调试无关,而是与支持新v

要生成公开封面报告,我必须将debugType设置为Full。我在构建服务器上生成报告,因为如果覆盖率没有达到某个阈值,我必须使构建失败。 构建是在发布模式下生成的。
在我的csproj文件中保持debugType完整会有什么后果?它会降低生产中的性能吗?

不同之处在于,“完整”类型会发出一个经典的windows PDB符号文件,该文件复杂且文档记录不完整。“可移植”PDB格式是一种新的开源格式,可以在所有平台上创建和使用。有关此格式的详细信息,请访问

它与应用程序是否可以调试无关,而是与支持新vs经典格式的工具有关。因此,没有任何运行时后果(除了在.NET Framework<4.7.1中打印堆栈跟踪,当您随应用程序提供便携式pdb文件并希望查看行号映射时)

因此,在更新工具以使用新格式之前,如果需要使用尚不支持新格式的工具,则需要将
DebugType
属性更改为
Full
,新格式现在是“基于SDK的”项目的默认格式

要仅对调试构建执行此操作,您需要csproj包含如下部分

<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
  <DebugType>Full</DebugType>
</PropertyGroup>

满满的
完全和pdb之间没有区别,只是因为VisualStudio 2013年(罗斯林)。我们应该更新文档@瓦萨多夫


使用/debug:pdbonly和/debug:full的区别在于,使用/debug:full时,编译器会发出一个DebuggableAttribute,哪个用于告诉JIT编译器调试信息可用?这会降低生产性能吗?@anantdabbi问题不是关于
pdbonly
,而是关于
/debug:portable
等效参数(似乎官方文档还没有更新以包含它)是,引用:“如果使用/debug:full,请注意使用/debug:full会对JIT优化代码的速度和大小产生一些影响,对代码质量也会产生一些影响。我们建议/debug:pdbonly或no-PDB来生成发布代码。“未记录/debug:portable的副作用,这是为那些缺少输入/排除文件+行号信息选项的人准备的,这样可能有一天会改变。因此我可以有把握地得出结论,我可以使用DebugType Full,而不必担心性能会下降?只要您只在调试模式下这样做是,请添加一个示例csproj配置是,因为它会在运行时禁用代码优化运行时4.7.1上的性能有所下降-