Visual Studio WPF生成相同的冲突部分类文件

Visual Studio WPF生成相同的冲突部分类文件,wpf,vb.net,visual-studio-2012,user-controls,code-behind,Wpf,Vb.net,Visual Studio 2012,User Controls,Code Behind,我在WPF项目中有自定义用户控件。我的解决方案将不再编译。当我尝试在清理/重建(甚至在删除bin和obj文件夹后)后构建/包括时,VS生成两个代码文件:control.g.vb和control.g.I.vb 这些文件中的代码包含连接到codebehind类的分部类,并且生成的两个文件是相同的。Visual studio随后确定它们相互冲突,导致编译错误,例如“Public Sub InitializeComponent()具有多个具有相同签名的定义”,一个在control.g.vb中,另一个在c

我在WPF项目中有自定义用户控件。我的解决方案将不再编译。当我尝试在清理/重建(甚至在删除bin和obj文件夹后)后构建/包括时,VS生成两个代码文件:control.g.vb和control.g.I.vb

这些文件中的代码包含连接到codebehind类的分部类,并且生成的两个文件是相同的。Visual studio随后确定它们相互冲突,导致编译错误,例如“Public Sub InitializeComponent()具有多个具有相同签名的定义”,一个在control.g.vb中,另一个在control.g.i.vb中

发生了什么,它是如何发生的,我如何修复它

我已经在google、SO和MSDN上搜索了我能想到的所有相关关键词。我发现最相关的建议是删除bin和obj文件,并进行清理和重建,我已经尝试过了

示例错误
错误“Public Sub System\u Windows\u Markup\u IComponentConnector\u Connect(connectionId为整数,目标为对象)”具有多个具有相同签名的定义。{solution file path}\obj\x86\Debug\Controls\user Controls{folder}{control}.g.i.vb{project}

简短回答:在Visual Studio中重命名文件时要非常小心


我已经重命名了一些文件和类,但没有捕获对它们的所有引用。我有一些控件,它们指向的类的名称不同于它们自己的代码隐藏文件,类的名称也不同于它们所在的文件。难怪Visual Studio会感到困惑。

这些文件总是生成的。如果我敢打赌,我会说您更改了一个或两个用户控件的名称空间,但没有正确执行。如果您这样做了,我建议将这些控件的XAML和cs文件复制到解决方案之外的位置,在您希望它们存在的位置创建新版本,然后将每个原始文件的最小值复制到它们的新版本中。这意味着只复制类定义(没有名称空间!),以及除XAML中的根元素之外的所有内容。只添加那些需要编译的属性。如果这不起作用,创建一个新的解决方案,复制一个用户控件,然后尽可能地编辑所有内容,同时仍然重现问题。一旦你把它配对成一个最小的例子,把它放在一个。据我所知,我根本没有触及名称空间。我没有试着把他们转移到一个新的地方或任何事情。此外,在这个解决方案中,我只能控制一个项目的一小部分。如果我试图查看更多的内容进行编辑,这将给项目中的其他开发人员带来问题。不幸的是,这里没有足够的信息来回答。准确的错误信息(请不要截图!)会有所帮助。代码会有帮助(这就是为什么我建议重新编程和结对)。我将继续重新编程并将其减少。同时,请参见编辑以获取我得到的实际错误的示例,如果我能提供更多有用的信息,请告诉我。