Zum Ausführen benötigte vcredist_x86.exe integrieren
-
Hallo!
Wenn ich mein Programm, erstellt mit dem Visual Studio 2008 prof., auf einem anderem Rechner ausführen möchte, dann erhalte ich die Meldung:
Diese Anwendung konnte nicht gestartet werden, weil die Anwendungskonfiguration nicht korrekt ist. Zur Problembehebung sollten Sie die Anwendung neu installieren
Jetzt will ich nicht, dass jeder Anwender extra die vcredist_x86.exe installieren muss, damit das geht.
Kann ich irgendwo im Visual Studio einstellen (falls ja wo genau),dass er alles in meine exe compiliert was er dann auf anderen Rechner auch benötigt?
Afaik geht das, siehe hier:
http://social.microsoft.com/Forums/en-US/Offtopic/thread/2c6c81cc-1124-4264-90ef-cfcc2513d1c9/ich finde nur die Einstellungsmöglichkeit nicht
-
Du kannst doch einfach die nötigen DLLs in das gleiche Verzeichnis deiner EXE legen. Wird alles im vcredist-Verzeichnis deines MSVS erklärt.
msvcp80.dll - C++ Runtime
msvcr80.dll - C Runtime
Microsoft.VC80.CRT.manifest - nötige manifestDie drei Dateien einfach dazu geben. Oder am besten ein MSI-Projekt erstellen, da wird autom. alles dazu gelegt, was man braucht.
http://msdn.microsoft.com/de-de/library/ms235317.aspx
-
Bulli schrieb:
Du kannst doch einfach die nötigen DLLs in das gleiche Verzeichnis deiner EXE legen.
Warum einfach, wenns auch umständlich geht?
-
Wenn man es dem Anwender schon einfach machen möchte, warum dann nicht einfach eine aktuelle Version der redist-Dateien mit dem Installer der Anwendung installieren?
Ansonsten die redist.exe halt beiliegen und die AW sollen sich das selber installieren. Wüsste jetzt nicht was daran so schwer ist...
rya.
-
Der Fragesteller hat die Prof-Edition von MSVS. Da ist auf jeden Fall ein MSI-Projekt mit möglich. Und das sollte man auch einfach mal benutzen. URL habe ich ja schon gepostet. Für MSI-Installationen benötigt der Anwender auch nicht zwingend Admin-Rechte! Und er kann danach über einen Deinstaller die Software wieder löschen.
-
audacia schrieb:
das geht aber nicht immer. wenn du eine fremd-dll verwendest, geht das ganz schnell in die hose, weil die speicherverwaltungen sich in die quere kommen können.
-
ned so simpel schrieb:
audacia schrieb:
das geht aber nicht immer. wenn du eine fremd-dll verwendest, geht das ganz schnell in die hose, weil die speicherverwaltungen sich in die quere kommen können.
Die Verwendung einer DLL an sich ist unproblematisch. Schwierig wird es, wenn die DLL sich nicht auf ein C-Interface beschränkt, sondern z.B. mit der Anwendung Objekte austauscht; dann müssen beide Module denselben Speichermanager verwenden, und das kann beispielsweise durch das Verwenden der dynamischen RTL erzwungen werden.
Von solch einer DLL ist hier aber nicht die Rede, und der Threadersteller fragte ausdrücklich nach statischem Linken:
BiuC schrieb:
Kann ich irgendwo im Visual Studio einstellen (falls ja wo genau),dass er alles in meine exe compiliert was er dann auf anderen Rechner auch benötigt?
Da scheint mir der Verweis auf das Mitliefern der nötigen DLLs unangebracht.
-
audacia schrieb:
Da scheint mir der Verweis auf das Mitliefern der nötigen DLLs unangebracht.
Meistens wissen die Fragesteller aber einfach nur nicht, das man die DLLs beilegen oder ein MSI erstellen kann. Der Fragesteller wollte ja nur die vcredist-Installation umgehen. Was man aber nicht nur aussließlich durch ein statisches Linken umgehen kann.
-
Okay, etwas konkreter: wenn der Fragesteller ausdrücklich nach statischem Linken fragt, scheint mir der alleinige Verweis auf das Mitliefern der nötigen DLLs unangebracht.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.