Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Visuelle Stile ermöglichen es, das Erscheinungsbild allgemeiner Steuerelemente basierend auf dem vom Benutzer ausgewählten Design zu ändern. Standardmäßig sind visuelle Formatvorlagen für Windows Presentation Foundation (WPF)-Anwendungen nicht aktiviert, daher müssen Sie sie manuell aktivieren. Wenn Sie jedoch visuelle Formatvorlagen für eine WPF-Anwendung aktivieren und dann die Lösung veröffentlichen, tritt ein Fehler auf. In diesem Thema wird beschrieben, wie Sie diesen Fehler und den Prozess zum Veröffentlichen einer WPF-Anwendung mit aktivierten visuellen Formatvorlagen beheben. Weitere Informationen zu visuellen Formatvorlagen finden Sie in der Übersicht zu visuellen Formatvorlagen. Weitere Informationen zur Fehlermeldung finden Sie unter Problembehandlung für bestimmte Fehler in ClickOnce-Bereitstellungen.
Um den Fehler zu beheben und die Lösung zu veröffentlichen, müssen Sie die folgenden Aufgaben ausführen:
Veröffentlichen Sie die Lösung ohne aktivierte visuelle Stile.
Betten Sie die Manifestdatei in die ausführbare Datei der veröffentlichten Lösung ein.
Signieren Sie die Anwendungs- und Bereitstellungsmanifeste.
Anschließend können Sie die veröffentlichten Dateien an den Speicherort verschieben, von dem Endbenutzer die Anwendung installieren möchten.
Veröffentlichen Sie die Lösung ohne aktivierte visuelle Stile.
Stellen Sie sicher, dass für Ihr Projekt keine visuellen Stile aktiviert sind. Überprüfen Sie zunächst die Manifestdatei Ihres Projekts auf den folgenden XML-Code. Wenn der XML-Code vorhanden ist, schließen Sie dann den XML-Code mit einem Kommentartag ein.
Standardmäßig sind visuelle Stile 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 ihrem Projekt zugeordnete Manifestdatei öffnen.
So öffnen Sie die Manifestdatei in einem Visual Basic-Projekt
Wählen Sie auf der Menüleiste "Project", " ProjectName-Eigenschaften" aus, wobei ProjectName der Name Ihres WPF-Projekts ist.
Die Eigenschaftenseiten für Ihr WPF-Projekt werden angezeigt.
Wählen Sie auf der Registerkarte "Anwendung " die Option "Windows-Einstellungen anzeigen" aus.
Die Datei "app.manifest" wird im Code-Editor geöffnet.
So öffnen Sie die Manifestdatei in einem C#-Projekt
Wählen Sie auf der Menüleiste "Project", " ProjectName-Eigenschaften" aus, wobei ProjectName der Name Ihres WPF-Projekts ist.
Die Eigenschaftenseiten für Ihr WPF-Projekt werden angezeigt.
Notieren Sie sich auf der Registerkarte "Anwendung " den Namen, der im Manifestfeld angezeigt wird. Dies ist der Name des Manifests, das Ihrem Projekt zugeordnet ist.
Hinweis
Wenn das Einbettungsmanifest mit Standardeinstellungen oder das Erstellen einer Anwendung ohne Manifest im Manifestfeld angezeigt wird, sind visuelle Formatvorlagen nicht aktiviert. Wenn der Name einer Manifestdatei im Manifestfeld angezeigt wird, fahren Sie mit dem nächsten Schritt in diesem Verfahren fort.
Wählen Sie im Projektmappen-Explorer"Alle Dateien anzeigen" aus.
Diese Schaltfläche zeigt alle Projektelemente an, einschließlich der elemente, die ausgeschlossen wurden und die normalerweise ausgeblendet sind. Die Manifestdatei wird als Projektelement angezeigt.
Erstellen und veröffentlichen Sie Ihre Lösung. Weitere Informationen zum Veröffentlichen der Lösung finden Sie unter How to: Publish a ClickOnce application using the Publish Wizard.
Erstellen einer Manifestdatei
Fügen Sie den folgenden XML-Code in eine Textdatei ein.
Dieses XML beschreibt die Assembly, die Steuerelemente enthält, 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 im Editor auf Datei und dann auf Speichern unter.
Wählen Sie im Dialogfeld " Speichern unter " in der Dropdownliste " Dateityp " die Option "Alle Dateien" aus.
Benennen Sie im Feld "Dateiname " die Datei, und fügen Sie das MANIFEST am Ende des Dateinamens an. Beispiel: themes.manifest.
Wählen Sie die Schaltfläche " Ordner durchsuchen ", wählen Sie einen beliebigen Ordner aus, und klicken Sie dann auf "Speichern".
Hinweis
Bei den verbleibenden Prozeduren wird davon ausgegangen, dass der Name dieser Datei "themes.manifest " lautet und dass die Datei im Verzeichnis "C:\temp " auf Ihrem Computer gespeichert wird.
Einbetten der Manifestdatei in die ausführbare Datei der veröffentlichten Lösung
Öffnen Sie die Developer-Eingabeaufforderung für Visual Studio.
Weitere Informationen zum Öffnen der Entwickler-Eingabeaufforderung für Visual Studio finden Sie in der Entwickler-Eingabeaufforderung und in PowerShell für Entwickler.
Hinweis
Die verbleibenden Schritte machen die folgenden Annahmen zu Ihrer Lösung:
Der Name der Lösung lautet MyWPFProject.
Die Lösung befindet sich im folgenden Verzeichnis:
%UserProfile%\Documents\Visual Studio version\Projects\.Die Lösung wird im folgenden Verzeichnis veröffentlicht:
%UserProfile%\Documents\Visual Studio version\Projects\publish.Die neueste Version der veröffentlichten Anwendungsdateien befindet sich im folgenden Verzeichnis:
%UserProfile%\Documents\Visual Studio version\Projects\publish\Application Files\WPFApp_1_0_0_0
Sie müssen nicht den Namen oder die oben beschriebenen Verzeichnisspeicherorte verwenden. Der oben beschriebene Name und die oben beschriebenen Speicherorte werden nur verwendet, um die schritte zu veranschaulichen, die zum Veröffentlichen Ihrer Lösung erforderlich sind.
Ändern Sie an der Eingabeaufforderung den Pfad zum Verzeichnis, das die neueste Version der veröffentlichten Anwendungsdateien enthält. Im folgenden Beispiel wird dieser Schritt veranschaulicht.
cd "%UserProfile%\Documents\Visual Studio version\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
Signieren der Anwendungs- und Bereitstellungsmanifeste
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um die .deploy-Erweiterung aus der ausführbaren Datei im aktuellen Verzeichnis zu entfernen.
ren MyWPFApp.exe.deploy MyWPFApp.exeHinweis
In diesem Beispiel wird davon ausgegangen, dass nur eine Datei die Dateierweiterung ".deploy " aufweist. Stellen Sie sicher, dass Sie alle Dateien in diesem Verzeichnis umbenennen, die die Dateierweiterung ".deploy " aufweisen.
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um das Anwendungsmanifest zu signieren.
mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfxHinweis
In diesem Beispiel wird davon ausgegangen, dass Sie das Manifest mithilfe der PFX-Datei des Projekts signieren. Wenn Sie das Manifest nicht signieren, können Sie den
-cfin diesem Beispiel verwendeten Parameter weglassen. Wenn Sie das Manifest mit einem Zertifikat signieren, das ein Kennwort erfordert, geben Sie die-passwordOption (For example: mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx - password Password) an.Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um die Deploy-Erweiterung zum Namen der Datei hinzuzufügen, die Sie in einem vorherigen Schritt dieses Verfahrens umbenannt haben.
ren MyWPFApp.exe MyWPFApp.exe.deployHinweis
In diesem Beispiel wird davon ausgegangen, dass nur eine Datei die Dateierweiterung ".deploy " aufweist. Stellen Sie sicher, dass Sie alle Dateien in diesem Verzeichnis umbenennen, die zuvor die Dateinamenerweiterung ".deploy " aufweisen.
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.pfxHinweis
In diesem Beispiel wird davon ausgegangen, dass Sie das Manifest mithilfe der PFX-Datei des Projekts signieren. Wenn Sie das Manifest nicht signieren, können Sie den
-cfin diesem Beispiel verwendeten Parameter weglassen. Wenn Sie das Manifest mit einem Zertifikat signieren, das ein Kennwort erfordert, geben Sie die-passwordOption wie in diesem Beispiel an:For example: mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx - password Passwordan.Nachdem Sie diese Schritte ausgeführt haben, können Sie die veröffentlichten Dateien an den Speicherort verschieben, von dem Endbenutzer die Anwendung installieren möchten. Wenn Sie die Lösung häufig aktualisieren möchten, können Sie diese Befehle in ein Skript verschieben und das Skript jedes Mal ausführen, wenn Sie eine neue Version veröffentlichen.