Announcement

Collapse
No announcement yet.

exe-Datei auf anderen Rechnern ausführen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • exe-Datei auf anderen Rechnern ausführen

    Bin ein ziemlicher Neuling und habe ein Problem mit dem .NET framework. Ich habe einige Windows-Forms-Anwendungen mit Delphi2005.NET (Version: Borland Developer Studio für Microsoft Windows Version 9.0.1935.22056 Update 3) erstellt, die auf meinem Rechner einwandfrei laufen, auch wenn ich sie über die zugehörigen exe-Dateien starte. Auf den Rechnern meiner Kollegen erhalte ich jedoch zwei verschiedene Fehlermeldungen im Verlauf der Programme. Starten lassen sie sich noch, jedoch beim ersten Rechenschritt treten Probleme auf. Die Fehlermeldungen sind folgende:

    1.

    "Unbehandelte Ausnahme in der Anwendung. [...]

    Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."

    2.

    "Eine unbehandelte Ausnahme ist in einer Komponente ihrer Anwendung aufgetreten. [...]
    Der Index war außerhalb des Arraybereichs."


    Ich vermute, ich muss die Projektoptionen so ändern, dass alle benötigten Dateien in der exe-Datei enthalten sind. Aber ich weiß es nicht und wenn das das Problem sein sollte, weiß ich auch nicht, wie ich die Optionen korrekt einstelle. Kann mir jemand helfen?

    Grüße,

    Philipp

  • #2
    Wenn du noch Neuling bist, steige besser schnell auf C# und Visual Studio um (oder nimm sharpDevelop). Delphi 2005 ist so ziemlich die schlimmste Version (nur Delphi 8 Net war wahrscheinlich noch schlimmer), die Borland je herausgebracht hat. Und außerdem kann D2005 nur NET 1.1, wir sind mittlerweile aber schon bei 3.5
    Die letzte Delphi-Version 2009 unterstützt NET überhaupt nicht mehr, das wurde in Delphi Prism ausgelagert - allerdings läuft Prism nicht mehr in der Delphi-IDE sondern im Visual Studio und dahinter steckt Oxygene von RemObjects. Soviel zu Delphi und dotNet, auf deutsch, in meinen Augen passen die beiden einfach nicht zusammen.

    bye,
    Helmut

    Comment


    • #3
      kann hwoess nur zustimmen: Delphi.NET auf basis von D8/2005/2006/2007 ist gestorben. Jede Stunde hier zu investieren ist vergeudete Zeit.

      Comment


      • #4
        Leider habe ich auch eine ziemlich große Anwendung mit Delphi 2005.net geschrieben. Wäre schön, wenn die auf anderen Rechnern auch laufen würde. Ich komm da leider nicht mehr so leicht raus... Ist auch schade, dass ich daraus nicht mal eine Win32 Anwendung machen kann, da die Hälfte der Befehle anders sind. Ich muss einfach wissen, wie ich die Compiler- oder Project-Optionen so wähle, dass ich eine Standalone-Windows-exe kriege. Auch wenn sie dann nur auf Computern mit dem dotNet-framework 1.1 laufen sollte.

        Gruß Philipp

        Comment


        • #5
          Kannst du es nicht versuchen nach Delphi.Prism zu portieren?

          Ansonsten wirst du versuchen müssen mit der Microsoft .NET Framework 2.0-Konfiguration in der Systemverwaltung der Anwendung am besten maximale Rechte einzuräumen.

          Comment


          • #6
            Kann ich Delphi.Prism irgendwo kostenlos runterladen? Fnuktionieren dort dann alle Befehle, die ich bisher in Delphi 2005.net verwendet habe?

            am liebsten wäre mir eine Lösung ohne eine neue Installation einer weiteren Delphi-Version. Es muss doch möglich sein ein exe-file zu erstellen, das ich auf einem anderen Rechner ausführen kann.

            Gruß Philipp.

            Comment


            • #7
              Originally posted by Sullivan5 View Post
              Kann ich Delphi.Prism irgendwo kostenlos runterladen?
              Download Trial

              Originally posted by Sullivan5 View Post
              Fnuktionieren dort dann alle Befehle, die ich bisher in Delphi 2005.net verwendet habe?
              Bei den Delphi-Spezifikas gibt es unterschiede. Alles was .NET ist geht dort besser

              Originally posted by Sullivan5 View Post
              am liebsten wäre mir eine Lösung ohne eine neue Installation einer weiteren Delphi-Version. Es muss doch möglich sein ein exe-file zu erstellen, das ich auf einem anderen Rechner ausführen kann.
              Schon mal mit der "Microsoft .NET Framework 2.0-Konfiguration" herumgespielt?

              Comment


              • #8
                Unter .NET ist es nicht üblich alles in eine EXE zu packen sondern du mußt schon alle Assemblies einzeln mitliefern.
                Es gibt von Microsoft ein ILMerge Tool mit dem man Assemblies zusammen mergen kann so das man nur noch eine Datei hat. Ob das auch mit von Delphi erstellten Assemblies geht weiß ich nicht. Könntest du ausprobieren.

                Die Fehlermeldung hört sich aber nicht danach an das dir auf den anderen Rechnern etwas aus der .NET Ecke fehlt. Da bekommt man schon sprechendere Fehlermeldungen.

                Fehlen dir denn andere Abhängigkeiten (also nicht .NET Dateien) wie z.B. ADO, OLEDB, ODBC Treiber oder irgendwelche COM bzw. ActiveX Objekte oder sonstiges was man vergessen könnte mitzuliefern oder was sich anderer Version auf den Zielrechnern befindet?

                Ansonsten würde ich einfach mal von einem Programmierfehler ausgehen.


                Kann ich Delphi.Prism irgendwo kostenlos runterladen?
                Kostenlos Nein. Trial gibts hier.

                Fnuktionieren dort dann alle Befehle, die ich bisher in Delphi 2005.net verwendet habe?
                Der Syntax ist ähnlich aber nicht identisch. Und wenn du VCL.NET verwendet hast wäre nun ein Umstieg auf Winforms nötig. VCL.NET ist noch toter als Delphi.NET.

                Comment


                • #9
                  Unter .NET ist es nicht üblich alles in eine EXE zu packen sondern du mußt schon alle Assemblies einzeln mitliefern.
                  Wie genau mache ich das? Das ist im Grunde meine Frage.

                  Fehlen dir denn andere Abhängigkeiten (also nicht .NET Dateien) wie z.B. ADO, OLEDB, ODBC Treiber oder irgendwelche COM bzw. ActiveX Objekte oder sonstiges was man vergessen könnte mitzuliefern oder was sich anderer Version auf den Zielrechnern befindet?
                  Das weiß ich leider nicht, da ich mich noch nicht so gut auskenne.

                  Ansonsten würde ich einfach mal von einem Programmierfehler ausgehen.
                  Das kann ich doch eigentlich ausschließen, wenn die exe-files auf meinem Rechner ohne Problem funktionieren, oder?

                  Gruß, Philipp

                  Comment


                  • #10
                    Unter .NET ist es nicht üblich alles in eine EXE zu packen sondern du mußt schon alle Assemblies einzeln mitliefern.
                    Wie genau mache ich das? Das ist im Grunde meine Frage.
                    Alle von Delphi generierten Assemblies werden vermutlich in einen Ausgabepfad generiert. Da wo du auch deine EXE gefunden hast wirst du auch benötigte andere Assemblies finden. Kenne mich da aber zuwenig mit Delphi.NET aus.
                    Falls Delphi.NET noch eigene Runtime Assemblies unabhängig vom Framework braucht sollte das in der Online Hilfe stehen. Das letzte mal als ich Delphi benutzt habe gab es immer eine Deploy.htm (oder so ähnlich) im Programmordner von Delphi in dem erklärt war welche weiteren Dateien zum Deployment notwendig sein könnten.

                    Aber wie ich schonmal anmerkte. Die genannte Fehlermeldung hört sich nicht so an als würde dir etwas aus dem NET. Bereich fehlen.

                    Ansonsten würde ich einfach mal von einem Programmierfehler ausgehen.
                    Das kann ich doch eigentlich ausschließen, wenn die exe-files auf meinem Rechner ohne Problem funktionieren, oder?
                    Nein. Das es auf deinem Rechner läuft heißt nur das du Annahmen getroffen hast die zufällig (mehr oder weniger) auf deinem Rechner zutreffen auf anderen aber vielleicht nicht.

                    Comment


                    • #11
                      Originally posted by Sullivan5 View Post
                      Kann mir jemand helfen?
                      Zuerstmal solltest Du die passende Dot.Net-Version drauf tun und da das letzte Update einspielen, also 1.1

                      Also im Verzeichniss
                      C:\WINDOWS\Microsoft.NET\Framework\ nachsehen ob es ein Verzeichnis \v1.1.4322 gibt

                      Dann brauchst Du alle Assemblys, welche die Anwendung benötigt. Das ist mindestens die
                      Borland.Delphi.dll und die Borland.Vcl.dll kann auch nicht schaden, wenn Du sie ins Verz. der Anwendung kopierst.
                      Der Rest ist abhändig von Deiner Anwendung, aber die Entwicklungsumgebeung sagt Dir welche Ass. gebraucht werden.

                      Noch ein Tip, tu Dir den Gefallen und vergiss Delphi.Net. Vielleicht ist Prism wieder tauglich.


                      ciao

                      Comment

                      Working...
                      X