vcredist und VC++ 2005 Express Edition SP1
-
Hallo,
Habe vor kurzem SP1 für VC++ 2005 Express Edition installiert!
Wie ich nun im nachhinein festgestellt habe, benötigt man um die Anwendungen auf anderen Rechnern aus zu führen eine andere Version von "vcredist_x86.exe".
Das Problem dabei ist, dass diese mit der SP1 Installation bei Express Edition nicht mit ausgeliefert wird und Microsoft auch nicht vor hat die neue Version zum Download anzubieten - WARUM ???Meine Frage: Kann ich jetzt VC++ 2005 Express Edition mit Service Pack 1 vergessen - Deinstallation klappt leider nicht ...
oder gibt es eine Möglichkeit das vcredist_x86.exe Problem zu umgehen ???mfg
-
Du hast mehrere Möglichkeiten:
1. Du kannst natürlich immer noch statisch linken, wenn Du eine unmanaged App gemacht hast.
2. Du kannst aber auch das "_USE_RTM_VERSION" define verwenden, damit Du noch mit den "normalen" vcredist (ohne SP1) arbeiten kannst.
Siehe:
http://msdn2.microsoft.com/en-us/library/aa983349
(Achtung hier gibt es Probleme bei MFC-DLLs (die man aber sowieso nicht mit der EE erstellen kann):
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=2470573. Du kannst die CRT DLLs mit dem passenden Manifest mit Deiner APP mitliefern.
4. Warten bis MS die redists für SP1 liefert (werd gleich mal nachfragen)
-
Möglichkeit 1: entfällt --> managed Code
Möglichkeit 2: laut Microsoft sollte man die Manifest-Lösung bevorzugen ...
Möglichkeit 3:
hab mir
[url]http://msdn2.microsoft.com/de-de/library/ms235342(VS.80).aspx [/url]
mal durchgelesen: was muss ich tun um das Manifest als Binärdatei einzubetten und muss ich da was in den Projekteinstellungen ändern?Möglichkeit 4: siehe Link (Mircrosoft hat offensichtlich nicht vor diese Datei zum Download anzubieten)
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1064647&SiteID=1
-
Aquaedukt schrieb:
Möglichkeit 2: laut Microsoft sollte man die Manifest-Lösung bevorzugen ...
Was hat das mit dieser Variante zu tun?
Aquaedukt schrieb:
Möglichkeit 3:
hab mir
[url]http://msdn2.microsoft.com/de-de/library/ms235342(VS.80).aspx [/url]
mal durchgelesen: was muss ich tun um das Manifest als Binärdatei einzubetten und muss ich da was in den Projekteinstellungen ändern?Das Manifest wird doch so oder so erzeugt!???
Da brauchst Du noch ein Manifest für die CRT DLLs:
Microsoft.VC80.CRT.manifest schrieb:
<?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>
-
kenn mich mit Manifest-Dateien nicht so gut aus ...
muss ich die vor dem compilieren im Projektverzeichnis vorliegen oder wird beim öffnen automatisch zur Laufzeit danach gesucht?
-
Wenn Du eine VC*+ Anwednung mit VC2005 erstellst, wird das (passende) Manifest schon automatisch in die EXE eingebunden. Dazu musst Du gar nichts machen.
Wenn Du nun auf dem Zielrechner die (passenden) CRT DLLs *nicht* installiert hast, dann musst Du diese mitgeben und dazu brauchen die *CRT DLLs* noch eine Manifest-Datei. Diese muss den Namen "Microsoft.VC80.CRT.manifest" haben und den obigen Inhalt.
Die Manifest-Datei und die Dateien msvcr80.dll, msvcp80.dll und msvcm80.dll musst Du in das *gleiche* Verzeichnis wie Deine EXE legen. Dann sollte alles funktionieren.
-
ok danke, werd ich versuchen!
-
Die Lösung mit der Manifest-Datei ist sehr gut, jetzt läuft meine Anwendung auch auf anderen Rechnern.
-
Ein verantwortlicher MS Manager hat nochmals Stellung dazu bezogen:
http://forums.microsoft.com/MSDN/showpost.aspx?postid=1105291&siteid=1&PageID=1#1105291Es wird also doch ein download für das vc_redist-SP1 geben...