我的应用程序在运行时生成并编译代码:
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]AppDataLocalTemp1faw31esrCSC23CEA88A205E4588B799FD8B4456176B.TMP
}
问题只发生在某些用户身上,但他们的访问权限可以(访问权限与无故障用户相同(。例如,有问题的用户可以访问显示的目录并删除文件。
其中一个漏洞管理产品阻止了文件访问并导致错误。