代码之家  ›  专栏  ›  技术社区  ›  Jeff LaFay

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

  •  8
  • Jeff LaFay  · 技术社区  · 15 年前

    我以前在WPF应用程序项目中有一个子文件夹,名为“Controls”。它包含一个WPF用户控件。我决定把那个用户控件移到我的“视图”文件夹。因为原始文件夹是空的,所以我决定从项目中删除它。

    由于删除了用户控件和文件夹,我收到一个编译错误,因为用户控件使用 ProjectName.Folder 名称空间,现在没有引用它。MainWindow.g.cs是什么引用 ProjectName.Controls 在using语句中。

    我知道*.g.cs是由VS生成的,无法编辑,因为它将被覆盖。我该怎么做才能不允许将该命名空间写入g.cs文件?我试着清理我的解决方案/项目和重建,但什么也没用。

    6 回复  |  直到 6 年前
        1
  •  11
  •   Jeff LaFay    15 年前

    我的Xaml代码(MainWindow.Xaml)中有一个对控件命名空间的本地引用。我删除了引用,清理了项目并生成了一个成功的生成。

        2
  •  5
  •   Akash Kava    15 年前

    在用户控制文件中,

    在ClassName.xaml中,必须更改命名空间,如下所示

    <UserControl
        x:Class="YourOldNamespace.ClassName"
        ...
        ...
    />
    

    在ClassName.xaml.cs中,必须更改命名空间,如下所示

    using System;
    using System.Windows;
    
    namespace YourOldNamespace{
    
       public class ClassName{ ....
    
    }
    

    在这两个文件中,必须根据需要将旧命名空间替换为新命名空间。

        3
  •  1
  •   Jason    15 年前

    我以前在我的项目中也遇到过g.cs文件的问题。因为它们是自动生成的,所以我倾向于手动删除文件并重新生成。

        4
  •  1
  •   dazonkah    13 年前

    不要忘记,当您单击受影响的XAML文件时,必须检查Build Action属性是否设置为PAGE(而不是resource)。这有助于了解何时使用复制粘贴从另一个项目复制XAML以节省时间。

        5
  •  1
  •   nerd2know    12 年前

    还要查看App.xaml和所有资源字典。不管是什么原因,VS 2012的replace in files/“整个解决方案”选项在App.xaml中找不到旧的名称空间引用,必须手动更改它。帮我修好了。

        6
  •  0
  •   Guillermo Hernandez    11 年前

    别忘了也要更改Generic.xaml文件,

    <ResourceDictionary 
                       xmlns:local="clr-namespace:MyOldNameSpace">
    </ResourceDictionary>