ClickOnce - Veröffentlichungen

  • C#
  • .NET 5–6

    ClickOnce - Veröffentlichungen

    Moin,

    ein Projekt gedenke ich über ClickOnce zu veröffentlichen. Dazu habe ich ein paar Fragen:
    1. Beim Anlegen des ClickOnce-Profils muss ich zwei Pfade angeben. Der eine für publish, der andere für install. Was hat es mit dem install Ordner auf sich? Auch nach einem Aufruf von setup.exe und erfolgreicher Installation bleibt der im Profil anzugebende Ordner leer.
      -- EDIT--
      Denkfehler mal wieder. Alles gut!

    2. Wähle ich als Zielplattform x64, meckert die Installationsroutine, sie würde Dateien nicht finden. Diese sind ins Projekt eingebundene DLLs unter dem Verzeichnis en-US. Wähle ich als Zielplattform portierbar, dann sind alle Ordner und Dateien vorhanden. Ist das nu Bug or Feature?

      -- EDIT --
    3. Da gibt es noch was drittes. Bei den ClickOnce-Einstellungen kann/muss man Versionsnummern eintragen. Wie komme ich an diese im Code ran? Mich interessieren nicht die Assembly-Versionen sonder nur die der veröffentlichten Gesamtapp, also das was man bei der Veröffentlichung angibt. Es gab mal Application.ProductVersion. Bei .NET 6 gibt es das offensichtlich nicht
    -- EDIT --

    zu 3) Im Netz finde ich nur (sinnvolle) Hinweise darauf, dass es keine "fertige" Methode als Lösung bei .NET 6 gibt und man etwas tricksen muss. Das eleganteste läuft darauf hinaus, die Manifestdatei zu lesen und sich die Info daraus zu extrahieren.

    C#-Quellcode

    1. public static string GetVersion(string manifestfile)
    2. {
    3. if (File.Exists(manifestfile))
    4. {
    5. var manifest = File.ReadAllText(manifestfile);
    6. var version = Regex.Match(manifest, "(?<=name\\=\"AppName.exe\" version=\")\\d+.\\d+.\\d+.\\d+");
    7. if (version.Success)
    8. {
    9. return version.Value;
    10. }
    11. }
    12. return "N.N.N.N";
    13. }



    -- EDIT --
    sry, wenn ich mal wieder überwiegend mit mir selbst spreche.

    Gruß

    MQ

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „MasterQ“ ()