Einschließen von XML-Dateien beim Bereitstellen der WPF-Anwendung

8

Ich habe eine WPF-Anwendung mit drei Projekten, um eine dreischichtige Architektur darzustellen. Ein Projekt wird als Hauptprojekt festgelegt. Ich habe einige XML-Dateien in einem der Nicht-Hauptprojekt. Auf diese XML-Dateien wird über Funktionen zugegriffen, die in Klassen dieses Projekts definiert sind.

Wenn ich versuche, die Anwendung mit VS2010 ClickOnce zu veröffentlichen, sind die XML-Dateien nicht in der Installationsdatei enthalten, auch nachdem die Dateien "Build Action to Content" und "Copy-to-OutputDirectory" immer als "Copy Always" markiert wurden. Beim Ausführen der installierten Anwendung meldet die Anwendung, dass die Dateien nicht gefunden werden. Ich kann einen Application_Files-Ordner in dem Installationsordner sehen, der von ClickOnce generiert wird, aber es enthält die XML-Dateien nicht.

Also, meine Frage ist, wie kann ich die XML-Dateien in die Installationsordner aufnehmen und auch ihre Standort-URL beim Ausführen der Anwendung erhalten.

Danke, Naveen

Update 1: Die Struktur der Anwendungslösung besteht aus drei Projekten, z. B. P1, P2 und P3. P3 ist das Hauptstartprojekt. P1 und P2 sind Klassenbibliotheksprojekte. Die XML-Dateien werden dem P2-Projekt hinzugefügt. Die Dateien sind als Build Action - & gt; Inhalt und Kopie - & gt; Immer kopieren Diese Dateien werden jedoch nicht von ClickOnce beim Veröffentlichen der Anwendung in den Datenordner der Anwendung kopiert.

    
naveen 05.04.2011, 06:02
quelle

2 Antworten

6

Einfache Lösung. Klicken Sie mit der rechten Maustaste auf die Projektdatei, die Sie veröffentlichen möchten. Wählen Sie Eigenschaften. Wählen Sie dann im geöffneten Fenster Veröffentlichen. Klicken Sie auf die Schaltfläche Anwendungsdateien. Dort finden Sie die .xml-Datei, die standardmäßig vom Typ 'Datendatei' ist. Ändern Sie es in Einschließen. Speichern Sie Rebuild und veröffentlichen Sie das und das ist es.

Ich hoffe, es hilft jemandem, der es braucht.

    
sunil ambiger 11.10.2012 12:44
quelle
1

dort eine 2 Standorte clickonce verwendet:

  • ein Ort für die Hauptdatei und alle notwendigen DLLs
  • ein Ort für alles, was nicht ausführbar ist, d. h. Ressourcen, wie Ihre XML

Sie haben also ein Anwendungsverzeichnis und ein Datenverzeichnis. Die Adressierung des Anwendungsverzeichnisses kann weiterhin wie folgt erfolgen: AppDomain.CurrentDomain.BaseDirectory .

Aber wenn Sie das Datenverzeichnis adressieren wollen, brauchen Sie etwas Bestimmtes für das clickonce: ApplicationDeployment.CurrentDeployment.DataDirectory .

Ich bin mir nicht sicher, ob Sie dieses Datenverzeichnis überprüft haben, weil Sie es in Ihrem Beitrag nicht erwähnt haben.

    
Terry 05.04.2011 06:43
quelle

Tags und Links