我以前在我的WPF应用程序项目中有一个名为“Controls”的子文件夹。它包含一个WPF用户控件。我决定将该用户控件移动到我的“Views”文件夹中。由于原始文件夹为空,我决定将其从项目中删除。
因为删除了用户控件和文件夹,我收到编译错误,因为用户控件使用了ProjectName.Folder
命名空间,现在没有任何引用它。 MainWindow.g.cs是在using语句中引用ProjectName.Controls
的内容。
我知道* .g.cs是由VS生成的,无法编辑,因为它会被覆盖。如何才能将该命名空间写入g.cs文件?我尝试清理我的解决方案/项目并重建,但没有任何工作。
答案 0 :(得分:11)
我在Xaml代码(MainWindow.xaml)中有一个对Controls命名空间的本地引用。我删除了引用,清理了项目并生成了一个成功的构建。
答案 1 :(得分:5)
在您的用户控制文件中
在ClassName.xaml中,您必须更改命名空间,如下所示
<UserControl
x:Class="YourOldNamespace.ClassName"
...
...
/>
在ClassName.xaml.cs中,您必须更改命名空间,如下所示
using System;
using System.Windows;
namespace YourOldNamespace{
public class ClassName{ ....
}
在这两个文件中,您必须根据需要将YourOldNamespace替换为某个新的命名空间。
答案 2 :(得分:1)
我之前在项目中遇到过g.cs文件的问题。由于它们是自动生成的,我倾向于手动删除文件并重建。
答案 3 :(得分:1)
也不要忘记,您必须检查单击受影响的XAML文件时是否将Build Action属性设置为PAGE(而不是资源)。这对于了解何时使用复制粘贴从另一个项目复制XAML来节省时间非常有用。
答案 4 :(得分:1)
另请参阅App.xaml和所有资源词典。无论出于何种原因,VS 2012的文件替换/“整个解决方案”选项都没有在App.xaml中找到旧的命名空间引用,不得不手动更改它。为我修好了。
答案 5 :(得分:0)
不要忘记更改Generic.xaml文件,
<ResourceDictionary
xmlns:local="clr-namespace:MyOldNameSpace">
</ResourceDictionary>