我正在尝试在运行时创建一个DLL文件,事实上我需要将编码数据保存到DLL
。我的代码是这样的:
class DllFile
{
public static void CreateDllFile(string source)
{
var provider = new CSharpCodeProvider();
var options = new CompilerParameters
{
OutputAssembly = "test.dll"
};
var results = provider.CompileAssemblyFromSource(options, new[] { source });
}
}
我希望从这段代码创建一个dll文件,但它不会创建
The error is :The pointer for this method was null
致以最诚挚的问候。任何想法都将受到赞赏。
答案 0 :(得分:2)
通过返回值报告编译错误:
var results = provider.CompileAssemblyFromSource(options, new[] { source });
现在检查results
,特别是results.Errors
。
您还可以检查results.NativeCompilerReturnValue
- 成功时应为0
,失败时应为非零。
答案 1 :(得分:1)
任何错误都会出现在CompileAssemblyFromSource方法返回的CompilerResults的Errors属性中。您是否尝试过将它们打印出来以查看是否有错误?
CompilerResults results = provider.CompileAssemblyFromSource(options, new[] { source });
foreach(CompilerError error in results.Errors)
{
Console.WriteLine(error.ToString());
}