我正在用C#构建一个Windows应用程序。我的program.cs如下所示
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
///
static Mutex mutex = new Mutex(true, @"Global\" + Environment.UserName);
[STAThread]
static void Main()
{
if (mutex.WaitOne(TimeSpan.Zero, true))
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new AppLogin());
mutex.ReleaseMutex();
}
else
{
// send our Win32 message to make the currently running instance
// jump on top of all the other windows
MessageBox.Show("only one - 1 instance at a time");
NativeMethods.PostMessage(
(IntPtr)NativeMethods.HWND_BROADCAST,
NativeMethods.WM_SHOWME,
IntPtr.Zero,
IntPtr.Zero);
}
}
}
我能够在过去几个月内调整应用程序。突然今天我收到了一个错误未处理的类型&#39; System.TypeInitializationException&#39;发生在mscorlib.dll 中。我试图去解决这个问题,但我可以去任何地方。我已经搜索了此link上的异常adn,它有一个关于静态场或构造函数的解决方案。现在我有一个Mutex
静态字段,因此我已经注释掉了所有互斥代码,只有Application.Run(new AppLogin());
。窗口现在显示,我在窗口上有2个按钮(一个接受按钮和一个取消按钮)。在键盘上点击Esc会触发取消按钮,直到我发现此异常为止,在我注释掉互斥锁代码并启动Application.Run(new AppLogin());
之后,这会引发System.Security.SecurityException' occurred in mscorlib.dll
异常并附加Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
的其他信息。我是我正在处理的PC上的管理员,Visual Studio以管理员身份运行。我无法理解这一点。
答案 0 :(得分:-1)
在对上述原始帖子发表评论后,我搜索了解决方案文件,发现我的一位开发人员添加了一个.manifest文件。
删除.manifest文件可确保不再引发异常。我不确定app.manifest文件是如何干扰执行的。