Projekt läuft, jetzt muss ein Installer her

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Projekt läuft, jetzt muss ein Installer her

    Hi,

    mein Projekt funktioniert, jedenfalls im Debugger. Nun würde ich das gerne auf die Menschheit loslassen, aber vorher noch am lebenden Objekt testen, also auf einer anderen Maschine, als dem Entwicklungsrechner installieren.

    Inno Setup, hörte ich, sei dazu erste Wahl. So ein Installationsskript bekomme ich da schon irgendwie zurechtgebastelt, aaaaaber was muss denn da alles installiert werden?

    Ich habe ein paar Helper-Projekte (die von @ErfinderDesRades) und zwei Pakete für Excel und PDF eingebunden. Das landet auch alles in bin\Debug\.
    Muss es das komplette Verzeichnis sein? Oder nur das aus dem bin\Debug\app.publish\?

    Mit dem Studio hab ich mal "veröffentlicht" und das daraus entstandene Setup gestartet. Hmm, funktioniert schon, aber das Proggi ist irgendwo in AppData gelandet und es fehlten auch Dateien, die ich mit installiert haben möchte, so z.B. die Standardkonfiguration in Form eine XML-Datei.

    Wie geht das denn nun?
    Ich empfehle dir das "Microsoft Visual Studio 2017 Installer Projects". ;)
    marketplace.visualstudio.com/i…udio2017InstallerProjects
    Bin mir aber nicht sicher, ob man dies auch auf der kostenlosen IDE installieren kann.
    Visual Basic.NET 8o
    MS-SQL
    8o

    OliverSte schrieb:

    mein Projekt funktioniert, jedenfalls im Debugger. Nun würde ich das gerne auf die Menschheit loslassen, aber vorher noch am lebenden Objekt testen, also auf einer anderen Maschine, als dem Entwicklungsrechner installieren.

    Stopp halt. Niemand wird sich das Setup installieren? Pack es in eine ZIP und gut ist.
    Software being "Done" is like lawn being "Mowed". (Jim Benson)
    Als erstes würde ich eine Release-Version bauen, um das Projekt auf andere Rechner zu verteilen.
    Und zum Testen, ob es auf anderen Rechnern läuft, würde ich erst mal nur ausgewählte Dateien aus ../bin/Release von Hand kopieren.
    Dann weißt du zum einen, was dazu gehört und für einen späteren Setup vormerken.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @Cheffboss
    Das lässt sich auf der kostenlosen Community installieren. Mal sehen, was das kann ...
    ... Damit komme ich nicht weiter. Das Ergebnis unterscheidet sich nicht von dem, was bei "Veröffentlichen" herauskommt. Beim Setup kann nicht mal ein Zielverzeichnis eingegeben werden, u.s.w.

    @petaod
    Ok, ich stelle das Projekt von Debug auf Release um und mache Erstellen - Projektmappe erstellen . Im "Release" Verzeichnis fehlen Dateien, die ich dem Projekt hinzugefügt hatte.
    Ach je, ich muss dafür In Ausgabeverzeichnis kopieren = Immer kopieren einstellen.

    Sieht ziemlich unübersichtlich aus da drin. Ich lösch mal alle PDB und XML Dateien, dass nur noch EXE und DLL übrig bleiben (und natürlich meine Config-Datei). Das klappt schon mal und Proggi läuft, wenn man das ohne Installation (!) auf einem fremden einfach aus diesem Verzeichnis startet. Sehr schön. Allerdings kommt mir das sehr willkürlich vor und ich bin unsicher, ob das wirklich so richtig ist. Wozu die ganzen Dateien, wenn man sie doch nicht braucht?

    Nun möchte ein Setupprogramm haben, welches nach einem Zielverzeichnis fragt, alle Dateien dort hineinkopiert, weitere Verzeichnisse und eine Verknüpfung anlegt. Das mache ich dann mit Inno Setup, richtig?

    KidRick schrieb:


    Stopp halt. Niemand wird sich das Setup installieren? Pack es in eine ZIP und gut ist.

    Warum sollte das so sein?
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    @MrTrebron
    Gibt mir einen richtigen Grund, dass Programm auf ein einwandfrei laufendes System zu installieren (ist jetzt mal egal was das Programm macht). Bedenke dabei aber was der TE sagt:

    OliverSte schrieb:

    aber vorher noch am lebenden Objekt testen
    Software being "Done" is like lawn being "Mowed". (Jim Benson)
    Ich tippe mal der TE möchte seine Software, zumindest halbwegs, Professionelle verteilen.

    Office, Visual Studio und Co kommen ja auch als Installer
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    Office, Visual Studio und Co. sind auch größer als 1GB. Es gibt viele Programme die in einer ZIP kommen und das wird vom Forum lieber gesehen als nen Installer. Aber gut, jeder so wie er möchte ist nur meine persönliche Meinung dazu und auch weitaus einfacher ;)
    Software being "Done" is like lawn being "Mowed". (Jim Benson)
    @KidRick
    Ich habe noch nie ein anständiges Programm gesehen das ohne Installer daher kam? Und auserdem finde ich es sehr gut wenn ich keine Leichen im System habe sondern über "Programme und Features" das Programm mit dem Deinstaller einfach löschen kann...Spantan fällt mir wirklich kein Programm ein das KEIN Deinstaller bzw Installer hätte? TeamViewer, Open Office, Steam, TeamSpeak, Hamachi und sonst alles unter 100MB... alles mit Installer und Deinstaller.
    @MVN050 CPU-Z, GPU-Z, HxD, procexp, Procmon, PuTTY ... eigentlich alle portablen Anwendungen, aber darüber würde ich niemals definieren ob ein Programm "anständig" ist oder nicht.

    Ich selbst nutz das WiX Toolset, die Lernkurve kann anfangs etwas steil sein, aber danach ist es relativ einfach.
    Imho geht es nicht um eine Veröffentlichung im Forum.

    Man darf auch Portable nicht mit installierbare Anwendungen vergleichen.

    Startmenüeinträge, Dateiendung registrieren und so weiter ist halt Installer arbeit
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    Sorry aber Portable Anwendungen brauchen sicherlich keinen Installer... Sonst wären die irgendwie nich Portable oder?
    CPU-Z hatn Installer cpuid.com/softwares/cpu-z.html
    HxD hatn Installer mh-nexus.de/de/downloads.php?product=HxD
    und würde der TE eine Portable Version veröffentlichen... Würde er wohl kaum hier nachm Installer fragen?
    @MVN050 Ich bezog mich auf "Ich habe noch nie ein anständiges Programm gesehen das ohne Installer daher kam?", demnach wären laut dir alle Anwendungen ohne Setup oder die portable Versionen anbieten keine "anständigen" Programme.
    Also um es nochmal ganz deutlich zu sagen: Ich würde niemals ein Programm in "anständig"/"crap" kategorisieren nur weil es ein/kein Installer hat.

    Ansonsten, wie @MrTrebron schon sagte: Gewisse Aufgaben schreien nach einem Setup und andere nicht.
    Wenn ich dich recht verstanden habe willst du ein einfaches Setup mit allen Start-notwendigen Dateien machen. Nun das geht doch bei InnoSetup Wizard sehr leicht! Assembly Dateien hinzufügen (die DLLS und XML) und die Hauptdatei (die EXE). Und dann einfach weiter durch den Wizard Dialog.

    Eine andere Variante wäre, dass du die DLLS in die EXE einkompilierst und dann die XML und die EXE in einem .ZIP Packet zusammen umherschickst.

    Ich hoffe ich konnte helfen.
    LG
    Bitte benutze OPTION STRICT ON.
    Und optional OPTION EXPLICIT ON.
    Hier ein CODE-CONVERTER.

    Suchanfragen-Ansatz für GOOGLE.
    Prüfe deinen Beitrag in einer RECHTSCHREIBPRÜFUNG.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Ceytec“ ()

    Hey @Ceytec,

    genau so ist es.
    Ist zwar ganz lustig anzuschauen, wie eine an sich harmlose Frage in ein Wort-Gemetzel eskaliert :thumbdown: , aber nicht hilfreich.
    Ich habe wohl eine für den ein oder anderen zu provokante Ausdrucksweise gewählt und das Problem nicht präzise genug beschrieben. Sorry dafür, ich versuche es noch mal.

    Der "Test am lebenden Objekt" sollte meinen, dass ich das Ding unter realen Bedingungen "installieren" möchte, also auf einem anderen, als dem Entwicklungsrechner. So einen habe ich hier daneben stehen. Das Programm "auf die Menschheit loslassen" ist viel zu weitläufig formuliert, denn die Zielgruppe ist sowohl nur sehr klein, als auch bekannt. Dennoch, die Erkenntnisse sollten sich dann auch auf weitere Projekte übertragen lassen, die eine gänzlich andere Zielgruppe adressieren.

    @MrTrebron Dieses Programm ist eine Auftragsarbeit und für eine sehr enge Zielgruppe bestimmt. Diese bekommt "Attachment speichern" noch gerade hin, aber "Entzippen in ein bestimmtes Verzeichnis" ist dann schon zu viel. Solche Leute müssen vom Installer an die Hand genommen werden. Im Zuge der Installation soll dieser ein paar Basisarbeiten erledigen, die man auch mit einer Batchdatei machen könnte, klar, aber mit Installer ist es professioneller. Konkret müssen im Zielverzeichnis einige Unterverzeichnisse angelegt werden. Weiter müssen die Programmdatei, ein paar Libs, ein PDF, sowie eine Configdatei und ein JPG kopiert werden.

    Ich kann das alles mit einer Batch machen, mit Inno Setup oder auch mit Wix, soweit so gut. Aber ich muss schon wissen, was alles zum ausführbaren Programm gehört, denn das Debug- und auch das Release-Verzeichnis ist ziemlich voll! Wie ich schon herausgefunden habe, sind z.B. XML und PDB Dateien offenbar überflüssig, oder?

    Also, @KidRick, du distribuierst deine Lösungen als ZIP-Archiv. Dann kannst du mir doch sagen, was in das ZIP alles hinein gehört:

    Quellcode

    1. Verzeichnis von o:\Visual Studio\ICaSE\bin\Release
    2. 22.10.2017 13:46 <DIR> .
    3. 22.10.2017 13:46 <DIR> ..
    4. 21.10.2017 09:01 <DIR> app.publish
    5. 21.10.2017 09:01 <DIR> de
    6. 21.10.2017 09:01 38.400 DBExtensions.dll
    7. 21.10.2017 09:01 71.168 DBExtensions.pdb
    8. 21.10.2017 09:01 3.340 DBExtensions.xml
    9. 14.07.2016 15:57 1.250.304 EPPlus.dll
    10. 14.07.2016 15:57 1.602.170 EPPlus.xml
    11. 21.10.2017 09:01 86.528 GeneralHelpers.dll
    12. 21.10.2017 09:01 259.584 GeneralHelpers.pdb
    13. 21.10.2017 09:01 14.050 GeneralHelpers.xml
    14. 21.10.2017 09:01 1.873 ICaSE.application
    15. 21.10.2017 09:01 1.344.000 ICaSE.exe
    16. 26.09.2017 15:04 1.174 ICaSE.exe.config
    17. 21.10.2017 09:01 14.496 ICaSE.exe.manifest
    18. 21.10.2017 09:01 2.045.440 ICaSE.pdb
    19. 21.10.2017 09:01 32.887 ICaSE.xml
    20. 26.09.2017 21:38 30.153 ICaSEConfig - Basis mit z_SE und z_RZ.xml
    21. 26.09.2017 21:38 30.153 ICaSEConfig.xml
    22. 06.10.2017 15:51 21.883 Logo_SE.jpg
    23. 16.05.2013 17:20 253.952 MigraDoc.DocumentObjectModel.dll
    24. 16.05.2013 17:20 442.584 MigraDoc.DocumentObjectModel.xml
    25. 16.05.2013 17:20 135.168 MigraDoc.Rendering.dll
    26. 16.05.2013 17:20 88.300 MigraDoc.Rendering.xml
    27. 16.05.2013 17:20 81.920 MigraDoc.RtfRendering.dll
    28. 16.05.2013 17:20 49.000 MigraDoc.RtfRendering.xml
    29. 16.05.2013 17:20 94.208 PdfSharp.Charting.dll
    30. 16.05.2013 17:20 129.253 PdfSharp.Charting.xml
    31. 16.05.2013 17:20 581.632 PdfSharp.dll
    32. 16.05.2013 17:20 1.185.278 PdfSharp.xml
    33. 21.10.2017 09:01 90.112 WinFormHelpers.dll
    34. 21.10.2017 09:01 220.672 WinFormHelpers.pdb
    35. 21.10.2017 09:01 17.610 WinFormHelpers.xml
    36. 31 Datei(en), 10.217.292 Bytes
    37. Verzeichnis von o:\Visual Studio\ICaSE\bin\Release\app.publish
    38. 21.10.2017 09:01 <DIR> .
    39. 21.10.2017 09:01 <DIR> ..
    40. 21.10.2017 09:01 1.344.960 ICaSE.exe
    41. 1 Datei(en), 1.344.960 Bytes
    42. Verzeichnis von o:\Visual Studio\ICaSE\bin\Release\de
    43. 21.10.2017 09:01 <DIR> .
    44. 21.10.2017 09:01 <DIR> ..
    45. 16.05.2013 17:20 9.728 MigraDoc.DocumentObjectModel.resources.dll
    46. 16.05.2013 17:20 5.632 MigraDoc.Rendering.resources.dll
    47. 16.05.2013 17:20 5.632 MigraDoc.RtfRendering.resources.dll
    48. 16.05.2013 17:20 4.608 PdfSharp.Charting.resources.dll
    49. 16.05.2013 17:20 5.120 PdfSharp.resources.dll
    50. 5 Datei(en), 30.720 Bytes


    Was hier noch komplett fehlt, ist das .NET Framework. Ich habe für 4.5 kompiliert und würde das schon gerne bei Bedarf herunterladen lassen. Mit allein einem ZIP ziemlich schwierig zu realisieren ...
    @OliverSte

    Eigentlich alles aus dem Release-Ordner (außer die PDBs glaube ich, die braucht der End-User nicht unbedingt). Hab das veröffentlichen Feature nie benutzt deshalb auch nie den "app.publish"-Ordner bekommen. Und abgesehen davon programmiere ich gar nicht mehr in der .NET-Umgebung.

    OliverSte schrieb:

    Was hier noch komplett fehlt, ist das .NET Framework. Ich habe für 4.5 kompiliert und würde das schon gerne bei Bedarf herunterladen lassen. Mit allein einem ZIP ziemlich schwierig zu realisieren ...

    Spätestens beim Doppelklicken auf die Anwendung wird der Nutzer mit einem Fenster begrüßt welches in dazu auffordert .NET 4.5 herunterzuladen (siehe Anhang, ist mit .NET 3.5). Außerdem ist 4.5 doch eigentlich gängig, oder habe ich da etwas verpasst?
    Bilder
    • net.png

      30,09 kB, 677×498, 133 mal angesehen
    Software being "Done" is like lawn being "Mowed". (Jim Benson)

    MVN050 schrieb:

    Portable Anwendungen brauchen sicherlich keinen Installer
    Ich hatte kürzlich die Software eines namhaften Herstellers in den Händen.
    Das war ein Installer-Paket, um die Software portable zu installieren.
    Da wurden im Wesentlichen vom Installer Basis-Settings für die Software abgefragt (z.B. Sprache).
    Danach wurde in einem Verzeichnis die parametrierte portable Version abgelegt.
    Das fand ich sehr komfortabel.

    Es gibt auch Portables, die beim ersten Aufruf die Grundeinstellungen durchführen.
    Da ist es aber oft für den Laien nicht ersichtlich, wie er wieder zu einer unparametrierten Roh-Version kommt, um sie woanders neu zu parametrieren.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    So, eins ist schon mal klar, die PDB Dateien müssen sicher nicht mit ausgeliefert werden, weil sie nur für den Debugger erforderlich sind. Warum landen die dann im Release-Ausgabeverzeichnis? Damit wir was zu bequatschen haben.

    Die XML Dateien sind gleichermaßen überflüssig.