Frage

Ich hatte vorher einen Unterordner in meinem WPF-Anwendung-Projekt namens „Controls“. Es enthielt eine WPF-Benutzersteuerung. Ich beschloss, dass die Benutzer die Kontrolle zu meinem „Views“ Ordner zu verschieben. Da der ursprüngliche Ordner leer war, habe ich beschlossen, es aus dem Projekt zu löschen.

Da die Benutzersteuerung und Ordner entfernt ich eine Kompilierung-Fehlermeldung, da der Benutzer die Steuerung den ProjectName.Folder Namespace verwendet, und jetzt nichts Referenzen es. MainWindow.g.cs ist, was Referenzen in einer using-Anweisung ProjectName.Controls.

Ich weiß, dass * .g.cs von VS erzeugt werden und können nicht bearbeitet werden, weil es überschrieben wird. Was kann ich tun, um das Namespace nicht erlauben, die g.cs Datei geschrieben werden? Ich habe versucht, meine Lösung / Projekt Reinigung und Wiederaufbau, aber nichts hat funktioniert.

War es hilfreich?

Lösung

hatte ich einen lokalen Bezug auf die Kontrollen Namespace in meinem XAML-Code (MainWindow.xaml). Ich entfernte die Referenz, um das Projekt gereinigt und erzeugen einen erfolgreichen Build.

Andere Tipps

In Ihrer Benutzersteuerdatei,

In Ihrem ClassName.xaml, müssen Sie den Namespace ändern, wie unten

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

Und in Ihrem ClassName.xaml.cs, müssen Sie den Namespace ändern, wie unten

using System;
using System.Windows;

namespace YourOldNamespace{

   public class ClassName{ ....

}

In beiden Dateien müssen Sie YourOldNamespace zu einigen neuen Namensraum bei Bedarf ersetzen.

Ich habe vor zu Problemen mit g.cs Dateien in meinen Projekten hatte. Da sie automatisch generiert werden, neige ich dazu einfach die Datei manuell löschen und neu zu erstellen.

Sie nicht vergessen, dass Sie sehen, überprüfen zu müssen, wenn die Action Eigenschaft, wenn Sie auf der betroffenen XAML-Datei klicken Sie auf PAGE (statt Ressource) festgelegt ist. Dies ist nützlich, zu wissen, wenn Sie eine XAML aus einem anderen Projekt mit copy-paste Zeit zu sparen.

Schauen Sie auch bei App.xaml und alle Ihre Ressourcen Wörterbücher. Aus irgendeinem Grunde ersetzt VS 2012s in Dateien / „Gesamtlösung“ Option nicht die alte Namespace Referenz in App.xaml mußte manuell feststellen, dass ändern. Regelte es für mich.

Vergessen Sie nicht zu Ihrer generic.xaml Datei zu ändern,

<ResourceDictionary 
                   xmlns:local="clr-namespace:MyOldNameSpace">
</ResourceDictionary>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top