我对 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 创建了一个新项目,在那里我遇到了同样的问题。
重现它的步骤:
- 在 Visual Studio 2010 (.NET 4) 中创建一个新的 Outlook 2010 插件项目
- 将一个新的 FormRegion 项添加到项目中(无论您启用哪个项目,它是相邻的还是单独的表单区域也无关紧要)
- 打开新的项目属性并将
Localizable
属性更改为true
- 关闭项目并重新打开它