完整的错误说明如下:
但是A和B中的问题没有提供问题描述的细节(也许我们提示相同的错误信息,但由不同的原因引起?我不确定......)。如何,答案在A和B没有很好的解决方案。所以我决定发布类似的问题以及更多细节。
我的问题如下:
Designer自动生成一个新代码(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文件
答案 0 :(得分:2)
您(意外)已将“ErrSer.resx”文件的“自定义工具”属性设置为“ResXFileCodeGenerator”。因此,Visual Studio会为该文件生成冗余源文件。
要解决此问题,请打开Solution explorer,然后在“FormFile”文件夹中展开“ErrSer.cs”节点。右键单击“ErrSer.resx”文件,然后选择“属性”。在属性窗口中,清除“自定义工具”属性的值:
清除指定的值,然后构建项目。
答案 1 :(得分:1)
您的问题是,您有一个名为Form
的{{1}}和一个名为ErrSer
的资源文件,其中包含自定义工具集。对于这种情况,我只想到两个条件
您有一个表单,并且您不小心在该文件上设置了自定义工具属性,因此即使您不需要生成它,也会为您的资源生成ErrSer.Designer.cs文件。
您有一个表单,并且您创建了一个具有相同名称的ResX。
对于第一种情况,只需删除ResX文件上的Custom Tool属性并生成Designer文件。 对于第二种情况,请重命名您的ResX文件。
答案 2 :(得分:0)
看着这个article,你似乎可以改变后面代码生成的行为。
所提供的代码似乎是针对vs 2005/2008(最后修改似乎是2009年)
也许你可以在2010年或之后适应它
根据这篇文章here
,似乎有2012年的扩展答案 3 :(得分:0)
@jhyap:你有两个选择..
原因:您已经创建了一个类似于系统生成的类的分部类。但系统不知道您已创建具有相同名称的类。通过用关键字partial标记系统生成的类。编译器将您编写的类与系统生成的类合并,并将其视为单个类。
注意:如果您决定将系统生成的类标记为“部分”,则必须将“修改”修改为“从内部公开”,或将您的类设置为“内部”。因为在使用分部类概念时,Access修饰符应该匹配。
原因:如果您想确保您编写的calss与系统生成的类无关,并且您不希望将System生成的类的成员与您的类合并。那么这是最好的解决方案。
上述步骤之一肯定会解决您的问题。