Winforms Windows窗体设计时错误

Winforms Windows窗体设计时错误,winforms,visual-studio-2008,designer,Winforms,Visual Studio 2008,Designer,我正在使用Visual Studio 2008,尝试打开其中一个窗体时收到以下错误消息: 找不到具有的终结点元素 名称“WSHttpBinding_ICommon”和 合同中的“CommonWCF.ICommon” ServiceModel客户端配置 节。这可能是因为没有 已找到您的配置文件 应用程序,或者因为没有端点 与此名称匹配的元素可以是 在客户端元素中找到 以及下面的堆栈跟踪 在 System.ComponentModel.ReflectPropertyDescriptor.SetVal

我正在使用Visual Studio 2008,尝试打开其中一个窗体时收到以下错误消息:

找不到具有的终结点元素 名称“WSHttpBinding_ICommon”和 合同中的“CommonWCF.ICommon” ServiceModel客户端配置 节。这可能是因为没有 已找到您的配置文件 应用程序,或者因为没有端点 与此名称匹配的元素可以是 在客户端元素中找到

以及下面的堆栈跟踪

在 System.ComponentModel.ReflectPropertyDescriptor.SetValue(对象 组件、对象值)在 System.ComponentModel.Design.Serialization.CodeDomainSerializerBase.DeserializePropertyAsignStatement(IDesignerSerializationManager 代码分配经理声明 陈述 CodePropertyReferenceExpression propertyReferenceEx,布尔型 报告错误)在 System.ComponentModel.Design.Serialization.CodeDomainSerializerBase.DeserializeAssignStatement(IDesignerSerializationManager 代码分配经理声明 声明)在 System.ComponentModel.Design.Serialization.CodeDomainSerializerBase.DeserializeStatement(IDesignerSerializationManager 代码经理(声明)

然而,我确实在App.Config中提供了建议的元素,并且一切都在运行时工作。然而,每当我尝试打开表单时,我都会收到这条消息,这并不太糟糕,因为我可以忽略它,但当我打开时,许多控件(在右侧和/或底部带有锚定的控件)都会移动,我的网格会自动从数据源中恢复我以前删除的所有列(列)


有什么建议/解决办法吗?这是Visual Studio 2008错误吗?

您在哪里使用端点?您真的需要它吗,还是只能在运行时调用它?您可以使用Component.DesignMode属性确定是否处于设计模式,以便可以防止对端点进行调用。要完全调试您的设计时体验,请遵循本文中的说明。

您在哪里使用端点?您真的需要它吗,还是只能在运行时调用它?您可以使用Component.DesignMode属性确定是否处于设计模式,以便可以防止对端点进行调用。要完全调试您的设计时体验,请按照本文中的说明进行操作。

我曾经在一个表单中遇到过类似的错误,该表单试图在构造函数初始化期间进行数据库调用


不幸的是,直到构造函数完成后,才会设置Component.DesignMode

我曾经在一个表单中遇到过类似的错误,该表单试图在构造函数初始化期间进行数据库调用

不幸的是,直到构造函数完成后,才会设置Component.DesignMode

我使用

        if (LicenseManager.UsageMode == LicenseUsageMode.Designtime)
        {
            return;
        }
检查构造函数中是否有InitializeComponent()以外的设计模式,如果有,则检查Load方法中的设计模式。

我使用

        if (LicenseManager.UsageMode == LicenseUsageMode.Designtime)
        {
            return;
        }

如果构造函数除了InitializeComponent()之外还执行其他操作,则检查构造函数中的设计模式,如果有,则检查Load方法中的设计模式。

还有另一种方法可以在设计时调试devenv进程(visual studio),如前所述

这有助于在设计模式下打开表单引发异常(即向用户显示错误)

以下是那篇文章的摘要:

  • 打开新的Visual Studio实例
  • 打开任何源文件。这是必需的,以便VisualStudio允许您附加到进程
  • 将新的Visual Studio实例附加到第一个实例。Visual Studio进程称为devenv.exe。您只需要附加到托管代码
  • 将Visual Studio设置为在引发公共语言运行时异常并由用户处理时中断。 关闭有问题的表单,然后重新打开它

  • 这将导致在Visual Studio的第二个实例中的代码中捕获异常

    还有另一种在设计时调试devenv进程(visualstudio)的方法,如

    这有助于在设计模式下打开表单引发异常(即向用户显示错误)

    以下是那篇文章的摘要:

  • 打开新的Visual Studio实例
  • 打开任何源文件。这是必需的,以便VisualStudio允许您附加到进程
  • 将新的Visual Studio实例附加到第一个实例。Visual Studio进程称为devenv.exe。您只需要附加到托管代码
  • 将Visual Studio设置为在引发公共语言运行时异常并由用户处理时中断。 关闭有问题的表单,然后重新打开它

  • 这将导致在Visual Studio的第二个实例中的代码中捕获异常

    太棒了。这有助于找到导致问题的代码。似乎移动控件和添加网格列是另一个问题?太棒了。这有助于找到导致问题的代码。似乎移动控件和添加网格列是另一个问题?这应该在屋顶上大声喊出来!在这种情况下,这是迄今为止我所遇到的找到错误精确位置的最快和最直接的途径。太棒了!对于搜索上述菜单项的用户:要从第二个VisualStudio实例附加到devenv.exe进程,请使用Debug->Attach to process。。。;对于你的CLR异常设置,它是(VS2017)调试->窗口->异常设置。这应该在屋顶上喊出来!在这种情况下,这是迄今为止我所遇到的找到错误精确位置的最快和最直接的途径。太棒了!对于搜索上述菜单项的用户:要从第二个VisualStudio实例附加到devenv.exe进程,请使用Debug->Attach to process。。。;对于CLR异常设置,它是(VS2017)调试->窗口->异常设置。