Veröffentlichen einer WPF-Anwendung mit aktivierten visuellen Stilen

Durch visuelle Stile kann die Darstellung von allgemeinen Steuerelementen auf Grundlage des vom Benutzer ausgewählten Designs geändert werden. Standardmäßig werden keine visuellen Stile für WPF-Anwendungen (Windows Presentation Foundation) aktiviert. Daher müssen Sie sie manuell aktivieren. Allerdings tritt bei der Veröffentlichung der Projektmappe ein Fehler auf, wenn visuelle Stile für eine WPF-Anwendung aktiviert sind. In diesem Thema wird beschrieben, wie dieser Fehler zu beheben ist und wie eine WPF-Anwendung mit aktivierten visuellen Stilen veröffentlicht werden kann. Weitere Informationen zu visuellen Stilen finden Sie unter Übersicht über visuelle Stile. Weitere Informationen zur 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 Schritte ausführen:

So veröffentlichen Sie die Projektmappe ohne aktivierte visuelle Stile

  1. Stellen Sie sicher, dass visuelle Stile für das Projekt nicht aktiviert sind. Überprüfen Sie zunächst die Manifestdatei des Projekts auf folgenden XML-Code. Wenn der XML-Code vorhanden ist, schließen Sie ihn in ein Kommentartag ein.

    Visuelle Stile sind 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 Prozeduren zeigen, wie die Manifestdatei geöffnet wird, die Ihrem Projekt zugeordnet ist.

    So öffnen Sie die Manifestdatei in einem Visual Basic-Projekt

    1. Wählen Sie in der Menüleiste Projekt, ProjectName-Eigenschaften aus, wobei ProjectName der Name Ihres WPF-Projekts ist.

      Die Eigenschaftenseiten für das WPF-Projekt werden angezeigt.

    2. Klicken Sie in der Registerkarte Anwendung auf Windows-Einstellungen anzeigen.

      Die Datei „app.manifest“ wird im Code-Editor geöffnet.

    So öffnen Sie die Manifestdatei in einem C#-Projekt

    1. Wählen Sie in der Menüleiste Projekt, ProjectName-Eigenschaften aus, wobei ProjectName der Name Ihres WPF-Projekts ist.

      Die Eigenschaftenseiten für das WPF-Projekt werden angezeigt.

    2. Beachten Sie auf der Registerkarte Anwendung den Namen, der im Manifestfeld angezeigt wird. Dies ist der Name des Manifests, das dem Projekt zugeordnet ist.

      Hinweis

      Wenn Manifest mit Standardeinstellungen einbetten oder Anwendung ohne Manifest erstellen im Manifestfeld angezeigt wird, werden visuelle Designs nicht aktiviert. Wenn der Name einer Manifestdatei im Manifestfeld angezeigt wird, wechseln Sie zum nächsten Schritt in diesem Verfahren.

    3. Klicken Sie im Projektmappen-Explorer auf Alle Dateien anzeigen.

      Mit dieser Schaltfläche werden alle Projektelemente angezeigt, einschließlich der ausgeschlossen und derjenigen, die normalerweise ausgeblendet werden. Die Manifestdatei erscheint als Projektelement.

  2. Erstellen und veröffentlichen Sie die Projektmappe. Weitere Informationen finden Sie unter Vorgehensweise: Veröffentlichen einer ClickOnce-Anwendung mit dem Veröffentlichungs-Assistenten.

So erstellen Sie eine Manifestdatei

  1. Fügen Sie folgendes XML in eine Editor-Datei ein.

    Dieser XML-Code 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>
    
  2. Klicken Sie im Editor auf Datei und dann auf Speichern unter.

  3. Klicken Sie im Dialogfeld Speichern unter auf die Dropdownliste Dateityp, und wählen Sie Alle Dateien aus.

  4. Geben Sie im Feld Dateiname einen Namen für die Datei ein, und fügen Sie dem Ende des Namens .manifest an. Beispiel: themes.manifest.

  5. Klicken Sie auf die Schaltfläche Ordner durchsuchen, wählen Sie einen beliebigen Ordner aus, und klicken Sie dann auf Speichern.

    Hinweis

    Im verbleibenden Verfahren wird davon ausgegangen, dass der Name dieser Datei themes.manifest ist und auf dem Computer im Verzeichnis C:\temp gespeichert wird.

