Color scheme: Dark
You are here: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Bootstrapper » Anleitungen » Private .NET-Runtime ausliefern

Private .NET-Runtime ausliefern

Auf den PCs der Benutzer ist keine .NET 10 Desktop Runtime installiert, und die IT installiert sie nicht; die Anwendung – zum Beispiel eine Access-Anwendung mit der WKL Forms Object Library – soll trotzdem laufen.

Voraussetzungen: WKL Bootstrapper 2.0 (Projektdatei im Format 2).

Lösungsüberblick

  • Die Auslieferung bringt je Bitbreite eine .NET-Runtime in dotnet\x86 und dotnet\x64 der Quelle mit.
  • Ein files-Eintrag je Bitbreite kopiert sie nach [WklRoot]\Dotnet\<release>\<bitness>, also nach %LOCALAPPDATA%\WKL\Dotnet\<release>\<bitness>. <release> ist die Produktversion ihrer dotnet.exe ohne Build-Kennung.
  • start.environment übergibt den Ordner an das gestartete Programm: DOTNET_ROOT(x86) für 32 Bit, DOTNET_ROOT für 64 Bit. Der .NET-Host des Programms und der in Access geladenen WKL-Komponenten findet die Runtime dann dort.
  • Die Vorlage dotnet von /new-project schreibt beide Einträge; siehe Projekt aus Vorlagen erstellen.

Umsetzung

  1. Befüllen Sie die Auslieferung. Kopieren Sie eine .NET-10-Runtime jeder Bitbreite in die Quelle: den Inhalt eines installierten .NET-Ordners (%ProgramFiles(x86)%\dotnet für 32 Bit, %ProgramFiles%\dotnet für 64 Bit) – dotnet.exe und die Ordner host und shared – nach dotnet\x86 und dotnet\x64:

    <delivery>
      app-manifest.json, Kunden.accde
      components\x86, components\x64
      dotnet\x86\dotnet.exe, host\..., shared\...
      dotnet\x64\dotnet.exe, host\..., shared\...
  2. Schreiben Sie die Projektdatei, oder lassen Sie sie von /new-project ... /template access,components,dotnet schreiben. Die Einträge für die Runtime lauten:

    {
      "files": [
        { "id": "dotnet-x86", "source": "dotnet\\x86", "target": "[WklRoot]\\Dotnet\\[ItemVersion]\\x86", "bitness": "x86", "versionOf": "dotnet.exe" },
        { "id": "dotnet-x64", "source": "dotnet\\x64", "target": "[WklRoot]\\Dotnet\\[ItemVersion]\\x64", "bitness": "x64", "versionOf": "dotnet.exe" }
      ],
      "start": {
        "environment": [
          { "name": "DOTNET_ROOT(x86)", "value": "[Dir:dotnet-x86]", "bitness": "x86" },
          { "name": "DOTNET_ROOT", "value": "[Dir:dotnet-x64]", "bitness": "x64" }
        ]
      }
    }

    Mit einer privaten Runtime braucht das Projekt keine Bedingung der Art dotnet; entfernen Sie eine, die eine installierte Microsoft.WindowsDesktop.App 10.0 verlangt.

  3. Prüfen und probieren Sie es aus: Wkl.Bootstrapper.exe /check bootstrapper.json, dann /whatif bootstrapper.json.

Hinweise

  • Installiert wird nur die Runtime der Bitbreite des Projekts (bitness des Projekts; standardmäßig die von Microsoft Access und, wenn kein Access installiert ist, die von Windows).
  • Der Runtime-Ordner wird gemeinsam genutzt und gezählt: Jedes Produkt, das dasselbe Release ausliefert, verwendet eine Kopie, die bleibt, bis die letzte Produktversion, die sie verwendet, entfernt ist. Ein neueres Release kommt in einen eigenen Ordner daneben.
  • Einschränkung: Die Variablen erreichen nur Programme, die der Starter startet. Access, das auf andere Weise geöffnet wird – aus der Datenbankdatei, aus dem Startmenü, per Automatisierung –, und Office-UserForms, die die WKL-Komponenten verwenden, finden die private Runtime nicht; sie brauchen eine für den Computer installierte Runtime.
  • Die installierte Version behält die Variablen, sodass auch ein Start ohne Quelle sie setzt.
  • Eine private Runtime wird für 32-Bit- und 64-Bit-Access unter 64-Bit-Windows unterstützt; 32-Bit-Windows wird nicht unterstützt.

Verwandte Themen

de/wiki/msaccess/bootstrapper/how-to/deliver-a-private-dotnet-runtime.txt · Last modified: by Wolfgang van der Stille