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.

