Все о реестре Regedit / All about registry. Не устанавливается vcredist 2018
c++ - Почему установка vcredist_x86.exe не исправляет ошибку SideBySide, когда я разрабатываю EXE на одной машине и запускаю ее на другой?
Вопрос
Я написал проект С++ под названием "Foo", используя Microsoft Visual Studio 2005 Verison 8.0.50727.762 (SP.050727-7600) в Windows XP Professional Version 2002 с пакетом обновления 3. Я построил проект в Foo.exe. Затем я скопировал файл Foo.exe в пакет обновления 2 (SP2) для Windows Server 2003 Enterprise Edition. Когда я попытался запустить его, он не смог выполнить эту ошибку,
C:\foo.exe The application has failed to start because the application configuration is incorrect. Reinstalling the application may fix the problem.В Event Viewer > System было зарегистрировано три события.
Идентификатор события: 32; Источник: SideBySide
Dependent Assembly Microsoft.VC80.CRT could not be found and Last Error was The referenced assembly is not installed on your system.Код события: 59; Источник: SideBySide
Generate Activation Context failed for C:\foo\Foo.exe. Reference error message: The referenced assembly is not installed on your system.Установка распространяемого Microsoft Visual С++ 2005 не исправила его
Версия этого программного обеспечения, найденная в разделе "Установка и удаление программ", была "8.0.50727.42".
При попытке запустить C:\foo\foo.exe, я получил те же ошибки, которые я описал выше.
Установка распространяемого Microsoft Visual С++ 2005 пакета обновления 1 (SP1) не исправила его
Версия этого программного обеспечения, найденная в разделе "Установка и удаление программ", была "8.0.56336".
При попытке запустить C:\foo\foo.exe, я получил те же ошибки, которые я описал выше.
Копирование DLL-библиотек CRT и манифеста с того же компьютера (где я запускаю EXE) не исправляло его.
- Я скопировал msvcm80.dll, msvcp80.dll и msvcr80.dll из C:\windows\winsxs\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd до C:\foo.
- Затем я скопировал C:\WINDOWS\WinSxS\Manifests\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd.manifest на C:\foo и переименовали его в Microsoft.VC80.CRT.manifest.
Четвертая строка файла манифеста выглядела так:
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.42" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>Когда я попытался запустить C:\foo\foo.exe на этот раз, это не сработало. Я повторил эту вещь снова с DLL в C:\windows\winsxs\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700 и соответствующим файлом манифеста. Это тоже не помогло. Я получил ту же ошибку.
В обоих случаях я получил следующие ошибки в Event Viewer > System.
КОД события: 34; Источник: SideBySide
Component identity found in manifest does not match the identity of the component requestedКод события: 58; Источник: SideBySide
Syntax error in manifest or policy file "C:\foo\Microsoft.VC80.CRT.MANIFEST" on line 4.Код события: 59; Источник: SideBySide
Generate Activation Context failed for C:\foo\Foo.exe. Reference error message: The manifest file contains one or more syntax errors.- Я скопировал msvcm80.dll, msvcp80.dll и msvcr80.dll из C:\winnt\winsxs\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700 машины Windows XP (где я разработал и создал foo.exe) на C:\foo Windows Server 2003 (где я пытаюсь запустить foo.exe).
- Затем я скопировал C:\winnt\winsxs\Manifests\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700.manifest на C:\foo и переименовали его в Microsoft.VC80.CRT.manifest.
Четвертая строка файла манифеста выглядела так:
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>При попытке запустить C:\foo\foo.exe теперь я получил те же ошибки, о которых упоминалось в предыдущем разделе.
Копирование DLL-библиотек CRT и манифест из папки Visual Studio исправлено.
- Скопировано msvcm80.dll, msvcp80.dll, msvcr80.dll и Microsoft.VC80.CRT.manifest из C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT машины Windows XP (где я разработал и построил файл foo.exe) на C:\foo машины Windows Server 2003 (где я пытаясь запустить его).
Четвертая строка файла манифеста выглядела так:
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.6195" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>На этот раз я смог запустить C:\foo\foo.exe без каких-либо проблем.
Вопрос
Я ожидал, что установка 'Microsoft Visual С++ 2005 SP1 Redistributable' (vcredist_x86.exe), как описано во втором подходе, исправит его. Но это не так. Скопировав DLL и файлы манифеста из папки C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT на машине разработки, исправил ее. Почему это было так?
Параметры сборки
В случае, это поможет вам ответить на мой вопрос. Вот параметры компилятора и компоновщика, которые я выбрал из свойств проекта Visual Studio:
Свойства конфигурации > C/С++ > Командная строка:
/O2 /GL /D "_MBCS" /FD /EHsc /MD /Fo"Release\\" /Fd"Release\vc80.pdb" /W3 /nologo /c /Wp64 /Zi /TP /errorReport:prompt
Свойства конфигурации > Коннектоp > Командная строка:
/OUT:"C:\MixedBag\Release\Foo.exe" /NOLOGO /MANIFEST /MANIFESTFILE:"Release\Foo.exe.intermediate.manifest" /DEBUG /PDB:"c:\MixedBag\release\Foo.pdb" /OPT:REF /OPT:ICF /LTCG /MACHINE:X86 /ERRORREPORT:PROMPT kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
qaru.site
Ответы@Mail.Ru: Не устанавливается Vcredist_64
Дима Лось Профи (573), на голосовании 4 года назадMicrosoft Visual C++ 2013Redistributable (64x) - 12.0.21005Настройка не завершенаОдна или несколько проблем вызвали сбой программы установки. Исправте эти проблемы и попробуйте повторить установку. Дополнительные сведение см. в файле журналаЖурнал: [3440:20AC][2014-01-06T13:58:22]i001: Burn v3.7.2002.0, Windows v6.1 (Build 7601: Service Pack 3), path: C:\Users\Бог\Desktop\Новая папка (2)\vcredist_x64.exe, cmdline: '-burn.unelevated BurnPipe.{24FB0D45-9EE9-4727-A42C-CED06B6EDCBB} {DB4C5EF9-8637-4AA0-A726-F6EAFEF7E190} 5680'[3440:20AC][2014-01-06T13:58:22]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\664B~1\AppData\Local\Temp\dd_vcredist_amd64_20140106135822.log'[3440:20AC][2014-01-06T13:58:22]i000: Setting string variable 'WixBundleOriginalSource' to value 'C:\Users\Бог\Desktop\Новая папка (2)\vcredist_x64.exe'[3440:20AC][2014-01-06T13:58:22]i000: Setting string variable 'WixBundleName' to value 'Microsoft Visual C++ 2013 Redistributable (x64) - 12.0.21005'[3440:20AC][2014-01-06T13:58:23]i100: Detect begin, 2 packages[3440:20AC][2014-01-06T13:58:23]i101: Detected package: vcRuntimeMinimum_x64, state: Absent, cached: None[3440:20AC][2014-01-06T13:58:23]i101: Detected package: vcRuntimeAdditional_x64, state: Absent, cached: None[3440:20AC][2014-01-06T13:58:23]i052: Condition 'VersionNT64 >= v6.0 OR (VersionNT64 = v5.2 AND ServicePackLevel >= 1)' evaluates to false.[3440:20AC][2014-01-06T13:58:23]e000: Error 0x81f40001: Bundle condition evaluated to false: VersionNT64 >= v6.0 OR (VersionNT64 = v5.2 AND ServicePackLevel >= 1)[3440:20AC][2014-01-06T13:58:23]i199: Detect complete, result: 0x0Далее 0x81f40001 - Microsoft Visual C++ 2013 Redistribulatble (x64) - 12.0.20015 can only be installet on Windows XP SP1 (64x) and newer platformsУменя windows 7 (32bit)
Голосование за лучший ответ
Похожие вопросы
Также спрашивают
otvet.mail.ru
Тихая установка vcredist / How silent install vcredist?
vcredist - программа, а вернее пакет который часто встречается в дистрибутиве какой-либо программы. Предназначен для установки компонентов среды выполнения которые необходимы для выполнения приложений на C++
Недавно я писал статью, в которой, как раз и нужен данный пакет -
http://regedit.su/silent-install-application/70-o/824-silent-install-obsstudio
Может кому-то понадобится и для других приложений.
Для просмотра ключей тихой установки vcredist используется ключ -
/?
Ключи тихой установки vcredist -
/install - Установка программы
/repair - Устранение ошибок установки программы
/uninstall - Удаление программы
/layout - Создание полной копии пакета в каталоге
/passive - Отображение минимального интерфейса при установке
/quiet - Тихая установка, без отображения интерфейса
Рассмотрим пример тихой установки vcredist если он находится на сервере APPSOFT в папке VCREDIST
start /wait \\APPSOFT\VCREDIST\vcredist_x64.exe /install /quiet
Для примера был взят пакет для 64 разрядной Windows, есть и для 32 разрядной версии Windows доступный на сайте Microsoft.
Вроде и не программа, а нужная фича о которой надо было написать - может это и неинтересно.
Спасибо за прочтение.
Подписывайтесь в наше Сообщество для того, чтобы не пропустить что-то интересное.
vc_redist - program, but rather a package that is often found in the distribution of any program. Designed for installation of runtime components that are required to run C++ applications.
I recently wrote an article that, just need this package
http://regedit.su/silent-install-application/70-o/824-silent-install-obsstudio
Maybe someone will need it for other applications.
To view the keys silent install vcredist use the -
/?
Keys silent install vcredist -
/install - installs the program
/repair - Repair the installation of the program
/uninstall - uninstall a program
/layout - Create a complete copy of the package in the directory
/passive - Displays minimal UI with the installation of
/quiet - Quiet installation without any UI
Consider the example of a silent install vcredist if it is on the server APPSOFT in the folder VCREDIST
start /wait \\APPSOFT\VCREDIST\vcredist_x64.exe /install /quiet
For example, had taken the package for 64-bit Windows for 32-bit version of Windows available on the Microsoft website.
And not like a program, and need a feature which had to write - maybe that's uninteresting.
Thank you for reading.
Subscribe to our Community in order not to miss something interesting.
regedit.su