| 

.NET C# Java Javascript Exception

3
Ich habe eine Anwendung geschrieben. Diese wird im Konfigurationsmananger als "x86" erstellt. Nachdem ich alle Assemblies erstellt habe wird das Setup erstellt. Dies ist auch auf "x86" eingestellt.

Nun wollen wir auch ein "x64" Setup erstellen. Können wir für die Assemblies die selben Sourcen verwenden? Brauchen wir nur umstellen auf "x64", erstellen und dann das x64-MSI oder gibt es noch was zu beachten?
16.01.2012
MyKey0815 1,6k 2 9
Auf die Beantwortung dieser Frage war ein Kopfgeld in Höhe von 50 Reputationspunkten ausgesetzt. Das Kopfgeld wurde bereits vergeben.
3 Antworten
2
Puh,

ich hab schon öfter Überlegt ob ich meinen Senf zu dieser Frage gebe oder nicht. Das große Problem an der Sache ist: It depend´s

Es ist mir schwierig die perfekte Antwort zu geben ohne das Produkt von euch zu kennen. EIGENTLICH musst du nichts beachten, ich kann dir aber sagen über was ich gefallen bin als wir unser Produkt für x64 und Win7 fit gemacht haben:


  • Unsere Struktur wie wir das Programm installiert haben war nicht geeignet für Win7. Das UAC (User Account Control) hat uns Probleme bereitet. Wir haben die Struktur umstellen müssen und zum Beispiel gemeinsam genutzte Dateien in %public documents% installieren müssen
  • Wir haben einen seperaten Updater für unsere Anwendung. Er hat unter Win7 nicht richtig Funktioniert weil die Administrator-Rechte nicht explizit gefordert haben. Wir haben ein Manifest eingebunden um diesem Problem entgegen zu wirken. Dieses Problem ging teilweise mit dem ersten einher, da Win7 für viele Dateien pro Nutzer eine Shadow Kopie angelegt hat (Siehe VSS / Volume Shadow Copy). Ein Workarround ist, das Programm nicht nach C:\Program Files\ zu installieren, sondern irgend wo anders hin, z. B. direkt C:\ - Aber der Workarround war für uns nicht tragbar
  • Einige Treiber die wir installiert haben, funktionierten nicht mehr (OK das Problem war uns bewusst bevor wir umgestellt haben, ich führe es bloß mit auf)


Das Problem ist also meiner Meinung nach eher nicht, das euer Produkt nicht richtig installiert wird / nicht startet, sondern das es nicht zu der Betriebsumgebung passt. Je nach dem um was für ein Produkt es sich handelt, müsst ihr wahrscheinlich umfangreiche Tests durchführen ... Wir mussten da auch durch.

Grüße
23.01.2012
Nicolai Schönberg 2,4k 2 9
1
Erst einmal: da Du von Assemblies schreibst, gehe ich mal davon aus, dass es sich um eine .NET-Anwendung handelt. Da lautet die Antwort: im einfachsten Fall ja. Ausnahmen gibt es z.B., wenn Du auf Systemordner zugreifst (z.B. gibt es auf 64-Bit-Systemen getrennte Programme-Ordner für 64- und 32-Bit-Programme) oder wenn Du mit unmanaged code interagierst, beispielsweise eine COM-Komponente aufrufst.
In der dotnetpro gab es neulich einen Artikel dazu, der sich recht detailliert damit beschäftigte, worauf man im Einzelfall so alles achten sollte.
23.01.2012
Matthias Hlawatsch 13,2k 4 9
Danke für den Hinweis auf den Artikel in der DotNetPro. Bin zwar Abonet, war mir aber nicht bewußt, dass es den Artikel gab.
MyKey0815 25.01.2012
0
Im einfachsten Fall (wenn du nur Managed-Code benutzt) brauchst du gar keine x64-Setup, jedes 32-bit Setup kann auch auf einer 64-bit Maschine installiert werden.

Und auch wenn du native 32-bit Dlls einbindest brauchst du kein spezielles x64-Setup, dann muss du im Konfigurationsmanager nur die Plattform für das Projekt, dass die Dll einbindet auf x68 stellen.
24.01.2012
Im Prinzip richtig - Nur unsere Anwendung startet weitere Instanzen einer anderen Anwendnug und wenn die nicht im richtigen Kontext laufen (x86 oder x64) dann funktioniert dass nicht mit dem korrekten Auswerten der Registry-Einträge. Daher brauche ich auf alle Fälle eine 32- und eine 64-bit Version
MyKey0815 25.01.2012

Stelle deine Msi-Frage jetzt!