输入Initializer Exception @ Mutex

时间:2015-11-26 10:23:56

标签: c# .net

我正在用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以管理员身份运行。我无法理解这一点。

1 个答案:

答案 0 :(得分:-1)

在对上述原始帖子发表评论后,我搜索了解决方案文件,发现我的一位开发人员添加了一个.manifest文件。

删除.manifest文件可确保不再引发异常。我不确定app.manifest文件是如何干扰执行的。