5

我对 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.

如果代码针对 .NET 4,则当我更改表单区域或功能区中的任何属性时,实际上会发生这种情况。在针对 .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. 在 Visual Studio 2010 (.NET 4) 中创建一个新的 Outlook 2010 插件项目
  2. 将一个新的 FormRegion 项添加到项目中(无论您启用哪个项目,它是相邻的还是单独的表单区域也无关紧要)
  3. 打开新的项目属性并将Localizable属性更改为true
  4. 关闭项目并重新打开它
4

0 回答 0