Visual Studio探查器拒绝从动态生成的程序集加载调试符号

时间:2017-07-20 18:19:07

标签: c# visual-studio

我在运行时动态生成程序集,如下所示:

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文件已经生成并保存了)

有什么方法吗?

0 个答案:

没有答案