我清理解决方案我的Winform应用程序,现在它已经坏了

时间:2010-04-09 18:21:02

标签: .net winforms visual-studio-2008

我有一个使用第三方控件库DevExpress的Winform应用程序。我自己也创建了一堆控件,扩展了这些控件。一切都工作正常突然我今天打开了VS并且在设计页面上我的所有扩展控件都丢失了。然后我尝试重建无济于事。然后我尝试了清洁和重建,使情况变得更糟。现在我有很多(520)的错误表示像 - >

Error 179 The name 'datBirthDate' does not exist in the current context D:\Documents\Visual Studio 2008\Projects\MatrixReloaded\MatrixReloaded\Controls\Member\ucGeneral.cs 339 17 MatrixReloaded

如果我尝试在设计模式下打开表单或用户控件,我首先得到这个 - >

could not find type, "MyType" please make sure that the assembly that contains this type is referenced

然后,如果我单击忽略并继续,当我尝试在设计模式下查看它们时,我会获得所有表单和控制器 - > Exception of type System.OutOfMemoryException was thrown

帮助!?!?

当我用Google搜索时,我偶然发现了对VS 2003的引用......我是在2008年的sp1。

以下是我的扩展控件的示例。没有什么花哨。我几乎为每一个控制都这样做。所有这些都在自己的类中,但在同一个文件MyExtendedControls.cs中,它与WinForm App位于同一个项目中。

using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

using DevExpress.XtraEditors;

public class MyTextBox : TextEdit
{
    private bool _isRequired;
    /// <summary>
    /// Used to determine if this is a required field
    /// </summary>
    [Description("Is this a required control")]
    public bool isRequired
    {
        get
        {
            return _isRequired;
        }
        set
        {
            _isRequired = value;
        }
    }

    private bool _isChanged;
    /// <summary>
    /// Used to determine if this field's data has changed
    /// </summary>
    [Description("RUNTIME: This fields data has changed")]
    public bool isChanged
    {
        get
        {
            return _isChanged;
        }
        set
        {
            _isChanged = value;
        }
    }

1 个答案:

答案 0 :(得分:1)

要检查的事情......

1)希望您没有将第三方DLL添加到您的bin目录中......清理您的解决方案会清空bin目录!

2)检查项目的参考文献 - 是否有惊叹号?如果是这样,您需要重新引用它们。

您获得的许多其他错误可能是因为您的其他程序集(如包含“MyType”的程序集)未构建。如果您可以计算逻辑顺序并首先修复最低的依赖项,那么大多数其他问题会消失。

例如......

项目A引用项目B,其中包含“MyType” 项目B参考第三方项目A. 由于某种原因,第三方项目A缺失......

项目A会在整个地方吐出错误,因为没有为项目B创建DLL,因为它没有构建。只需修复项目B中的参考问题,所有错误都将消失。

希望这有帮助。