Side-by-Side Konfiguration (???) unter VS 2008 Beta
-
Hallo,
Ich hab ein programm unter Visual Studio C++ 2008 Beta geschrieben, als Release compilet und möchts jetzt auf anderen computern testen.
Unter Win Vista hats jetzt einen Fehler mit der Side-by-Side konfiguration gegeben. Wie behebe ich diesen?
Gruß, lh
-
Beta-Versionen darfst Du nicht auf anderen Rechnern installieren.
Warte ab bis die RTM Version (demnächst) rauskommt und dann kannst Du es machen.
Dazu musst Du das passende "vc_redistx86.exe" auf dem Zielrechner installieren, oder ein passenden Manifest und die CRT-DLLs in das Applikationsverzeichnis mit passendem Manifest dazu reinlegen.
-
Danke, was sind eigentlich die Manifests?
-
Ein Manifest ist eine XML-Datei mit einem speziellen Inhalt...
DIes kann entweder als Resource der Applikation beigegeben werden oder (bei EXEn) extern mit dem Namenname-der.exe.manifest
Ein Manifest für die Debug-Version der CRT von VS2005 sieht z.B. so aus:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?> <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> <dependency> <dependentAssembly> <assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> </dependentAssembly> </dependency> </assembly>
Ein Vista Manifest sieht z.B: so aus:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <!-- Identify the application security requirements. --> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
Ohne dieses Manifest wir Deine Applikation unter Vista "virtualisiert" (d.h. Zugriffe auf HKLM und %ProgramFiles% werden in einem speziellen Ordner umgeleitet)