- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序具有脚本功能,我可以使用 CodeDomProvider.CompileAssemblyFromSource 从用户的脚本编译内存中程序集。它类似于 this answer 中的描述。 .
它工作得很好,但是从脚本代码抛出的任何异常在堆栈跟踪中都没有行号。我尝试设置compilerParameters.IncludeDebugInformation = true,但它仍然不包含行号。
是否可以从内存中程序集中获取异常的行号?
以下是我用来编译程序集的关键代码:
CompilerParameters compilerParameters =
compilerInfo.CreateDefaultCompilerParameters();
compilerParameters.GenerateInMemory = true;
compilerParameters.GenerateExecutable = false;
compilerParameters.IncludeDebugInformation = true;
...
CodeDomProvider codeProvider = compilerInfo.CreateProvider();
CompilerResults compilerResults =
codeProvider.CompileAssemblyFromSource(
compilerParameters,
new string[] { sourceCode });
最佳答案
我们通过将源代码写入临时文件,然后使用该文件而不是内存中的字符串来编译代码来解决这个问题。这为我们提供了有意义的调试信息,否则我们无法获得这些信息。
关于.net - CompileAssemblyFromSource 生成的程序集异常没有行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/911840/
我的应用程序具有脚本功能,我可以使用 CodeDomProvider.CompileAssemblyFromSource 从用户的脚本编译内存中程序集。它类似于 this answer 中的描述。 .
我让 CompileAssemblyFromSource 为只引用我的程序(编译它)使用的程序集的代码工作。它工作得很漂亮。 但是,如果我需要编译带有“using blah;”的代码声明,它将无法找到
我的应用程序使用 CodeDom 从源文件中动态编译一部分 javascript 代码。在 Windows 上,一切正常。但是在 Linux 上运行该应用程序最终会抛出 InvalidOperatio
我的 WCF 应用程序使用在运行时编译的代码来计算报表的某些值。我正在使用 CSharpCodeProvider.CompileAssemblyFromSource 来编译代码。如果客户端(Silve
我不太确定该去哪里。总体目标是能够获取用户脚本,并在 .NET 环境中执行它。如果我不尝试加载自己的程序集,我已经编写了大部分代码并且一切正常。但是,为了安全地让用户访问系统的内部部分,已经创建了一个
我有一些 C# 代码使用 CSharpCodeProvider.CompileAssemblyFromSource 在内存中创建程序集。程序集被垃圾回收后,我的应用程序使用的内存比创建程序集之前多。我
我正在尝试使用基本程序来动态编译和运行 f# 代码。我正在尝试运行以下代码: open System open System.CodeDom.Compiler open Microsoft.FShar
我有一个 C# 应用程序,它在 C:\Users\xxxx\AppData\Local\Temp 生成临时文件。这些临时文件是使用 Microsoft.CSharp.CSharpCodeProvide
跟进 excellent answer ,我想知道使用 dynamic 关键字的 DLR 是否允许以更简洁的方式为生成的程序集编写代码。 例如,上述答案的代码是否可以: using (Microsof
我们最近从旧的 CodeDomProvider 升级到名为 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 的新 Roslyn CodeDomPr
VB代码: Public Module OnlyModule Public Sub OnlyFunction() 'do stuff End Sub End Modul
我是一名优秀的程序员,十分优秀!