Winforms VS 2012生成的App.exe和App.vshost.exe显示形式不同

Winforms VS 2012生成的App.exe和App.vshost.exe显示形式不同,winforms,c#-3.0,visual-studio-2012,vshost.exe,Winforms,C# 3.0,Visual Studio 2012,Vshost.exe,我有一个表单正在用作数据输入向导。它承载一系列面板,每个面板停靠以填充显示区域。我一直在使用VS2010和VS2012 RC处理显示器,有一段时间没有出现任何问题 然而,我最近安装了VS 2012 RTM,并遇到了一个奇怪的问题:当在IDE中使用F5运行应用程序时,App.vshost.exe显示的表单太窄了几个像素,并且在向导中扭曲了停靠面板的显示。直接运行App.exe(通过IDE中的Ctrl-F5或直接运行.exe)时,表单大小正确。调试和发布配置都会出现相同的问题 我在VS2010中测试

我有一个表单正在用作数据输入向导。它承载一系列面板,每个面板停靠以填充显示区域。我一直在使用VS2010和VS2012 RC处理显示器,有一段时间没有出现任何问题

然而,我最近安装了VS 2012 RTM,并遇到了一个奇怪的问题:当在IDE中使用F5运行应用程序时,App.vshost.exe显示的表单太窄了几个像素,并且在向导中扭曲了停靠面板的显示。直接运行App.exe(通过IDE中的Ctrl-F5或直接运行.exe)时,表单大小正确。调试和发布配置都会出现相同的问题

我在VS2010中测试了代码,App.vshost.exe和App.exe在这个特定的向导和页面中显示相同

我已经将其缩小到将窗体显示为对话框,其中显示的窗体将其FormBorderStyle设置为FixedSingle。例如:

    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            SubForm subForm = new SubForm();
            subForm.ShowDialog(this);
        }
    }

    public partial class SubForm : Form
    {
        public SubForm()
        {
            InitializeComponent();
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
        }
    }
在上面的示例中,显示的子窗体的大小因您运行的是App.vshost.exe还是App.exe而异。(在我的实际代码中,表单边框样式设置为基本表单的.Designer.cs文件的一部分。)


有人知道为什么编译后的App.vshost.exe会以不同的方式显示吗?更好的是,有人知道我如何调整VS 2012,以便我可以信任App.vshost.exe的显示输出吗?谢谢

所以,事实证明它是Visual Studio 2012中的一个bug。建议的解决方法是禁用Visual Studio宿主进程

错误跟踪: