在运行时创建dll文件不能在c#中工作

时间:2014-09-18 11:01:51

标签: c# dll .net-assembly

我正在尝试在运行时创建一个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

致以最诚挚的问候。任何想法都将受到赞赏。

2 个答案:

答案 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());
}