Gewusst wie: Veröffentlichen einer WPF-Anwendung mit aktivierten visuellen Stilen
Visuelle Stile können die Darstellung von Allgemeine Steuerelemente, die auf der Grundlage des Designs zu ändern, das vom Benutzer ausgewählt wird.Standardmäßig werden keine visuellen Stile für WPF-Anwendungen (Windows Presentation Foundation) aktiviert. Daher müssen Sie sie manuell aktivieren.Allerdings führt das Aktivieren von visuellen Stilen für eine WPF-Anwendung und anschließend die Projektmappe veröffentlichen einen Fehler.In diesem Thema wird beschrieben, wie dieser Fehler ausgelöst wird und den Prozess zum Veröffentlichen einer WPF-Anwendung mit aktivierten visuellen Stilen auflöst.Weitere Informationen zu visuellen Stilen finden Sie unter Visual Styles Overview.Weitere Informationen über die Fehlermeldung finden Sie unter Beheben von spezifischen Fehlern in ClickOnce-Bereitstellungen.
Um den Fehler zu beheben und die Projektmappe zu veröffentlichen, müssen Sie die folgenden Aufgaben ausführen:
So zeigen Sie die Projektmappe veröffentlichen, ohne die visuellen Stile aktiviert.
So erstellen Sie eine Manifestdatei.
So zeigen Sie die Manifestdatei in die ausführbare Datei der veröffentlichten Projektmappe einbetten.
So zeigen Sie die Anwendungs- und Bereitstellungsmanifeste signieren.
Anschließend können Sie die veröffentlichten Dateien auf den Speicherort verschieben, mit dem Endbenutzer die Anwendung installieren möchten.
So zeigen Sie die Projektmappe veröffentlichen, ohne die visuellen Stile aktiviert
Stellen Sie sicher, dass das Projekt nicht visuelle Stile aktiviert ist.Zuerst überprüfen Sie die Manifestdatei des Projekts für folgendes XML.Wenn das XML vorhanden ist, schließen Sie den XML-Code mit einem Kommentar tag ein.
Visuelle Stile werden standardmäßig nicht aktiviert.
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency>
Die folgenden Verfahren zeigen, wie Sie die Manifestdatei öffnet, die dem Projekt zugeordnet ist.
So zeigen Sie die Manifestdatei in einem Visual Basic-Projekt öffnen
Wählen Sie auf der Menüleiste Projekt, ProjectNameEigenschaftenaus, wobei ProjectName der Name des WPF projekts ist.
Die Eigenschaftenseiten für das WPF-Projekt angezeigt werden.
Wählen Sie auf der Registerkarte AnwendungWindows-Einstellungen anzeigenaus.
Die app.manifest-Datei wird geöffnet, in Code-Editor.
So zeigen Sie die Manifestdatei in einem C#-Projekt öffnen
Wählen Sie auf der Menüleiste Projekt, ProjectNameEigenschaftenaus, wobei ProjectName der Name des WPF projekts ist.
Die Eigenschaftenseiten für das WPF-Projekt angezeigt werden.
Auf der Registerkarte Anwendung notieren Sie den Namen, der für den Manifesten Feld angezeigt wird.Dies ist der Name des Manifests, das dem Projekt zugeordnet ist.
Hinweis Wenn Manifest mit Standardeinstellungen einbetten oder Anwendung ohne Manifest erstellen für den Manifesten Feld angezeigt werden, werden nicht visuelle Stile aktiviert.Wenn der Name einer Manifestdatei für den Manifesten Feld angezeigt wird, wechseln Sie zum nächsten Schritt in diesem Verfahren zum.
In Projektmappen-Explorerwählen Sie Alle Dateien anzeigen ().
Diese Schaltfläche wird, einschließlich der alle Projektelemente, die ausgeschlossen wurden und die an, die normalerweise ausgeblendet werden.Die Manifestdatei wird als Projektelement.
Erstellen und veröffentlichen Sie die Projektmappe.Weitere Informationen dazu, wie Sie die Projektmappe finden Sie unter Gewusst wie: Veröffentlichen einer ClickOnce-Anwendung mit dem Webpublishing-Assistentenveröffentlicht.
So erstellen Sie eine Manifestdatei
Fügen Sie folgendes XML in eine Editor-Datei ein.
Dieser XML-Code wird die Assembly mit Steuerelementen, die visuelle Stile unterstützen.
<?xml version="1.0" encoding="utf-8"?><asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency></asmv1:assembly>
Klicken Sie in Editor auf Datei und dann auf Speichern unter.
Wählen Sie im Dialogfeld Speichern unter in der Dropdownliste Dateityp die Option Alle Dateien aus.
Geben Sie im Feld Dateiname nennen Sie die Datei .manifest und fügen Sie am Ende des Dateinamens an.Beispiel: themes.manifest.
Wählen Sie die Ordner durchsuchen Schaltfläche aus, wählen Sie den Ordner aus, und klicken Sie dann auf Speichern.
Hinweis Die verbleibenden Verfahren wird davon ausgegangen, dass der Name dieser Datei themes.manifest ist und dass die Datei im Verzeichnis C:\temp- auf dem Computer gespeichert wird.
So zeigen Sie die Manifestdatei in die ausführbare Datei der veröffentlichten Projektmappe einbetten
Öffnen Sie die Visual Studio-Eingabeaufforderung.
Weitere Informationen zum Erstellen Visual Studio-Eingabeaufforderungfinden Sie unter Visual Studio- und Windows SDK-Eingabeaufforderungenöffnet.
Hinweis Die übrigen Schritten machen die folgenden Annahmen über die Lösung:
Der Name der Lösung besteht darin MyWPFProject.
Die Lösung besteht im folgenden Verzeichnis: %UserProfile%\Documents\Visual Studio 2010\Projects\.
Die Projektmappe wird in das folgende Verzeichnis der Veröffentlichung: %UserProfile%\Documents\Visual Studio 2010\Projects\publish.
Die neueste Version der veröffentlichten Anwendungsdateien befindet sich im folgenden Verzeichnis: %UserProfile%\Documents\Visual Studio 2010\Projects\publish\Application Files\WPFApp_1_0_0_0
Sie müssen den Namen oder Speicherorte Verzeichnis nicht mithilfe der oben beschriebenen.Der Name und die Speicherorte, die oben beschriebenen Schritte die verwendet werden, um zu veranschaulichen, die nur, um die Projektmappe zu veröffentlichen müssen.
Ändern Sie an der Eingabeaufforderung den Pfad zu dem Verzeichnis, in dem die neueste Version der veröffentlichten Anwendungsdateien enthält.Das folgende Beispiel veranschaulicht diesen Schritt.
cd "%UserProfile%\Documents\Visual Studio 2010\Projects\MyWPFProject\publish\Application Files\WPFApp_1_0_0_0"
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um die Manifestdatei in die ausführbare Datei der Anwendung einzubetten.
mt –manifest c:\temp\themes.manifest –outputresource:MyWPFApp.exe.deploy
So zeigen Sie die Anwendungs- und Bereitstellungsmanifeste signieren
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um die .deploy Erweiterung von der ausführbaren Datei im aktuellen Verzeichnis zu entfernen.
ren MyWPFApp.exe.deploy MyWPFApp.exe
Hinweis In diesem Beispiel wird davon ausgegangen, dass nur eine Datei aus, die .deploy Dateierweiterung verfügt.Stellen Sie sicher, dass Sie alle Dateien in diesem Verzeichnis umbenennen, die die .deploy Dateierweiterung aufweisen.
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um das Anwendungsmanifest zu signieren.
mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx
Hinweis In diesem Beispiel wird davon ausgegangen, dass Sie das Manifest signieren, indem Sie die .pfx Datei des Projekts verwenden.Wenn Sie nicht das Manifest signieren, können Sie den –cf-Parameter weglassen, die in diesem Beispiel verwendet wird.Wenn Sie das Manifest mit einem Zertifikat signieren, das kein Kennwort erfordert, geben Sie die Option –password (For example: mage –u MyWPFApp.exe.manifest –cf ..\..\..\MyWPFApp_TemporaryKey.pfx – passwordPassword).
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um die .deploy Erweiterung dem Namen der Datei hinzuzufügen, die Sie in einem vorherigen Schritt dieses Verfahrens umbenannt haben.
ren MyWPFApp.exe MyWPFApp.exe.deploy
Hinweis In diesem Beispiel wird davon ausgegangen, dass nur eine Datei eine Dateierweiterung .deploy .Stellen Sie sicher, dass Sie alle Dateien in diesem Verzeichnis umbenannt wird, das zuvor .deploy Dateinamenerweiterung hat.
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um das Bereitstellungsmanifest zu signieren.
mage -u ..\..\MyWPFApp.application -appm MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx
Hinweis In diesem Beispiel wird davon ausgegangen, dass Sie das Manifest signieren, indem Sie die .pfx Datei des Projekts verwenden.Wenn Sie nicht das Manifest signieren, können Sie den –cf-Parameter weglassen, die in diesem Beispiel verwendet wird.Wenn Sie das Manifest mit einem Zertifikat signieren, das kein Kennwort erfordert, geben Sie die Option –password wie im folgenden Beispiel gezeigt:For example: mage –u MyWPFApp.exe.manifest –cf ..\..\..\MyWPFApp_TemporaryKey.pfx – passwordPassword.
Nachdem Sie diese Schritte ausgeführt haben, können Sie die veröffentlichten Dateien auf den Speicherort verschieben, mit dem Endbenutzer die Anwendung installieren möchten.Wenn Sie beabsichtigen, die Lösung häufiger zu aktualisieren, können Sie diese Befehle in einem Skript verschieben und das Skript jedes Mal ausführen, wenn Sie eine neue Version veröffentlicht.
Siehe auch
Referenz
Enabling Visual Styles
Visual Studio- und Windows SDK-Eingabeaufforderungen
Konzepte
Beheben von spezifischen Fehlern in ClickOnce-Bereitstellungen