当 .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
没有。