我有一个使用第三方控件库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;
}
}
答案 0 :(得分:1)
要检查的事情......
1)希望您没有将第三方DLL添加到您的bin目录中......清理您的解决方案会清空bin目录!
2)检查项目的参考文献 - 是否有惊叹号?如果是这样,您需要重新引用它们。
您获得的许多其他错误可能是因为您的其他程序集(如包含“MyType”的程序集)未构建。如果您可以计算逻辑顺序并首先修复最低的依赖项,那么大多数其他问题会消失。
例如......
项目A引用项目B,其中包含“MyType” 项目B参考第三方项目A. 由于某种原因,第三方项目A缺失......
项目A会在整个地方吐出错误,因为没有为项目B创建DLL,因为它没有构建。只需修复项目B中的参考问题,所有错误都将消失。
希望这有帮助。