我正在使用WAF框架来构建MVVM应用程序。我有自己的App-Class(App.xaml和App.xaml.cs)。
每次我尝试编译我的应用程序时,我都会得到3个不同的错误消息:
1.类型MyApplication.Presentation.App
已经定义了一个具有相同类型参数的成员InitializeComponent
1.类型MyApplication.Presentation.App
已经定义了一个具有相同类型参数的成员Main
1.类型MyApplication.Presentation.App
已包含_contentLoaded
的定义
当我点击错误消息时,我被重定向到一个名为App.g.cs的文件。如果我删除了这个文件中的所有内容,我的应用程序将被构建,并且一切都可以按预期工作。但经过另一次更改后,文件又回来了,我将不得不再次删除它。
我检查了我所有的文件,我找不到这3个成员的另一个定义。我在任何地方都没有另一个主方法。我也试着重命名我的应用程序,但这并没有解决问题。
有什么建议我可以做什么来解决这个恼人的问题?
3条答案
按热度按时间2izufjch1#
我最近遇到了非常类似的情况,结果是在导入现有代码文件时,我导入了
obj
目录本身!x1c 0d1x的数据例如,该目录包含自动生成(并自动导入)的
MainWindow.g.i.cs
文件。所以我实际上是两次包含了相同的分部类定义,因此出现了“已经定义”的错误。从项目中排除此文件夹并重新生成解决方案可以解决错误。
gupuwyp22#
如果其他人也有类似的问题,这是我的解决方案:
问题发生后,我复制并粘贴我的一个视图(.xaml和.cs文件)。我改变了文件的名称,但不是类名,所以我有两个同名的类。然后在代码中的其他更改后,我忘记了它。这是与所讨论的错误相同的错误。
因此,就像前面的答案一样,编译器在自动生成g.cs和g.i.cs文件时会出错-因为已经使用了这个类名。一个类是局部的(就像XAML视图一样),所以重复的类名不是问题,但是重复的构造函数和其他所有东西都是问题。
cotxawn73#
和乌苏拉一样,我也做了类似但不一样的事情。我做的事情是;
1.我想把我的样式从App.xaml转移到另一个地方,以便更容易地管理和查找
1.首先我创建了一个新的资源字典
1.然后将样式移到新样式。
x:Class="SomeApplicationName.App" too
1.去掉那条线后。问题已经解决了:-)