Если у меня есть как x64, так и x86 версия пакета Microsoft C++ Redist, могу ли я удалить версию x86? Если я удалю версию x86, будет ли версия x64 покрывать зависимости в пакете x86?
4 ответа
Нужны ли как x64, так и x86 версии C++ redist? Если у меня есть как x64, так и x86 версия пакета Microsoft C++ Redist, могу ли я удалить версию x86?
Это зависит от того, используете ли вы 32-битные и / или 64-битные программы VC++.
Если я удалю версию x86, будет ли версия x64 покрывать зависимости в пакете x86?
Нет, вам нужна версия x86 для запуска 32-битных программ VC++, и вам нужна версия x64 для запуска 64-битных программ VC++.
Техническое объяснение:
Большинство программ делают много вещей похожими способами. Чтобы не «изобретать велосипед», они будут использовать библиотеки, которые представляют собой наборы заранее написанных функций, которые можно использовать для сокращения объема работы, которую необходимо выполнить. Это хорошо, но если бы каждая программа включала в них общие функции, то много места было бы потрачено впустую, потому что все они идентичны. Кроме того, если бы ошибка была найдена и исправлена, или было сделано улучшение в библиотеке, каждая программа должна была бы быть перекомпилирована для включения исправления / улучшения.
Чтобы устранить эти ограничения, вместо включения внутренних функций, большинство программ будут ссылаться на эти функции, хранимые извне в файле .dll
. Таким образом, все они могут совместно использовать один и тот же код, что сокращает неиспользуемое пространство и может быть обновлено одновременно путем замены одного файла библиотеки.
Программа может быть 32-битной или 64-битной, что, помимо прочего, определяет размер переменных и тому подобное. Проблема заключается в том, что 32-разрядный код несовместим с 64-разрядным кодом, поэтому 32-разрядная программа должна использовать 32-разрядные библиотеки, а 64-разрядная программа должна использовать 64-разрядные библиотеки.
Поэтому, если есть 32-разрядная программа foobar.exe
и 64-разрядная программа foobar64.exe
, обе из которых используют библиотеки VC++, для foobar.exe
потребуются файлы \x86\msvc*.dll
и foobar64.exe
нужно \x64\msvc*.dll
; они не могут использовать библиотеки неправильной « битности ».
вам нужны vcredist x86 и x64 оба, хотите доказательство? попробуйте запустить gta iv с vcredist 2005 x86, если установлен vcredist 2005 x64. vcredist 2005 x64 и x86 доступны на официальном сайте Microsoft.
Распространяемые файлы x86 и x64 охватывают код x86 и x64 соответственно и только. То есть версия x64 не распространяется на код x86 и наоборот.
Что касается того, можете ли вы удалить их вообще, сказать сложно. Это зависит от того, какие приложения у вас есть и нужны ли им эти распространяемые файлы. Это довольно безопасная практика, чтобы удалить их, посмотреть, представляет ли это проблему, и вернуть их обратно.
Не должны быть удалены.
Посмотрите на установленные операционные системы, которые предоставляют крупные поставщики. Там присутствуют все пакеты 2005/2008/2010/2012 ... x86 и x64. Потому что разработчики разнообразных программ могут использовать любую из этих библиотек.