CompileAssemblyFromDom抛出访问被拒绝的exception
代码:
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()); }
它抛出exception:CS1567生成Win32资源时出错:访问被拒绝。
这是什么意思?
我得到了这个工作。 问题是assemblyName是文件名而不是路径,所以我改变了
assemblyName = Path.Combine(Path.GetTempPath(), assemblyName);
它开始工作了!
我得到了同样的错误,但AssemblyName没有为我修复它。 我能够通过使用TempFiles参数来修复它。 此外,由于某种原因它在临时路径本身不起作用,只有在我在那里创建自己的子文件夹时才有效。
上述就是C#学习教程:CompileAssemblyFromDom抛出访问被拒绝的exception分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
string tempPath = Path.GetTempPath() + "\mysubfolder"; Directory.CreateDirectory(tempPath); var parameters = new CompilerParameters(includeAssemblies.ToArray()) { GenerateInMemory = true, TempFiles = new TempFileCollection(tempPath) };
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1039576.html