完整的错误说明是按如下:
而且我发现了几个类似的问题之前发布的: 一个和乙
但在A和B的问题不提供问题描述的细节(或许我们提示了同样的错误消息,但由不同的原因造成的呢?我不知道..)。 任何如何,答案在A和B没有很好的解决办法。 所以我决定用一些更详细张贴类似的问题。
我的问题是按照如下:
设计器自动生成一个新的代码(ErrSer1.Designer),它包含在(ErrSer.Designer)相同部分的类名。 [图中所示为printScreen_1 - >线25]
正如我们所看到的区别是,一个是在ErrSer1.Designer(额外的自动生成的一个)
内部类ErrSer
另外一个是在ErrSer.Designer(原一个谁假设是)
局部类ErrSer
这里是printScreen_1显示ErrSer1.Designer(额外的自动生成一个)[注意线25]
这里是printScreen_2显示ErrSer.Designer(原始的和通常的一种)[注意线3]
最后......我能做些什么来解决这个恼人的自动生成的代码的问题?
EDIT1:我ErrSer表格声明如下
public partial class ErrSer : Form
EDIT2:我的.csproj文件
我的.csproj文件位置
您(意外),已经为“ErrSer.resx”文件“ResXFileCodeGenerator”中的“自定义工具”属性。 因此,Visual Studio生成该文件的冗余源文件。
为了解决这个问题,打开解决方案资源管理,然后在“FormFile”文件夹中展开“ErrSer.cs”节点。 右键单击“ErrSer.resx”文件,并选择“属性”。 在属性窗口中清除“自定义工具”属性的值:
然后,清除指定值生成项目。
你的问题是,你有一个Form
名为ErrSer
并命名一个资源文件ErrSer
与自定义工具集。 只有两个条件在我脑海中的这种情况下发生
你有一个形式,你不小心设置自定义工具属性上的文件,这样即使你不需要它来生成并为您的资源生成ErrSer.Designer.cs文件。
你有一个表单,您已经创建了一个的ResX同名。
对于第一种情况下,只需卸下的ResX文件,并生成设计文件自定义工具属性。 对于第二种情况下,重命名您的ResX文件。
看着这条看起来,你可以更改代码的生成的行为背后。
提供的代码似乎是VS 2005/2008(上次修改似乎是2009)
也许你能适应它为2010或更高版本
似乎有根据本文对2012的扩展这里
@jhyap:你有两个选择..
- 标记生成的类为部分系统。
原因:你已经创建了一个局部类是类似于由系统生成的类。 然而,系统完全不认识你已经创建的类具有相同的名称。 通过用键字部分标记系统生成的类。 编译器将合并你已经与系统生成的类编写的类,并把它当作一个类。
注意:如果你决定标记系统生成的类的部分,你必须访问修饰符从内部modifiy公共,或让你的类内部。 因为访问修饰符应该使用部分类概念时相匹配。
- 改变你写的类的名称。
原因:如果万一你想确保你已经写好了CALSS无关与由系统生成的类,你不希望将系统生成的类成员与你的合并。 那么这是最好的解决办法。
其中一个上面提到的步骤将解决你的问题是肯定的。
文章来源: Missing partial modifier on declaration of type 'x' - cause by auto-generated code by designer