Visual Studio заблокирован в режиме разработки после расширения пользовательского элемента управления - PullRequest
2 голосов
/ 15 декабря 2011

У меня есть проект в Visual Studio 2010 (преобразован из 2008), и я создал пользовательский элемент управления, например:

namespace Common.Controls 
{
    public partial class Panel_BaseMap : UserControl 
    {
        public Panel_BaseMap()
        {
            //Some properties initialization here, just like = new X();
            InitializeComponent();
        }

        private void BaseMapPanel_Load(object sender, EventArgs e) {
            //Here, a new Thread is initialized and started.
        }
    }
}

У меня нет проблем с этим, он открывается без проблем в режиме разработки. Но я создал новый UserControl, который распространяется на первый, например:

using Common.Controls;
namespace BC.controls 
{
    public partial class MapPanel : Panel_BaseMap 
    {
        public MapPanel()
        {
            InitializeComponent();
        }
    }
}

Что ж, в тот самый момент, когда я пытаюсь открыть этот новый элемент управления в режиме разработки, Visual Studio полностью блокируется, и мне приходится принудительно закрывать его, потому что он не отвечает. Я перепробовал много вещей, например:

public MapPanel()
{
    if (!this.DesignMode)
        InitializeComponent();
}

Все еще заблокирован. Я открыл второй экземпляр Visual Studio, затем первый «Debug -> Attach to process -> devenv», и я установил точку останова для метода Load и для обоих конструкторов во втором экземпляре. Результат: оба экземпляра полностью заблокированы.

Кто-нибудь может мне помочь, пожалуйста?

Большое спасибо заранее!

1 Ответ

0 голосов
/ 31 января 2012

Хорошо, я нашел проблему.

Некоторый код был выполнен дизайнером, и этот код вызвал сбой приложения. Это было внутри try-catch, и внутри catch я зарегистрировал ошибку с помощью метода, который попытался загрузить зашифрованный файл с помощью: Directory.GetFiles (Application.StartupPath, "* .xml"). Проблема в том, что Application.StartupPath - это не путь к моему приложению, а «C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ Microsoft.Data.ConnectionUI.xml». Итак, когда я попытался расшифровать его, он выдал еще одно исключение, которое было зарегистрировано с помощью того же метода ... так бесконечный цикл!

...