badimageformatexception dynamic code generation

206 Views Asked by At

I'm trying to dynamically generate an executable with the CSharpCodeProvider whose only purpose is to invoke one single method from a specific dll. When I execute the generated file I get a BadImageFormatException.

I already set the platform to x86. When I manually write the code which invokes the method and debug it in Visual Studio, it works perfectly fine.

This is the code for the executable:

using DLLName;

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

Before dynamically compiling the code I add the assembly via

compilerParameters.ReferencedAssemblies.Add("PathToDLL");

I write the executable to the same directory as the dll.

EDIT

This is the code that I use to invoke the compiler:

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

There are 0 best solutions below