从g.cs文件中删除旧的命名空间?

时间:2010-11-17 15:50:11

标签: wpf xaml visual-studio-2010 project-folder

我以前在我的WPF应用程序项目中有一个名为“Controls”的子文件夹。它包含一个WPF用户控件。我决定将该用户控件移动到我的“Views”文件夹中。由于原始文件夹为空,我决定将其从项目中删除。

因为删除了用户控件和文件夹,我收到编译错误,因为用户控件使用了ProjectName.Folder命名空间,现在没有任何引用它。 MainWindow.g.cs是在using语句中引用ProjectName.Controls的内容。

我知道* .g.cs是由VS生成的,无法编辑,因为它会被覆盖。如何才能将该命名空间写入g.cs文件?我尝试清理我的解决方案/项目并重建,但没有任何工作。

6 个答案:

答案 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>