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

Posted

技术标签:

【中文标题】CompileAssemblyFromSource 返回错误“编译表达式:无法打开 c:\\Users\\*”以读取 \'c:\\Users\\* 不是有效的 Win32 资源文件【英文标题】:CompileAssemblyFromSource returns error "Compiling Expression: cannot open c:\Users\*" for reading 'c:\Users\* is not a valid Win32 resource fileCompileAssemblyFromSource 返回错误“编译表达式:无法打开 c:\Users\*”以读取 'c:\Users\* 不是有效的 Win32 资源文件 【发布时间】:2020-12-06 01:10:52 【问题描述】:

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

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

问题仅发生在某些用户身上,但他们的访问权限正常(访问权限与无故障用户的访问权限相同)。例如。有问题的用户可以访问显示的目录并删除文件。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于CompileAssemblyFromSource 返回错误“编译表达式:无法打开 c:\Users\*”以读取 'c:\Users\* 不是有效的 Win32 资源文件的主要内容,如果未能解决你的问题,请参考以下文章