badimageformatexception动态代码生成

时间:2015-02-13 12:53:34

标签: c# code-generation badimageformatexception csharpcodeprovider dynamic-code

我尝试使用CSharpCodeProvider动态生成可执行文件,其唯一目的是从特定dll调用单个方法。当我执行生成的文件时,我得到一个BadImageFormatException。

我已经将平台设置为x86。当我手动编写调用该方法并在Visual Studio中调试它的代码时,它完全正常。

这是可执行文件的代码:

using DLLName;

namespace ExampleNamespace
{
    class Program
    {
        public static void Main(string[] args)
        {
            MyClass obj = new MyClass();
            obj.MyMethod();
        }
    }
}

在动态编译代码之前,我通过

添加程序集
compilerParameters.ReferencedAssemblies.Add("PathToDLL");

我将可执行文件写入与dll相同的目录。

修改

这是我用来调用编译器的代码:

CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();

parameters.GenerateExecutable = true;
parameters.GenerateInMemory = false;
parameters.OutputAssembly = @"DirectoryOfDLL\MyMethod.exe";
parameters.ReferencedAssemblies.Add("PathToDLL");

provider.CompileAssemblyFromSource(parameters, code);

0 个答案:

没有答案