Hi, ich wollte mit "Microsoft Visual C# 2008 Express Edition" für mein kleines programm eine setup.exe erstellen bin dann auf erstellen=> projekt veröffentlichen gegangen und dann auf fertig stellen mit den default einstellungen als dieser fehler kam siehe screenshot. ich habe den pfad verfolgt und gemerkt das der ordner 'engine' gar nicht existiert in IDE. weiß jemand wo ich dieses file 'setup.bin' herbekomme? bin leider noch anfänger in c#
Ich benutze Microsofts Visual Studio 2008 Professional. Das bekomme ich durch die Uni kostenlos. Als ich vorher mit einer Express Edition versucht hatte eine Setup.exe zu erzeugen, hat das leider nicht geklappt. Mit der Professional ist das allerdings kein Problem, da haste ein Template und damit erstellt er dir dann eine Setup.exe. Ich denke, dass dein Fehler dadurch zu Stande kommt, dass er genau diese Setup-Basisdatei nicht finden kann, da er sie nur in der Professional besitzt. Soweit ich weiß ist genau das eines der Unterschiede zwischen Express Edition (kostenlos) und Pro (kostenpflichtig). Vielleicht hilft dir aber folgender Trick: Du erzeugst als Projekt eine neue Consolen-Anwendung mit dem Namen "InstallExeManual". Dann klickst du im "Projektmappen-Explorer" mit rechts auf "InstallExeManual" und wählst dann ganz unten "Eigenschaften" aus. Hier wechselst du dann auf den Reiter "Ressourcen". Dort kannst du beliebige Dinge auswählen, die in deine Exe mit integriert werden. Du klickst also dann an der Stelle auf "Ressource hinzufügen" und stellst unten den Dateityp von "*.txt" auf "*.*" um. Jetzt wählst du deine Dateien aus, die du später irgendwohin haben willst (das passiert ja letztendlich in einer Setup-Datei auch). Nun kennt dein Programm diese Datei auch als Ressource und du kannst damit in deinem Code opperieren. Wir wechseln also zu "Program.cs" und begeben uns in die "main()". Dort kannst du einfach mal folgende Zeilen Code eingeben: System.IO.BinaryWriter myWrite = new System.IO.BinaryWriter(System.IO.File.Open("C:\\Users\\DeinName\\Documen ts\\7zip.msi", FileMode.Create)); myWrite.Write(InstallExeManual.Properties.Resources._7z465); Du musst natürlich noch den Pfad anpassen, und deine Ressource natürlich auch. Beim Einfügen von Ressource bekommt diese unter Umständen einen anderen Namen, über den auf die Ressource zugegriffen werden kann. Diesen solltest du dir merken. Ansonsten wird dir IntelliSense aber helfen, sobald du den Punkt nach "InstallExeManual.Properties.Resources" gesetzt hast. In meinem Fall habe ich mal die Setup.msi von 7-zip genommen. Daher auch der Name "_7z465". Was letztendlich passiert ist das folgende. Deine Ressource hatte den Namen "7z465.msi". Beim hinzufügen zu den Ressourcen deines Programms hat Visual Studio dieser dann automatisch den Namen "_7z465" zugewiesen. Die Ressource ist einfach als byte-Array verfügbar. Deswegen brauchst du auch einen BinaryWriter. Diesen instanziierst du dir über einen Konstruktor, der einen Stream benötigt. Diesen bekommst du über die statische Methode "File.Open". Wichtig ist also an genau dieser Stelle, dass du erstens einen Pfad übergibst, der tatsächlich existiert, und auf den du auch Schreibrechte hast. Zweitens musst du "FileMode.Create" als weiteren Parameter übergeben, dass die Datei angelegt wird, wenn sie noch nicht existiert. Und du musst natürlich darauf achten, dass du bei dem Pfad die Datei mit der richtigen Erweiterung angibst. Da in meinem Beispiel die als Ressource hinzugefügte Datei die Erweiterung .msi hatte, musste ich auch in meinem Dateinamen am Ende ".msi" schreiben. Am besten du probierst es mal aus, und wenn es funktioniert schreibst du dir eine Methode, der du nur den Namen einer Ressource und einen Pfad angeben musst. Diese kannst du dann dynamisch in der main() berechnen und übergeben. So bekommst du dann am Ende auch nur eine Exe und diese beinhaltet all deine Dateien, die du der Reihe nach an die korrekten Pfade schreibst. Mit der Professional ist es zwar weitaus einfacher und vor allem viel einfacher, das es per Drag & Drop funktioniert, aber so sollte es wenigstens zu Ziel führen.
wie gesagt bin noch c# anfänger und was du da beschreibst ist mir viel zu aufwendig naja egal wenn es nur mit der kostenplfichtigen geht lass ich es einfach wäre zwar nett gewesen aber was solls
Bob Hulu schrieb: > wie gesagt bin noch c# anfänger und was du da beschreibst ist mir viel > zu aufwendig Naja, also wenn du es einfach Schritt für Schritt umsetzt, dann wirst du sehen, dass es gar nicht so schwer ist. Als ich damit angefangen hatte, habe ich es genau so gemacht und es ist wirklich sehr lehrreich, wenn man schon Code vor sich hat und dann ein bisschen damit spielen kann. Wenn nicht gibt es auch noch andere Möglichkeiten Installations-Dateien automatisiert zu installieren. Musst nur mal googlen. Ich habe grade http://www.brothersoft.com/install-wizard-3386.html gefunden. Ich habe das zwar nie ausprobiert, aber vielleicht hilft es dir ja. Klingt ganz interessant. Viele Grüße, Christian
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.