Buduję aplikację po konwersji przestrzeni roboczej VC++ 6 na Express Visual C++ 2008. Budowanie w sobie idzie pomyślnie, ale prawdziwym problemem mam jest z wygenerowanych manifestów, które wygląda następująco:Jak rozpowszechniać biblioteki C-run-time (CRT)
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.30729.1' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
Moje pytanie brzmi:
Jak mogę ograniczyć manifest do listy tylko jedna wersja, korzystnie 9,0. 21022.8. abym mógł połączyć niezbędne zależności czasu C-Run w mojej aplikacji?
Wiem, że potencjalną przyczyną tego problemu jest zależność od biblioteki, która używa 9.0.21022.8, a mój VC++ Express 2008 może używać 9.0.30729.1. dlatego oba są wymienione jako zależność.
Uwaga:
Obserwuję podejście b) http://www.codeproject.com/Tips/211756/How-to-Distribute-C-run-time-CRT-Libraries-with-Yo?display=Print który mówi o skopiowanie plików DLL CRT i Microsoft.VCXX.CRT.manifest pliku wewnątrz folderu aplikacji.
Musisz to naprawić. Tak, przebuduj wszystkie biblioteki z tymi samymi ustawieniami kompilatora. –
Po komentarzu Hansa warto przeczytać [this] (http://www.nuonsoft.com/blog/2008/10/29/binding-to-the-most-recent-visual-studio-libraries/), który mówi trochę o kontrolowaniu wersji biblioteki, do której twój kod się przyłącza. – tinman
Dzięki @tinman, zamieszczony przez ciebie link pomógł mi w rozwiązaniu mojego problemu. – amit