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

无。