Wpf 更改UserControl文件中的名称空间后,…g.cs文件出现错误
我从另一个WPF项目中复制了三个类,然后更改了它们的名称空间 现在,当我运行项目时,.g.cs文件中出现错误,表明名称空间不正确。我更改了这个名称空间,但当我再次编译并运行时,.g.cs文件会重新生成并被旧名称空间版本覆盖,我再次收到错误 文件是什么,我如何使它们从当前文件中重新生成,而不是从某个明显保存在某处的缓存中重新生成Wpf 更改UserControl文件中的名称空间后,…g.cs文件出现错误,wpf,Wpf,我从另一个WPF项目中复制了三个类,然后更改了它们的名称空间 现在,当我运行项目时,.g.cs文件中出现错误,表明名称空间不正确。我更改了这个名称空间,但当我再次编译并运行时,.g.cs文件会重新生成并被旧名称空间版本覆盖,我再次收到错误 文件是什么,我如何使它们从当前文件中重新生成,而不是从某个明显保存在某处的缓存中重新生成 我删除了\bin和\obj目录并重建了它们,但仍然得到了错误。您是否也更新了XAML中UserControl的x:class属性中的类名称空间 如果失败,是否尝试重建项目
我删除了\bin和\obj目录并重建了它们,但仍然得到了错误。您是否也更新了XAML中
UserControl
的x:class
属性中的类名称空间
如果失败,是否尝试重建项目?该.g.cs文件是从.xaml文件生成的。您需要更改.xaml文件中的x:class=属性,以匹配新的命名空间限定类名;然后在下一次编译时正确生成.g.cs。(不要手动更改.g.cs文件——这只会让您自己感到沮丧。) 例如,如果以前在.cs中有此项:
namespace Foo {
class Bar { ...
在您的.xaml中:
<UserControl x:Class="Foo.Bar" ...
然后需要将.xaml文件更改为:
<UserControl x:Class="Baz.Bar" ...
另一个可能的原因是,如果您的xaml中有任何xmlns:xx
名称空间,在更改名称空间时忽略了更新,然后,这也会导致g.cs文件中的using语句无效。我找到了另一种解决方法,删除“obj”文件夹并重新生成。我在我的AssemblyInfo.cs中定义了XML命名空间快捷方式
[assembly: XmlnsDefinition("http://www.example.com/wpf", "MyCorp.Wpf.OldNamespace")]
旧名称空间仍然存在的位置。
搜索所有我的*.xaml文件显然没有帮助
修复快捷方式后,错误立即消失。我遇到了这个问题,并尝试删除obj
和bin
文件夹,但这不起作用。当我选择Project>Clean
然后选择Project>Build
时,它最终被编译了。我的系统上的其他地方一定有一些Visual Studio缓存。就是这样:只需更改x:class=条目,一切又恢复正常,谢谢!我在本地一切正常,但在构建服务器上出现故障-不得不登录到构建服务器并删除obj文件夹…+1这是我的原因。自动生成的xmlns:local=“clr namespace:Some.App.namespace”
不正确,指向错误的命名空间。
[assembly: XmlnsDefinition("http://www.example.com/wpf", "MyCorp.Wpf.OldNamespace")]