Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 更改UserControl文件中的名称空间后,…g.cs文件出现错误_Wpf - Fatal编程技术网

Wpf 更改UserControl文件中的名称空间后,…g.cs文件出现错误

Wpf 更改UserControl文件中的名称空间后,…g.cs文件出现错误,wpf,Wpf,我从另一个WPF项目中复制了三个类,然后更改了它们的名称空间 现在,当我运行项目时,.g.cs文件中出现错误,表明名称空间不正确。我更改了这个名称空间,但当我再次编译并运行时,.g.cs文件会重新生成并被旧名称空间版本覆盖,我再次收到错误 文件是什么,我如何使它们从当前文件中重新生成,而不是从某个明显保存在某处的缓存中重新生成 我删除了\bin和\obj目录并重建了它们,但仍然得到了错误。您是否也更新了XAML中UserControl的x:class属性中的类名称空间 如果失败,是否尝试重建项目

我从另一个WPF项目中复制了三个类,然后更改了它们的名称空间

现在,当我运行项目时,.g.cs文件中出现错误,表明名称空间不正确。我更改了这个名称空间,但当我再次编译并运行时,.g.cs文件会重新生成并被旧名称空间版本覆盖,我再次收到错误

文件是什么,我如何使它们从当前文件中重新生成,而不是从某个明显保存在某处的缓存中重新生成


我删除了\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")]