1
与this thread不太一样,但非常接近。在运行时编译的DotNET代码中抛出异常的Linenumber
我的程序允许人们输入一些VB或C#代码,它们在运行时被编译,加载和执行。我CompilerParams是:
CompilerParameters params = new CompilerParameters();
params.GenerateExecutable = false;
params.GenerateInMemory = true;
params.IncludeDebugInformation = false;
params.TreatWarningsAsErrors = false;
params.WarningLevel = 4;
此代码时会抛出一个异常,我想能够显示一个消息框,帮助用户调试他们的代码。例外消息很容易,但行号是我卡住的地方。
我怀疑为了得到行号,我可能需要彻底改变CompilerParameters,甚至是这些dll的存储/加载方式。
有没有人知道让这个工作所需的最少步骤?
感谢汤姆完整的堆栈跟踪,我是怕他回答。现在我必须找出一种方法来在我的应用程序关闭后删除所有这些dll和pdb文件*有关于此的任何想法? – 2009-10-12 02:39:36
只是在Windows Temp目录中创建它们,所以Windows需要照顾它:Path.GetTempFileName() – TJF 2009-10-12 02:45:36
这就是我放置它们的位置,但是该文件夹在我的机器上接近1Gig,如果有人正在照顾它,做一个马虎的工作... – 2009-10-12 02:47:29