Freigeben über


Exemplarische Vorgehensweise: Konfigurieren einer ClickOnce-Anwendung für die Ausführung unter mehreren .NET Framework-Versionen

Standardmäßig konfiguriert Visual Studio ClickOnce-Anwendungen für die Installation und Ausführung unter einer bestimmten Version und einem bestimmten Profil von .NET Framework.Eine Anwendung kann jedoch unter mehreren Versionen von .NET Framework installiert und ausgeführt werden.In dieser exemplarischen Vorgehensweise wird beschrieben, wie Sie eine für .NET Framework 2.0 kompilierte ClickOnce-Anwendung so konfigurieren, dass sie unter .NET Framework 2.0 oder .NET Framework 4 installiert und ausgeführt wird.

Hinweis

Bevor Sie die ClickOnce-Anwendung für die Ausführung unter mehreren Versionen von .NET Framework konfigurieren, müssen Sie die Anwendung unter jeder Version von .NET Framework umfassend testen.

Vorbereitungsmaßnahmen

In dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass Sie die .NET Framework 2.0-Anwendung bereits mit Visual Studio veröffentlicht haben.

So erstellen Sie eine Anwendung für zwei Plattformen

  1. Beginnen Sie mit einer vorhandenen ClickOnce-Anwendung für .NET Framework 2.0.Weitere Informationen finden Sie unter Gewusst wie: Ausrichten auf eine bestimmte .NET Framework-Version oder ein bestimmtes .NET Framework-Profil.

  2. Wenn die Anwendung über keine Anwendungskonfigurationsdatei im Verzeichnis publish\Application Files\<Anwendungsname>_<Version> verfügt, fügen Sie eine Anwendungskonfigurationsdatei hinzu.Der Name der Konfigurationsdatei ist der Name der Anwendung mit der Dateierweiterung .config (<Anwendungsname>.exe.config).Weitere Informationen finden Sie unter Konfigurationsdateischema für .NET Framework.

  3. Öffnen Sie die Konfigurationsdatei (<Anwendungsname>.exe .config), und fügen Sie folgenden Code hinzu.Windows führt die Anwendung in der ersten verfügbaren Laufzeit in dieser Liste aus.

    <configuration> 
      <startup> 
        <supportedRuntime version="v4.0" /> 
        <supportedRuntime version="v2.0.50727" /> 
      </startup> 
    </configuration>
    
  4. Entfernen Sie vorübergehend für alle Dateinamen im Verzeichnis publish die Erweiterung .deploy, indem Sie die Dateien umbenennen.Sie machen diese Umbenennungen später rückgängig.

    In den meisten ClickOnce-Bereitstellungen wird an einige Dateitypen die Erweiterung .deploy angefügt.

  5. Öffnen Sie das Verzeichnis publish\Application Files\<Anwendungsname>_<Version>, und wenn das Verzeichnis eine Kopie des Bereitstellungsmanifests (<Anwendungsname>.application) enthält, löschen Sie sie.(Sie können im letzten Schritt das Masterbereitstellungsmanifest wieder in dieses Verzeichnis kopieren.)

  6. Verwenden Sie den folgenden Befehl, um das Anwendungsmanifest (<Anwendungsname>.exe.manifest) mit den Details der neuen oder geänderten Konfigurationsdatei zu aktualisieren.Öffnen Sie hierzu die Visual Studio-Eingabeaufforderung, und navigieren Sie zum Verzeichnis publish\Application Files\<Anwendungsname>_<Version>.Führen Sie den folgenden Befehl aus, um die neue Konfigurationsdatei zu suchen und in das Anwendungsmanifest einzuschließen.Ersetzen Sie appname durch den Namen der Anwendung.

    mage -Update appname.exe.manifest -fd .
    
  7. Signieren Sie das Anwendungsmanifest mithilfe des folgenden Befehls.Ersetzen Sie \certs\cert.pfx durch den Namen und den Speicherort der Zertifikatdatei.Ersetzen Sie passwd durch das Kennwort für die Zertifikatdatei.

    mage -Sign appname.exe.manifest -CertFile \certs\cert.pfx -Password passwd
    
  8. Stellen Sie die Erweiterung .deploy für alle in Schritt 4 umbenannten Dateinamen wieder her, indem Sie diese Dateien erneut umbenennen.

  9. Ändern Sie den Namen der CONFIG-Datei in <Anwendungsname>.exe.config.deploy.

  10. Öffnen Sie im Verzeichnis publish das Bereitstellungsmanifest.Für eine Bereitstellung mit einer EXE-Datei lautet die Dateierweiterung einer Bereitstellungsmanifestdatei .application (<Anwendungsname>.application).Die meisten ClickOnce-Bereitstellungen speichern eine Kopie des Bereitstellungsmanifests für jede Version. Sie müssen jedoch das Masterbereitstellungsmanifest aktualisieren, das sich normalerweise zusammen mit dem Bootstrapper für erforderliche Komponenten setup.exe im Stamm der Bereitstellung befindet.

  11. Suchen Sie das asmv1:assembly-Element.Weitere Informationen finden Sie unter ClickOnce-Bereitstellungsmanifest.

  12. Fügen Sie ein compatibleFrameworks-Element als untergeordnetes Element des asmv1:assembly-Elements hinzu, das zwei framework-Elemente enthält.Im folgenden Beispiel ist die .NET Framework 2.0-Plattform die bevorzugte Plattform für die Anwendung.Ersetzen Sie yourVersion durch die Version im Verzeichnisnamen in C:\Windows\Microsoft.NET\Framework.

    <compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
      <framework targetVersion="2.0" supportedRuntime="2.0.50727" />
      <framework targetVersion="4.0" profile="Full" supportedRuntime="4.0.yourVersion" />
    </compatibleFrameworks>
    
  13. Speichern und schließen Sie das Bereitstellungsmanifest.

  14. Wechseln Sie in der Visual Studio-Eingabeaufforderung zum Verzeichnis publish.

  15. Verwenden Sie den folgenden Befehl, um das Bereitstellungsmanifest mit allen Änderungen zu aktualisieren.

    mage -Update appname.application -AppManifest "Application Files\appname_1_0_0_3\appname.exe.manifest"
    
  16. Signieren Sie das aktualisierte Bereitstellungsmanifest.

    mage -Sign appname.application -CertFile \certs\cert.pfx -Password passwd
    
  17. Optional können Sie das Masterbereitstellungsmanifest (publish\<Anwendungsname>.application) in das Bereitstellungsverzeichnis für Ihre Version (publish\Application Files\<Anwendungsname>_<Version>) kopieren.

Nächste Schritte

ClickOnce-Anwendungen, für die Sie die Ausführung unter .NET Framework 4 oder einer früheren Version von .NET Framework festgelegt haben, müssen das group-Attribut des <dependentAssembly>-Elements auf framework festlegen, um alle Abhängigkeitsassemblys in der früheren Version von .NET Framework zu identifizieren, die .NET Framework-Binärdateien sind.Weitere Informationen finden Sie unter <dependency>-Element (ClickOnce-Anwendung).

Siehe auch

Referenz

<compatibleFrameworks>-Element (ClickOnce-Bereitstellung)