CompileAssemblyFromSource返回错误“编译表达式:无法打开c:\ Users \ *”,以读取'c:\ Users \ *不是有效的Win32资源文件

问题描述

我的应用程序生成并编译代码运行时:

CompilerParameters m_cp = new CompilerParameters();
m_cp.ReferencedAssemblies.Add("system.dll");            
m_cp.GenerateExecutable = false;
m_cp.GenerateInMemory = true;
m_cp.CompilerOptions = "/optimize";
...
CompilerResults cr = new CSharpCodeProvider().CompileAssemblyFromSource(m_cp,code.ToString());
if (cr.Errors.HasErrors)
{
   //getting here with error:
   //"Compiling Expression: cannot open c:\Users\*" for reading 
   //'c:\Users\* is not a valid Win32 resource file
   // Example of file c:\Users\[User]\AppData\Local\Temp\1\faw31esr\CSC23CEA88A205E4588B799FD8B4456176B.TMP
}

仅某些用户会遇到问题,但是他们的访问是可以的(访问与无故障用户相同)。例如。有问题的用户可以进入显示的目录并删除文件

解决方法

其中一种漏洞管理产品阻止了文件访问并导致错误。