Search code examples
c#.netcompilationcode-generationcsharpcodeprovider

CompileAssemblyFromDom throws access denied exception


The code:

using (var codeProvider = new CSharpCodeProvider())
{
    var compilerParameter = new CompilerParameters(
                _assemblies, assemblyName, false)
            {
                GenerateInMemory = true,
                CompilerOptions = "/optimize"
            };

    var compilerResults = codeProvider.CompileAssemblyFromDom(
                compilerParameter, templateResults.Select(r => r.GeneratedCode)
                .ToArray());
}

It throws exception: CS1567 Error generating Win32 resource: Access is denied.

What does it mean?


Solution

  • I get this working. The problem was that assemblyName was file name not path, so I changed

    assemblyName = Path.Combine(Path.GetTempPath(), assemblyName);
    

    And it start working!