none
Dateigroessenbeschraenkung auf 32 Bit Windows? RRS feed

  • 問題

  • Hallo

    Ich entwickle hier eine WPF-Anwendung, welches als Setup für andere Produkte dienen soll. Nun ergibt sich das Problem, sobald die Anwendung eine Größe von ca. 800 MiB erreicht, kann sie auf 32 Bit Betriebssystemen nicht mehr ausgeführt werden und bricht mit der Fehlermeldung "This application could not be started." direkt beim Start ab. Die zu installierenden Produkte werden als Ressourcen in die ausführbare Datei eingebettet, wo sie dann bei der eigentlichen Installation entnommen werden. Die Anwendung wird mit Visual Studio 2019 und der Compiler-Einstellung "Any CPU" erstellt. Auf einem 64 Bit Betriebssystem funktioniert die Anwendung problemlos. Das Problem tritt bei allen 32 Bit Windows Versionen, die unterstützt werden sollen (8 - 10). Das unterstütze Framework wurde auf .Net Framwork Version 4.0 festgelegt.

    Hat jemand eine Idee, wie sich das Problem beheben läßt?

    Gruß Alvaro



    2019年7月18日 上午 10:04

解答

  • Oben in seinem zweiten Beitrag schreibt er, daß es gewünscht ist, nur eine Datei auszuliefern, somit fällt diese Option eigentlich raus. Ein 'Kompromiss' wäre vielleicht, die MSIs in eine selbstentpackende ZIP-Exe (ich kenne den korrekten Begriff nicht) zu packen, welche nach dem entpacken dann noch das eigentliche Setup aufruft. Ich meine, so etwas wäre mir schon begegnet.

    Unabhängig davon, wie die mögliche Lösung aussehen kann/wird: Ich halte die Anforderungen in Kombination für unsinnig. Bei dieser Gesamtgröße macht eine Installation in nur einer Datei ganz offensichtlich nur Probleme und ich sehe nicht, warum es nur eine Datei sein darf, wenn das Setup ohnehin Offline geschehen soll (und damit wohl auf Datenträger ausgeliefert wird).

    2019年7月19日 上午 05:14

所有回覆

  • Hi,

    Hat jemand eine Idee, wie sich das Problem beheben läßt?

    ich würde empfehlen, die separaten Produkte eben nicht als eingebettete Ressourcen, sondern als externe Ressourcen einzubinden. Sprich, als separate Zip Datei oder ähnliches, die man dann zur Laufzeit entpackt und die enthaltenen Dateien nutzt. Evtl. kann man das auch mit separaten Assemblies (DLLs) machen, die ihrerseits dann die Ressourcen beinhalten aber auch hier würde ich dann dafür sorgen, dass diese nicht so riesig werden.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    2019年7月18日 上午 10:40
    版主
  • Hallo Stefan,

    vielen Dank für die schnelle Antwort. An eine Aufteilung haben wir hier auch schon gedacht. Das Problem hierbei ist jedoch, dass die Geschäftsführung nur eine ausführbare Datei ausliefern möchte in der alle zu installierenden Produkte enthalten sind. Mehrere Dateien auszuliefern soll komplett verhindert werden. Prinzipiell sind ja die Produkte in unserem Setup-Programm bereits gezipte Pakete. Das Installationsprogramm beinhaltet ansonsten nur noch die UI als Ressource, die nach der Extraktion gestartet wird. Diese entscheidet dann, was aus den Ressourcen extrahiert wird und an welches Stelle die Dateien kopiert werden.

    Gibt es möglicherweise noch einen anderen Ansatz, um das Problem zu lösen?

    Gruß Alvaro

    2019年7月18日 上午 11:11
  • Hallo Alvaro,

    Das Problem hierbei ist jedoch, dass die Geschäftsführung nur eine ausführbare Datei ausliefern möchte in der alle zu installierenden Produkte enthalten sind. Mehrere Dateien auszuliefern soll komplett verhindert werden.

    die Geschäftsführung möchte das evtl. so haben, das ändert aber nichts daran, dass es nicht IMHO sinnvoll ist, solch große Exe Dateien auszuliefern.

    Ich kann mir auch nicht vorstellen, dass es einen anderen Weg gibt, wenn alles nur in einer einzigen Datei bleiben soll.

    Abgesehen von der eigentlichen Größe der Exe Datei an sich kommen ja auch noch dazu geladene Assemblies für die Ausführung (.NET Framework, usw.) dazu.

    Du könntest natürlich die Dateien auch aus dem Netz nachladen aber das ist wohl auch nicht gewünscht?


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    2019年7月18日 下午 12:25
    版主
  • Hallo Stefan,

    Du hast es richtig erfasst. Die Installation unserer Produkte soll auch komplett offline funktionieren. Dann müssen wir uns etwas neues einfallen lassen. Denn bis zu dieser magischen Grenze hat ja auch alles sehr gut mit einer einzigen Exe-Datei funktioniert.

    Aber trotzdem vielen Dank für die Antworten

    Gruß Alvaro

    2019年7月18日 下午 12:40
  • Hallo Alvaro,

    vielleicht hilft Euch/Dir ein MSI File in dem die Ressourcen in einzelnen Cabs verteilt sind.

     


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings

    2019年7月18日 下午 05:27
  • Oben in seinem zweiten Beitrag schreibt er, daß es gewünscht ist, nur eine Datei auszuliefern, somit fällt diese Option eigentlich raus. Ein 'Kompromiss' wäre vielleicht, die MSIs in eine selbstentpackende ZIP-Exe (ich kenne den korrekten Begriff nicht) zu packen, welche nach dem entpacken dann noch das eigentliche Setup aufruft. Ich meine, so etwas wäre mir schon begegnet.

    Unabhängig davon, wie die mögliche Lösung aussehen kann/wird: Ich halte die Anforderungen in Kombination für unsinnig. Bei dieser Gesamtgröße macht eine Installation in nur einer Datei ganz offensichtlich nur Probleme und ich sehe nicht, warum es nur eine Datei sein darf, wenn das Setup ohnehin Offline geschehen soll (und damit wohl auf Datenträger ausgeliefert wird).

    2019年7月19日 上午 05:14
  • naja genau das meine ich mit der MSI auch. Eine MSI ist ja kein Programm das sich selbst ausführt. Es enthält nur Anweisungen für den Windows Dienst der die Daten entpackt und installiert.

    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings

    2019年7月19日 下午 04:20
  • Wir haben jetzt genau diese Möglichkeit getestet. Wir packen alles in eine selbstextrahierende Zip-Datei. Diese wird dann in einen temporären Ordner entpackt und dort wird dann dann das eigentliche Setup-Programm gestartet.

    Vielen Dank für die Hinweise

    Gruß Alvaro

    2019年7月22日 上午 06:43