StripSymbols 默认为 true

当 .NET 7 引入 本机 AOT 部署时,它还引入了 StripSymbols 一个属性,该属性可以选择允许将调试符号从 Linux 上生成的可执行文件剥离到单独的文件中。 属性的默认值为 false. 在 .NET 8 中,默认值已更改为 true

以前的行为

使用 PublishAOT时,Linux 上的调试符号默认放置在生成的可执行文件中,并选择加入选项将其放入单独的 .dbg 文件中。

新行为

使用 PublishAOT,Linux 上的调试符号默认放置在 .dbg 文件中,并提供了一个选择加入选项,用于将它们放入可执行文件中。

已引入的版本

.NET 8 预览版 4

更改原因

根据反馈,我们确定 .NET 用户更喜欢 .NET 符号约定,而不是平台原生约定。 但是,去除符号的选项不够明显。

  • 如果您依赖于调试符号存在于主可执行文件中,请在项目文件中添加 `<StripSymbols>false</StripSymbols>` 以恢复以前的行为。
  • 如果选择使用新的默认值,请验证 .dbg 文件中的调试符号是否已正确存档(如果预期需要调试生成的可执行文件)。

受影响的 API

没有。