C# 启动时WinForms的TypeInitializationException异常

C# 启动时WinForms的TypeInitializationException异常,c#,winforms,exception,C#,Winforms,Exception,在我启动应用程序的那一刻,我得到了标题中提到的异常。它工作得很好,我添加了系统。媒体库播放了一些声音,我试着播放它第一次崩溃时的感叹号声音。我用Ctrl+z删除了所有新添加的库和代码,但现在它甚至无法运行,这就是我得到的: 这是我播放的声音System.Media.SystemSounds.惊叹号.Play 转到异常设置并为TypeInitializationException添加复选标记 再次运行调试器-通过这样做,调试器应该在异常发生时停止。在那里你可能会发现你的问题 我认为您正在访问Ma

在我启动应用程序的那一刻,我得到了标题中提到的异常。它工作得很好,我添加了系统。媒体库播放了一些声音,我试着播放它第一次崩溃时的感叹号声音。我用Ctrl+z删除了所有新添加的库和代码,但现在它甚至无法运行,这就是我得到的:

这是我播放的声音System.Media.SystemSounds.惊叹号.Play


转到异常设置并为TypeInitializationException添加复选标记

再次运行调试器-通过这样做,调试器应该在异常发生时停止。在那里你可能会发现你的问题


我认为您正在访问MainPoker类中的任何文件,因为消息说路径不是合法形式。只是猜测…

我把它修好了。问题出在我的资源上。我有一个字符串,它给程序中的一个静态字符串赋值。有东西破坏了资源中的字符串,导致静态字符串的位置无效。我刚刚创建了一个新表单,将其作为启动项目运行,并从那里修复了我资源中的字符串。

请在帖子中以文本形式提供内联。我尝试过,但我确实不知道问题的原因。我应该发布什么,构造器?我试着把断点放在构造函数中,但它不会在声明变量的地方触发,所以我的代码没有问题,正如我所说的,在添加库之前,它工作得很好。程序恰好在屏幕快照中标记的行处中断。它仍然在同一行处崩溃。那么,您能否发布代码,该代码将在MainPoker类实例化后立即执行?这是构造函数代码、成员变量初始化以及-假设这是一个表单-表单加载事件可能会被覆盖为OnLoadUpdated my question,使用表单加载方法和构造函数HM,Shuffle、UpdateStatistics、Updates.Start或PickNextBlind中可能存在可疑代码。可能在InitializeComponent中,但我不这么认为,因为这应该只是设计器生成的代码。它甚至没有到达构造函数,至少我的断点没有被触发
    private async void Form1_Load(object sender, EventArgs e)
    {
        await Shuffle();
        UpdateStatistics(folds, playedHands, lostHands, wonHands);
    }

    public MainPoker()
    {
        turns.Add(PFturn);
        turns.Add(B1Fturn);
        turns.Add(B2Fturn);
        turns.Add(B3Fturn);
        turns.Add(B4Fturn);
        turns.Add(B5Fturn);
        KeyPress +=
            Form1_KeyPress;
        _settings.Height = 140;
        _settings.Width = 90;
        call = bb;
        MaximizeBox = false;
        MinimizeBox = false;
        Updates.Start();
        InitializeComponent();
        PickNextBlind();
        Timer.Interval = (1000);
        Timer.Tick += timer_Tick;
        Updates.Interval = (100);
        Updates.Tick += Update_Tick;
        tbRaise.Text = (bb * 2).ToString();
    }