Warum funktioniert meine *exe nicht auf rechnern, wo kein VC++ 2005 express ist



  • oik das is net das problem aber...reicht das denn wirklich aus?

    also ich mein brauch ich dafür wirklich nur .NET Framework 2, weil wenn ja, wär das eigentlich kein problem, ich dacht ich müsste noch PSDK und VC++2005 express auf dem zielrechner daraufmachen^^?



  • Wenn Du nur zusätzlich die CRT verwendest und keine MFC/ATL, dann reicht das .NET-Framework aus.



  • demnach brauch ich dann auch nich irgendwelche dlls zu kopieren oder so?
    oder?



  • Neun, Du brauchst nur Deine EXE und das .NET-Framework 2.0 ...



  • Hi,
    also bei mir haut das absolut nicht hin. Ich kompiliere im Release Modus. Auf dem Zielrechner habe ich sämtliche .net Frameworks installiert, 1.1, 2.0, 3.0. Es kommt immer der Fehler das "die Anwenungskonfiguration" nicht korrekt ist.
    Ich bekomme beim kompilieren zwei Dateien "myapp.exe" und in "myapp.resources.dll" die in einem Ordner "de-DE" liegt. Was muss ich nun anstellen um die exe zum laufen zu bringen? Ich habe jetzt schon einige Seiten gefunden auf denen behauptet wird das man Anwendungen die mit einer Express Version erstellt wurden nicht auf anderen Rechnern laufen lassen kann. Stimmt das? Es wäre klasse wenn jemand mal in ein paar einfachen Schritten erklären könnte was man tun muss um die exe überall laufen zu lassen, weil allein mit .net framework installieren ist es auf jeden Fall nicht getan bei mir 😕

    EDIT:

    Die Dateien
    - msvcr80.dll
    - msvcp80.dll
    - msvcm80.dll
    - Microsoft.VC80.CRT.manifest
    habe ich auch versucht in meinem Anwendungsverzeichnis abzulegen, das bringt aber leider auch nichts. Ich habe übrigens eine reine CLR Windows Forms Anwendung mit VC++2005 erstellt...

    EDIT2:

    vcredist_x86.exe von Microsoft heruntergeladen und auf dem Zielrechner installiert.

    Kurzbeschreibung
    Mit Microsoft Visual C++ 2005 Redistributable Package (x86) werden Laufzeitkomponenten von Visual C++-Bibliotheken installiert, die erforderlich sind, um Anwendungen, die in Visual C++ entwickelt wurden, auf einem Computer auszuführen, auf dem Visual C++ 2005 nicht installiert ist.

    Hat leider auch nichts gebracht. Immer noch der Fehler. Was hat der Rechner auf dem ich VC++2005 Express installiert habe was mein Zielrechner (ohne VC++) nicht hat? 😮 😕 😞



  • Wenn Du eine CLR-Anwendung hast musst Du zuerst mal das .NET-Framework Redistributable 2.0 auf dem Zielrechner installieren.
    Und dann abhängig von Deinem Service-Pack-Level von VC2005EE entweder das vcredist für das RTM oder das SP1 installieren!



  • .net Framework Redistributable 2.0 habe ich natürlich installiert
    (-> http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en)

    vcredist habe ich auch installiert(->http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9c99-220B62A191EE&displaylang=de), das hats leider auch nicht gebracht.

    Meinst du mit SP1 das .NET Compact Framework 2.0 Service Pack 1 Redistributable
    (->http://www.microsoft.com/downloads/details.aspx?familyid=0c1b0a88-59e2-4eba-a70e-4cd851c5fcc4&displaylang=en)? Compact ist doch irgendwas anderes oder meinst du das 1.1 SP1?





  • Danke für die Hilfe!

    Mit der SP1 Version vom vcredist klappts. Wie bekomme ich es nun hin das in meinen Installer mit reinzupacken? Ich verwende b1gSetup, das installiert das framework 2.0 im Bedarfsfall automatisch mit. vcredist SP1 kann ich da aber leider nicht mit ausführen lassen.

    Kann ich irgendwie rausfinden welche Dateien von meinem Programm gebraucht werden, dann kann ich mir die so zusammensuchen und vom Installer halt einzeln in die entsprechenden directorys kopieren lassen, im vcredist sind ja auf jedenfall die Dateien enthalten die ich brauche, da es ja damit jetzt funktioniert.



  • Wenn das b1gSetup Merge-Modules einbinden kann, dann kannst Du einfach die msm, welche bei Deiner VC-Installation dabei sind einbinden.



  • Eine solche Funktion habe ich da leider nicht gefunden. Ich kann nur Dateien und Ordner, Registryeinträge, Dienste und Verknüpfungen anlegen lassen. Kann man nicht irgendwie rauskriegen welche dlls und sonstige dateien benötigt werden und wo die abgelegt werden müssen?



  • Du kannst natürlich auch die CRT DLLs lokal bei Deiner Anwendungen hinterlegen. Dann musst Du aber auch noch das CRT-Manifest dazulegen... Es handelt sich um folgende CRT-DLLs:
    - msvcr80.dll / msvcp80.dll / msvcm80.dll
    Und das Manifest heisst "Microsoft.VC80.CRT.manifest" und muss folgendes enthalten (für SP1):

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable></noInheritable>
    <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    <file name="msvcr80.dll" hash="10f4cb2831f1e9288a73387a8734a8b604e5beaa" hashalg="SHA1"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">dsig:Transforms<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod>dsig:DigestValuen9On8FItNsK/DmT8UQxu6jYDtWQ=</dsig:DigestValue></asmv2:hash></file>
    <file name="msvcp80.dll" hash="b2082dfd3009365c5b287448dcb3b4e2158a6d26" hashalg="SHA1"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">dsig:Transforms<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod>dsig:DigestValue0KJ/VTwP4OUHx98HlIW2AdW1kuY=</dsig:DigestValue></asmv2:hash></file>
    <file name="msvcm80.dll" hash="542490d0fcf8615c46d0ca487033ccaeb3941f0b" hashalg="SHA1"><asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">dsig:Transforms<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod>dsig:DigestValueYJuB+9Os2oxW4mY+2oC/r8lICZE=</dsig:DigestValue></asmv2:hash></file>
    </assembly>

    Diese 4 Dateien musst Du dann nur in das gleiche Verzeichnis wie Deine EXE installieren und dann sollte es (mit installiertem .NET-Framework) gehen.



  • Funktioniert einwandfrei! Genial! 👍



  • Tag Zusammen,
    Ich schlage mich auch gerade mit C++ herum.Muss sagen, bis jetzt bin ich noch nicht so der beste Freund davon, da ich vorher nur delphi und java programmiert habe.egal...
    ich habe nun ein programm geschrieben, dass soweit auch keine compilierfehler mehr aufweist. wenn man das programm startet, sieht man das GUI für 2ms und dann beendet sich das proggi wieder...
    hat vielleicht ein kluger kopf von euch ne idee an was das liegen könnte...
    ich muss vielleicht noch erwähnen, dass ich das form von visual c++ express hab generieren lassen...könnte ja sein das es damit im zusammenhang steht...

    wäre froh um einen Input!

    Vielen Dank



  • Debuggen?



  • jo, das hab ich natürlich auch schon versucht...auch mit haltepunkten...folgende fehlermeldung kommt beim start des debuggens:
    "Für "Filename.exe" können keine Debuginformationen gefunden werden oder sie stimmen nicht überein. Die Binärdaten wurden nicht mit Debuginformationen erstellt.
    Möchten sie den Debugvorgang fortsetzten?bla bal...

    ich könnte mir vorstelle das eine einstellung im compiler nicht ganz korrekt ist...oder wie?



  • Also so weit ich weiß, ist im VC++ 2005 Express eine Funktion zum Veröffnetlichen nicht vorgesehen. Man kann also keine lauffähigen Programme erstellen. Man kann also Frameworks und SDK's installieren bis es lustg wird. Bei anderen Express-Versionen scheint sich das wieder anders zu verhalten (bin mir aber nicht sicher).
    Es gibt einen manuellen Weg lauffähige Programme zu erstellen, aber der ist so umständlich...
    Mit der 90-Tage-testversion von Visual Studio müsste es aber machbar sein.


Anmelden zum Antworten