我在运行时动态生成程序集,如下所示:
AssemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(fname), AssemblyBuilderAccess.RunAndSave);
moduleBuilder = AssemblyBuilder.DefineDynamicModule(fname, $"{fname}.dll", true);
var typeBuilder = moduleBuilder.DefineType("InternalType", TypeAttributes.Public | TypeAttributes.Class, typeof(BaseClass))
var methodBuilder = typeBuilder.DefineMethod($"MyMethod", MethodAttributes.Private, typeof(int), new [] { typeof(int) })
我还发出调试符号:
var documentBuilder = moduleBuilder.DefineDocument(Path.GetFullPath(fileName), SymDocumentType.Text, Guid.Empty, Guid.Empty);
File.WriteAllLines(fileName, method.SourceCodeLines);
// While emitting IL
gen.MarkSequencePoint(document, lineIndex + 1, 0, lineIndex + 1, method.SourceCodeLines[lineIndex].Length + 1);
现在,每当我对应用程序进行概要分析(Alt + F2)并导航到其中一个动态生成的方法时,我会得到一个报告:
符号文件不包含源信息或无法找到。 您可以选择“符号设置...”链接添加符号文件 位置,然后重新加载报告。
我尝试将Debug /和Release /目录添加到我的符号路径中,但似乎Visual Studio忽略了那里的*.pdb
文件。 (我已经检查过,pdb文件已经生成并保存了)
有什么方法吗?