Я очистил решение, но мое приложение Winform сломалось - PullRequest
0 голосов
/ 09 апреля 2010

У меня есть приложение Winform, которое использует стороннюю библиотеку элементов управления, DevExpress. Я также создал несколько элементов управления, расширяя эти элементы управления. Все работало нормально, когда сегодня я неожиданно открыл 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

Помощь!?!?

Когда я гуглил, я сталкивался в основном со ссылками на VS 2003 ... Я на 2008 sp1.

Вот пример моих расширенных элементов управления. Ничего фантастического. Я делаю это почти для каждого элемента управления. Все они находятся в своем собственном классе, но в этом же файле, MyExtendedControls.cs, который находится в том же проекте, что и приложение WinForm.

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 Ответ

1 голос
/ 09 апреля 2010

Что проверить ...

1) Надеюсь, вы не добавили сторонние библиотеки DLL в каталог bin ... очистка вашего решения опустошает каталог bin!

2) Проверьте ссылки на проект - есть ли восклицательные знаки? Если это так, вам нужно будет повторно сослаться на них.

Многие другие ошибки, которые вы получаете, могут быть связаны с тем, что ваши другие сборки (например, содержащие MyType) не создаются. Если вы можете сначала определить логический порядок и исправить самую низкую зависимость, большинство других ваших проблем уйду.

Например ...

Проект A ссылается на проект B, который содержит «MyType» Проект B ссылается на сторонний проект A Сторонний проект А почему-то отсутствует ...

Проект A будет выдавать ошибки повсюду, потому что не может быть создана DLL для проекта B, потому что он не собирается. Если просто устранить проблему с ссылками в проекте B, все ошибки исчезнут.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...