Изменение любого свойства формы области / ленты нарушает работу редактора Visual Studio - PullRequest
5 голосов
/ 11 июня 2010

У меня проблема с проектом Visual Studio 2010 и Outlook Addin 2010 (цель .NET 4).Я добавил область формы в свой проект, а затем изменил свойство Localizable на true.Теперь, если я закрываю область формы и открываю ее снова, я получаю эту страницу ошибки VS:

To prevent possible data loss before loading the designer, the following errors 
must be resolved: 
The variable 'resources' is either undeclared or was never assigned.

Это действительно происходит, когда я изменяю любое свойство в области формы или на ленте, если код предназначен для .NET4. В проектах, нацеленных на .NET 3.5, все в порядке.Вот пример кода, на который ссылается эта ошибка, был создан VS и является частью FormRegion.Designer.cs.Он разбивается на строку ApplyResources (если я закомментирую это, тогда все в порядке).

private void InitializeComponent()
{
    System.ComponentModel.ComponentResourceManager resources = 
        new System.ComponentModel.ComponentResourceManager(typeof(FormRegion1));
    this.SuspendLayout();
    // 
    // FormRegion1
    // 
    resources.ApplyResources(this, "$this");
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.Name = "FormRegion1";
    this.FormRegionShowing += 
        new System.EventHandler(this.FormRegion1_FormRegionShowing);
    this.FormRegionClosed += 
        new System.EventHandler(this.FormRegion1_FormRegionClosed);
    this.ResumeLayout(false);
}

Если я решу игнорировать ошибку и заставить VS загрузить визуальный редактор, то я получу еще одну ошибку:

Cannot open a designer for the file because the class within it does not inherit 
from a class that can be visually designed. 

Сначала я подумал, что это проблема с моим кодом (мой проект перенесен с VS2008 и Outlook 2007).Но затем я создал новый проект для VS2010 и Outlook 2010, и у меня возникла та же проблема.

Шаги по его воспроизведению:

  1. Создание нового проекта надстройки Outlook 2010 в Visual Studio2010 (.NET 4)
  2. Добавление нового элемента FormRegion в проект (не имеет значения, для какого элемента вы его включаете, также не имеет значения, является ли он присоединенным или отдельным регионом формы)
  3. Откройте свойства нового элемента и измените свойство Localizable на true
  4. Закройте элемент и снова откройте его
...