TheRealPetron
TheRealPetron

Reputation: 31

badimageformatexception dynamic code generation

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);

Upvotes: 0

Views: 204

Answers (0)

Related Questions