3

Код:CompileAssemblyFromDom бросает доступ запрещен исключение

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

Он бросает исключение: CS1567 Ошибки создания Win32 ресурса: доступ запрещен.

Что это значит?

+0

Запуск procmon и фильтрация ошибок, чтобы вы могли видеть, что было отклонено. – SLaks

+0

Получил. CreateFile C: \ Windows \ SysWOW64 \ inetsrv \ CSCA77DD801384044AFAFB245A7DED3D4DB.TMP ACCESS DENIED – Jekas

+0

Но до сих пор не знаю, почему он использует это местоположение. C: \ Windows \ SysWOW64 \ inetsrv \? – Jekas

ответ

5

Я получаю эту работу. Проблема состояла в том, что assemblyName был именем файла не путь, поэтому я изменил

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

И он начинает работать!

Смежные вопросы