2011-01-26 14 views
12

Zmieniono nazwę przestrzeni nazwanej klasy i kompilator WPF nie chce wziąć tego pod uwagę: utrzymuje prefiksowanie MyOldNameSpace w .g.cs file:Stara przestrzeń nazw wciąż w pliku .g.cs podczas zmiany przestrzeni nazw klasy odniesienia

[System.CodeDom.Compiler.GeneratedCodeAttribute 
    ("PresentationBuildTasks", "4.0.0.0")] 
public partial class MyClass: 
    MyOldNameSpace.MyReferencedClass, 
    System.Windows.Markup.IComponentConnector { 

Dlaczego? Jak to naprawić? Co to za niezrozumiały plik .g.cs?

Odpowiedz

6

Zamknij plik .g.cs. Możesz nawet go usunąć.

G oznacza generowane, VS generuje wireing pomiędzy kodem a Xaml w tej klasie częściowej.

Oczyść rozwiązanie i odbuduj. To powinno to naprawić.

18

Wygląda na to, że nie zmieniono pliku MyClass.xaml. Nie powinno być coś takiego na wierzchu

<MyClass x:Class="MyOldNameSpace.MyReferencedClass" 

ale powinno być „Moja New NameSpace.MyReferencedClass”

+0

To. Refaktoryzacja niczego nie zmienia w plikach .xaml. – Will

+0

Refaktoryzacja zmienia moje xaml (VS2008 i VS2010) –

+0

xmlns: local = "clr-namespace: OldNamespace" będzie również wymagać korekty w pliku XAML –

1

Może inna sprawa jest to, że akcja budowy Twojego XAML nie jest „Page”, ale inne opcje.

2

Nie zapomnij zmienić swój plik Generic.xaml też

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

W moim przypadku usuwania folderu obj naprawił błąd.

2

Sprawdź również xmlns: local w Application.xaml. To sprawiło, że zacząłem ...

Powiązane problemy