2013-05-29 116 views
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); 

它開始工作!

相關問題