Entwickler-Ecke

Programmierwerkzeuge - XNA Framework mit Installiern


Cäptin Pommes - Di 09.02.10 22:16
Titel: XNA Framework mit Installiern
Hallo,

Ich habe ein Spiel programmiert mit dem XNA Framework und versuche nun schon die ganze zeit das Framework mit in den Installer zu packen. Ich hab schon ne ganze menge tools probiert zum Installer erstellen aber irgentwie bekomm ich das nicht hin :/

Also wenn jemand weiss wie man das macht währe toll wenn er mich an dem Wissen teilhabenlässt ;)


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Di 09.02.2010 um 21:21


Xentar - Di 09.02.10 22:23

Hat das Framework einen eigenen Installer?

InnoSetup, das Framework ins Temp Verzeichnis entpacken, und beim Setup aufrufen lassen, Abschnitt [Run]


Cäptin Pommes - Di 09.02.10 22:39

ja es hat einen Installer, aber wie sol ich das den entpacken? Ich kann es höstens installienr aber da kann ich kein pfad angeben

oder wie meinst du das?


Xentar - Di 09.02.10 22:45

Hm?

Wenn ich bei meinen Anwendungen einige Voraussetzungen mitinstallieren muss, mach ich das so:
- Zusätzlichen Installer mit installieren, Zielverzeichnis: {tmp}
- Unter Run noch eintragen, dass {tmp}\MyInstaller.exe gestartet werden soll.

Edit:
Beispiel


Quelltext
1:
2:
3:
4:
5:
6:
[Files]
Source: ..\USBTreiber\CDM 2.04.06.exe; DestDir: {tmp}; Components: USBDriver


[Run]
Filename: {tmp}\CDM 2.04.06.exe; WorkingDir: {tmp}; Components: USBDriver

In deinem Fall kann es sein, dass der Benutzer sich noch selber durch das Setup klicken muss, aber da wirst du wohl nicht viel machen können, es sei denn der Installer unterstützt einen Silent-Modus.


Cäptin Pommes - Di 09.02.10 23:36

hab das jetzt versucht:


Quelltext
1:
2:
3:
4:
5:
[Files]
...\bin\x86\Debug\xnafx31_redist.msi; DestDir: {tmp}

[Run]
Filename: {tmp}\xnafx31_redist.msi; WorkingDir: {tmp}


hat aber nicht geklappt da sagt er mir:

Could not copy "C:\.... bla bla bla...\SETUPLDR.E32" to "C:\....bla bla bla....\Output\setup.exe". Error 5: Zugriff verweigert.


Xentar - Di 09.02.10 23:51

Klingt eher so, als würde da was anderes nicht stimmen..
Entweder, er kann eine andere Datei nicht finden, oder du hast keine Schreibrechte im Output Verzeichnis


Cäptin Pommes - Mi 10.02.10 07:28

also ohne das macht er das aber. Also wenn ich nur mein Programm in ein Installer mache


Nersgatt - Mi 10.02.10 09:36

Die Fehlermeldung heißt ja eigentlich nur, dass er die Setup.exe nicht erstellen kann.
Er packt erst mal alles in eine temporäre Datei zusammen und kopiert es dann als Setup.exe ins OutputDir. Das kann mit der Installation der MSI eigentlich nichts zu tun haben. Es sei denn, Deine Festplatte ist z.B. so voll, dass es mit einer kleinen Setup.exe ohne die MSI noch passt und mit der MSI zu groß ist.

Edit: Im [RUN] musst Du bei einer MSI noch das Flag Shellexec angeben. Bei mir sieht das z.B. so aus:

Quelltext
1:
Filename: {tmp}\CR\CRS_German.MSI; StatusMsg: Installiere Bla Runtime. Dies kann einige Minuten in Anspruch nehmen.; Flags: shellexec waituntilterminated; Check: DoCRInstall                    


Cäptin Pommes - Mi 10.02.10 16:39

also speicherplatz is mehr als genug vorhanden :)

und was checkt er mit Check: DoCRInstall?
und brauch ich denn jetzt kein WorkingDir: {tmp}; mehr? (weil in deinem beispiel is das ja nicht drin)


Cäptin Pommes - Mi 10.02.10 19:49

also ich hab das jetzt mit dem Flag gemacht aber es kommt die gleiche fehlermeldung


Xentar - Mi 10.02.10 19:58

Nochmal: Das liegt nicht (direkt) am XNA Framework.

Fehler 5 bedeutet wirklich, dass der Zugriff auf die Zieldatei (also das Setup, das gerade gebaut wurde) verweigert wurde.
Mal ganz blöd gefragt: Läuft das Setup noch / schon?
Wenn nicht: Gibt es den Ordner Output an der erwarteten Stelle?

Ansonsten, mehr Input. Welches OS, welche Inno Setup Version? Benutzt du das IS Tool?
Was passiert, wenn du IS als Admin startest?


Cäptin Pommes - Mi 10.02.10 20:11

Also ich hab Windows7 64bit

ISTool version: 5.3.0.1
InnoSetup: unterstützte version: 5.3.0
installierte version: 5.3.7

und diesen Output ordner scheint es wirlich nicht zu geben wie ich gerade festgestellt habe, aber ich hab ihn per hand hinzugefügt und es hat leider nix gebracht.


Cäptin Pommes - Mi 10.02.10 21:03

so ich habs hinbekommen :)

ich musste den Output ordner wo anders hinverlegen und noch irgent so ne einstellung ändern jeden falls gehts jetzt :)

danke für die hilfen


Nersgatt - Do 11.02.10 08:11

user profile iconCäptin Pommes hat folgendes geschrieben Zum zitierten Posting springen:

und was checkt er mit Check: DoCRInstall?

Nur um es vollständig zu machen: Man kann in der Section Code eigene Funktionen schreiben. Diese Funktion prüft, ob diese Runtime überhaupt installiert werden muss, oder ob es schon installiert ist (dann kann man sich die Installation sparen). Gibt die Funktion, die man bei Check: angibt True zurück, dann wird die Zeile ausgeführt, gibt sie false zurück, dann wird sie nicht ausgeführt.
Du kannst das Check: DoCrInstall also einfach weglassen.


Xentar - Do 11.02.10 10:08

user profile iconCäptin Pommes hat folgendes geschrieben Zum zitierten Posting springen:
ich musste den Output ordner wo anders hinverlegen und noch irgent so ne einstellung ändern jeden falls gehts jetzt :)

Ich kann ja immer noch nicht glauben, dass das in exakt diesem Ordner, mit exakt den selben Einstellungen, funktioniert, wenn du das XNA Framework weggelassen hast.

Aber lass mich raten: Output war ein Unterverzeichnis in Programme, z.B. "c:\Programme\InnoSetup\MeinSkript\Output" ? Deswegen meine Frage, was passiert, wenn du IS als Admin ausführst.