So fügen Sie die Manifestdatei in die ausführbare Datei der veröffentlichten Projektmappe ein

  1. Öffnen Sie die Developer-Eingabeaufforderung für Visual Studio.

    Weitere Informationen zum Öffnen der Developer-Eingabeaufforderung für Visual Studio finden Sie unter Developer-Eingabeaufforderung und Developer PowerShell.

    Hinweis

    In den verbleibenden Schritten werden die folgenden Annahmen über die Projektmappe gemacht:

    • Der Name der Projektmappe ist MyWPFProject.

    • Die Projektmappe befindet sich im folgenden Verzeichnis: %UserProfile%\Documents\Visual Studio version\Projects\

    • Die Projektmappe wird im folgenden Verzeichnis veröffentlicht: %UserProfile%\Documents\Visual Studio version\Projects\publish

    • Die aktuelle 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 die oben genannten Namen und Verzeichnisspeicherorte nicht verwenden. Die oben genannten Namen und Speicherorte dienen nur als Beispiele bei der Veranschaulichung der Schritte, die für die Veröffentlichung der Projektmappe erforderlich sind.

  2. Ändern Sie an der Eingabeaufforderung den Pfad zu dem Verzeichnis, das die neueste Version der veröffentlichten Anwendungsdateien enthält. Das folgende Beispiel veranschaulicht diesen Schritt.

    cd "%UserProfile%\Documents\Visual Studio version\Projects\MyWPFProject\publish\Application Files\WPFApp_1_0_0_0"
    
  3. Geben Sie an der Eingabeaufforderung den folgenden Befehl ein, um die Manifestdatei in die ausführbare Datei der Anwendung einzubetten:

    mt -manifest c:\temp\themes.manifest -outputresource:MyWPFApp.exe.deploy
    

So signieren Sie die Anwendungs- und Bereitstellungsmanifeste

  1. Geben Sie an der Eingabeaufforderung den folgenden Befehl ein, um die .deploy-Erweiterung aus 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 einzige Datei die Dateierweiterung .deploy aufweist. Vergewissern Sie sich, dass Sie alle Dateien in diesem Verzeichnis umbenennen, die die Dateierweiterung .deploy aufweisen.

  2. Geben Sie an der Eingabeaufforderung den folgenden Befehl zum Signieren des Anwendungsmanifests ein:

    mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx
    

    Hinweis

    In diesem Beispiel wird davon ausgegangen, dass Sie das Manifest mit der .pfx-Datei des Projekts signieren. Wenn Sie das Manifest nicht signieren, können Sie den in diesem Beispiel angegebenen -cf-Parameter weglassen. Wenn Sie das Manifest mit einem Zertifikat signieren, das ein Kennwort erfordert, legen Sie die -password-Option fest (For example: mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx - password Password).

  3. Geben Sie an der Eingabeaufforderung den folgenden Befehl ein, 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 einzige Datei die Dateierweiterung .deploy aufweist. Vergewissern Sie sich, dass alle Dateien in diesem Verzeichnis umbenannt werden, die zuvor die Dateinamenerweiterung .deploy aufwiesen.

  4. Geben Sie an der Eingabeaufforderung den folgenden Befehl zum Signieren des Verteilungsmanifests ein:

    mage -u ..\..\MyWPFApp.application -appm MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx
    

    Hinweis

    In diesem Beispiel wird davon ausgegangen, dass Sie das Manifest mit der .pfx-Datei des Projekts signieren. Wenn Sie das Manifest nicht signieren, können Sie den in diesem Beispiel angegebenen -cf-Parameter weglassen. Wenn Sie das Manifest mit einem Zertifikat signieren, das ein Kennwort erfordert, legen Sie die -password-Option wie im folgenden Beispiel fest: For example: mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx - password Password.

    Nachdem Sie diese Schritte ausgeführt haben, können Sie die veröffentlichten Dateien an den Speicherort verschieben, von dem aus Endbenutzer die Anwendung installieren sollen. Wenn Sie beabsichtigen, die Projektmappe häufig zu aktualisieren, können Sie diese Befehle in ein Skript übernehmen und das Skript jedes Mal ausführen, wenn Sie eine neue Version veröffentlichen.