使用 Mono.Cecil 重写 VB.NET 程序集后,Visual Studio 2010 中的“调用堆栈”调试窗口将语言显示为 C# 而不是 VB.NET。是否可以配置 Mono.Cecil 来重写程序集,以便调试器将重写的程序集识别为 VB.NET?
以下 Mono.Cecil 无需修改即可读取并保存程序集。但是,调试器将新程序集读取为 C# 而不是 VB.NET。
Dim readerParameters = New ReaderParameters() With {.ReadSymbols = True}
Dim writerParameters = New WriterParameters() With {.WriteSymbols = True}
Dim appToRewrite = AssemblyDefinition.ReadAssembly(
appToRewriteExe,
readerParameters
)
appToRewrite.Write(appToRewriteExe, writerParameters)
重写的程序集最好是 VB.NET,因此调试窗口“本地”和“立即窗口”是 VB.NET 版本而不是 C# 版本。