如何在Visual Studio外部以调试模式运行winforms app

时间:2011-03-27 18:04:47

标签: winforms

当我从visual studio启动winform应用程序时,它会进行额外的运行时检查以检查错误。特别是如果我在创建它的线程之外访问一个表单元素,它会抛出异常,文本“跨线程操作无效”。

当我运行在Visual Studio外部启动进程的集成测试时,未启用该检查。我正在运行可执行的构建结果,除了使用Process.Start()和自定义命令行参数启动它。

如何在visual studio之外运行可执行文件时启用运行时检查?

2 个答案:

答案 0 :(得分:2)

这由Control.CheckForIllegalCrossThreadCalls属性控制。它使用Debugger.IsAttached的值初始化。只需将其设置为true即可在您的程序未被调试时强制检查。例如:

    private void button1_Click(object sender, EventArgs e) {
        Control.CheckForIllegalCrossThreadCalls = true;
        var t = new System.Threading.Thread(() => {
            try {
                this.Text = "kaboom";
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        });
        t.Start();
    }

当您使用Ctrl + F5启动程序或在Visual Studio外部运行时,会弹出消息框。

答案 1 :(得分:0)

它构建了一个调试和发布版本,你不能在集成测试中运行调试版本吗?