Общие сведения о возможных проблемах, возникающих при обновлении (visual c++)

C++ development tools

Overview of C++ development in Visual Studio
How to use the Visual Studio IDE to create projects, edit code, link to libraries, compile, debug, create unit tests, do static analysis, deploy, and more.

Projects and build systems
How to create and configure Visual Studio C++ projects, CMake projects, and other kinds of projects with MSVC compiler and linker options.

Writing and refactoring C++ code
How to use the productivity features in the C++ editor to refactor, navigate, understand and write code.

Debugging native code
Use the Visual Studio debugger with C++ projects.

Code analysis for C/C++ overview
Use SAL annotations or the C++ Core Guidelines checkers to perform static analysis.

Write unit tests for C/C++ in Visual Studio
Create unit tests using the Microsoft Unit Testing Framework for C++, Google Test, Boost.Test, or CTest.

Файлы стандартной библиотеки C++ .lib

Стандартная библиотека C++ Характеристики Параметр Директивы препроцессора
Многопоточная, статическая компоновка.
Многопоточная, динамическая компоновка (импорт библиотеки для ) ,
Многопоточная, статическая компоновка. ,
Многопоточная, динамическая компоновка (импорт библиотеки для ) , ,

При создании окончательной версии проекта одна из основных библиотек среды выполнения C ( , , ) по умолчанию связана в зависимости от выбранного параметра компилятора (многопоточная, DLL ). Если включить в код один из файлов заголовков стандартной библиотеки c++ , стандартная библиотека c++ будет автоматически связываться с Visual C++ во время компиляции. Пример:

Для совместимости на уровне двоичного кода одна библиотека импорта может задавать несколько DLL-файлов. Обновления версий могут ввести библиотеки dot — отдельные DLL-файлы, которые вводят новые функции библиотеки. например, Visual Studio 2017 версии 15,6 появились для поддержки дополнительных функций стандартной библиотеки, не нарушая работу двоичного интерфейса приложения (ABI), поддерживаемого . библиотека импорта, входящая в набор инструментов для Visual Studio 2017 версии 15,6, поддерживает обе библиотеки dll, а для этой версии устанавливается обе библиотеки dll. После доставки библиотека dot имеет фиксированный ABI и никогда не будет зависеть от библиотеки dot более поздней версии.

Причина неполадки – неверное название учетной записи

Достаточно будет задействовать данный метод и ошибку удастся исправить без лишних временных затрат. Проблемы, среди прочего, может вызывать имя записи. А точнее, использование кириллицы при его формировании. Потребуется лишь подготовить новую запись, используя латиницу. 

Необходимо:

  • Выбрав панель управления, поработать с учетными записями;
  • Точнее, создать нового пользователя в созданной вкладке (имя должно быть английским);
  • Осуществить переход в эту учетку;
  • Время запускать нужное приложение.

Помимо этого в редких случаях может помочь смена имени каталога. Опять же с использованием латыни вместо кириллицы (к примеру, на Games).

Visual Studio 2013 (VC++ 12.0)

These links download the latest supported en-US Microsoft Visual C++ Redistributable packages for Visual Studio 2013.
You can download other versions and languages from Update for Visual C++ 2013 Redistributable Package or from my.visualstudio.com.

Architecture Version Link
X86 12.0.40664.0 vcredist_x86.exe
X64 12.0.40664.0 vcredist_x64.exe

Other versions

  • Multibyte MFC Library for Visual Studio 2013. This MFC add-on for Visual Studio 2013 contains the multibyte character set (MBCS) version of the Microsoft Foundation Class (MFC) Library.
  • Visual C++ 2013 Runtime for Sideloaded Windows 8.1 apps. For more information, see C++ Runtime for Sideloaded Windows 8.1 apps on the C++ Team Blog.

Microsoft решила исправить неразбериху вокруг Visual C++ Redistributable

Программам, разработанным с помощью Visual Studio, обычно требуется для запуска определенная версия Microsoft Visual C++ Redistributable. Данное условие приводит к установке на ПК Windows 10, Windows 8.1 и Windows 7 большого количеств различных версий распространяемых пакетов Visual C++.

В результате на большинстве устройств Windows можно наблюдать ситуацию, когда в системе развернуты пакеты Microsoft Visual C++ Redistributable, установка которых была инициирована программным обеспечением, обновлениями, например патчами безопасности или вручную системным администратором.

Пакеты Redistributable сохраняются в общедоступных системных директориях, поэтому любая программа может получить к ним доступ при необходимости.

Microsoft приводит следующий пример на странице поддержки «Последние поддерживаемые версии Visual C++ для скачивания»:

Это основное отличие от предыдущих версий Visual C++, поскольку у них есть собственные файлы выполнения, которые не используются совместно с другими версиями.

На странице поддержки Microsoft Docs приводится дополнительная информация:

Ранние версии распространяемых пакетов для Visual Studio по-прежнему нужно будет скачивать и устанавливать отдельно, или они будут развертываться в процессе установки ПО. Сторонний установщик Visual C++ All in One Installer помогает установить все необходимые распространяемые пакеты в системы Windows.

Универсальная CRT – шаг в верном направлении. Хотя она не решает проблему со старыми распространяемыми пакетами C++, она значительно упрощает работу с пакетами Visual C++ 2015 Redistributable и выше.

Сколько распространяемых пакетов Visual C++ установлено в вашей системе?

Загрузка распространяемых пакетов Visual C++ с сайта Майкрософт

Первый из способов скачать компоненты Visual C++ — официальный и, соответственно, самый безопасный. Для загрузки доступны следующие компоненты (при этом некоторые из них можно загрузить разными способами).

  • Visual Studio 2015-2019 — при установке этого набора устанавливаются все необходимые компоненты Visual C++ 2015, 2017 и 2019 в рамках одного файла установщика.
  • Visual Studio 2013 (Visual C++ 12.0)
  • Visual Studio 2012 (Visual C++ 11.0)
  • Visual Studio 2010 SP1
  • Visual Studio 2008 SP1

Важно: если вы загружаете библиотеки для исправления ошибок при запуске игр и программ (DLL отсутствует), а ваша система — 64-разрядная, следует скачать и установить как x86 компоненты (для 32-бит), так и x64 версии, так как многим программам для запуска нужны библиотеки 32-бит (x86) даже в x64 Windows 10, 8.1 и Windows 7.

Порядок загрузки компонентов будет следующим:

  1. Зайдите на официальную страницу https://support.microsoft.com/ru-ru/help/2977003/the-latest-supported-visual-c-downloads и выберите нужный компонент.
  2. Для Visual C++ 2015-2019 достаточно напрямую скачать и установить файлы vc_redist.x86.exe и vc_redist.x64.exe
  3. Для компонентов Visual C++ 2013 после выбора «распространяемые пакеты Microsoft Visual C++ для Visual Studio 2013» вы попадете на страницу с двумя списками установщиков — x64 и x86, для каждого языка отдельная ссылка. Загрузите компоненты по нужной ссылке (русский язык на изображении ниже не поместился, но доступен).
  4. Для некоторых компонентов (например, для версии Visual C++ 2012) вы увидите предложение войти с вашей учетной записью Майкрософт. Но делать это не обязательно — ниже в этой статье я дам ссылки на прямую загрузку с сайта Майкрософт без необходимости входа.

Также на сайте Майкрософт доступны отдельные страницы для загрузки распространяемых пакетов Microsoft Visual C++ список таких страниц далее:

  • Visual C++ 2013 — https://support.microsoft.com/ru-ru/help/3179560/update-for-visual-c-2013-and-visual-c-redistributable-package (во второй части страницы есть прямые ссылки для скачивания x86 и x64 версий).
  • Visual C++ 2010 — https://www.microsoft.com/ru-ru/download/details.aspx?id=26999
  • Visual C++ 2008 — https://www.microsoft.com/ru-ru/download/details.aspx?id=26368
  • Visual Studio 2017 (x64) — https://go.microsoft.com/fwlink/?LinkId=746572
  • Visual С++ 2015  — https://www.microsoft.com/ru-ru/download/details.aspx?id=53840 и https://www.microsoft.com/ru-ru/download/details.aspx?id=52685

После скачивания нужных компонентов Visual C++, запускаем загруженные файлы и проходим весь процесс установки.

Возможные проблемы при установке:

  • Если при установке отдельных компонентов вам сообщат, что они уже есть на компьютере, попробуйте установщик другой разрядности (возможно, не хватает именно его).
  • Если вы уверены, что проблемы при запуске программ или игр вызваны каким-то набором компонентов, но он не устанавливается, посмотрите: присутствует ли он в списке в Панель управления — Программы и компоненты. Если да, то попробуйте удалить его там и заново запустить установщик.
  • Если вы отключали какие-либо службы Windows 10, 8.1 и Windows 7, связанные с обновлениями или «установщиком Windows», это может приводить к ошибкам при установке библиотек Visual C++.

Ошибки, связанные с функциями CRT

За прошедшие годы в среду выполнения C было внесено множество изменений. Были добавлены многие безопасные версии функций, а некоторые были удалены. кроме того, как было сказано ранее в этой статье, реализация CRT в корпорации майкрософт была оптимизирована в Visual Studio 2015 в новые двоичные файлы и связанные lib-модули.

Если ошибка связана с функцией CRT, обратитесь к разделу Журнал изменений Visual C++ 2003–2015 или Улучшения соответствия C++ в Visual Studio для поиска дополнительной информации. Если возникла ошибка LNK2019, связанная с неразрешенными внешними элементами, убедитесь, что соответствующая функция не была удалена. Если вы уверены, что функция по-прежнему существует, а вызывающий код является правильным, проверьте, использует ли проект параметр . Если это так, нужно обновить список библиотек, чтобы проект использовал новые универсальные библиотеки (UCRT). Дополнительные сведения см. в разделе о библиотеках и зависимостях выше.

Если ошибка связана с или , убедитесь, что не применяется частное определение любой из этих функций без включения stdio.h. Если оно имеет место, удалите все частные определения или связь с legacy_stdio_definitions.lib. Эту библиотеку можно указать в свойстве Дополнительные зависимости, находящемся в разделе Свойства конфигурации > Компоновщик > Входные данные диалогового окна Страницы свойств. Если вы выполняете компоновку с использованием пакета Windows SDK 8.1 или более ранней версии, добавьте legacy_stdio_definitions.lib.

Если ошибка связана с аргументами строки форматирования, вероятно, это вызвано тем, что компилятор строже соответствует стандарту. Дополнительные сведения см. в журнале изменений

Отнеситесь к указанным здесь ошибкам с особым вниманием, так как они могут представлять угрозу безопасности

C++ Standard Library .lib files

C++ Standard Library Characteristics Option Preprocessor directives
Multithreaded, static link
Multithreaded, dynamic link (import library for ) ,
Multithreaded, static link ,
Multithreaded, dynamic link (import library for ) , ,

When you build a release version of your project, one of the basic C runtime libraries (, , ) is linked by default, depending on the compiler option you choose (multithreaded, DLL, ). If you include one of the C++ Standard Library header files in your code, a C++ Standard Library will be linked automatically by Visual C++ at compile time. For example:

For binary compatibility, more than one DLL file may be specified by a single import library. Version updates may introduce dot libraries, separate DLLs that introduce new library functionality. For example, Visual Studio 2017 version 15.6 introduced to support additional standard library functionality without breaking the Application Binary Interface (ABI) supported by . The import library included in the toolset for Visual Studio 2017 version 15.6 supports both DLLs, and the vcredist for this version installs both DLLs. Once shipped, a dot library has a fixed ABI, and will never have a dependency on a later dot library.

Сравнение различных версий и обновление

Возможно, обновление базы кода до нового набора инструментов не является вариантом. вы по-прежнему можете использовать последнюю Visual Studio для создания и изменения проектов, использующих более старые наборы инструментов и библиотеки. в Visual Studio 2019 можно воспользоваться преимуществами таких функций, как:

  • современные инструменты статического анализа, включая средства проверки C++ Core Guidelines и Clang, позволяют определить потенциальные проблемы в исходном коде.

  • Автоматическое форматирование в соответствии с выбранными современными стилями может помочь сделать код более удобочитаемым.

Дополнительные сведения см. в разделе Использование собственного многоплатформенного нацеливания в Visual Studio для сборки старых проектов.

What problems exist if an application uses more than one CRT version?

Every executable image (EXE or DLL) can have its own statically linked CRT, or can dynamically link to a CRT. The version of the CRT statically included in or dynamically loaded by a particular image depends on the version of the tools and libraries it was built with. A single process may load multiple EXE and DLL images, each with its own CRT. Each of those CRTs may use a different allocator, may have different internal structure layouts, and may use different storage arrangements. This means allocated memory, CRT resources, or classes passed across a DLL boundary can cause problems in memory management, internal static usage, or layout interpretation. For example, if a class is allocated in one DLL but passed to and deleted by another, which CRT deallocator is used? The errors caused can range from the subtle to the immediately fatal, and therefore direct transfer of such resources is strongly discouraged.

You can avoid many of these issues by using Application Binary Interface (ABI) technologies instead, as they are designed to be stable and versionable. Design your DLL export interfaces to pass information by value, or to work on memory that is passed in by the caller rather than allocated locally and returned to the caller. Use marshaling techniques to copy structured data between executable images. Encapsulate resources locally and only allow manipulation through handles or functions you expose to clients.

It’s also possible to avoid some of these issues if all of the images in your process use the same dynamically loaded version of the CRT. To ensure that all components use the same DLL version of the CRT, build them by using the option, and use the same compiler toolset and property settings.

Be careful if your program passes certain CRT resources across DLL boundaries. Resources such as file handles, locales, and environment variables can cause problems, even when using the same version of the CRT. For more information on the issues involved and how to resolve them, see Potential Errors Passing CRT Objects Across DLL Boundaries.

Преимущества использования библиотек DLL

Динамическая компоновка кода и ресурсов имеет некоторые преимущества над статической.

  • Динамическая компоновка экономит память и сокращает подкачку. Многие процессы могут использовать библиотеку DLL совместно, одновременно обращаясь к одной доступной только для чтения копии ее частей в памяти. В отличие от этого, каждое приложение, созданное с помощью библиотеки статической компоновки, имеет полную копию кода библиотеки, которую система Windows должна загрузить в память.

  • Динамическая компоновка экономит место на диске и пропускную способность. Несколько приложений могут совместно использовать одну копию библиотеки DLL на диске. В отличие от этого, каждое приложение, созданное с помощью библиотеки статической компоновки, имеет код библиотеки, связанный с исполняемым образом. Это увеличивает занимаемое на диске место и используемую для передачи данных пропускную способность.

  • Обслуживание, применение исправлений для системы безопасности и обновление могут быть проще. Если приложения используют общие функции в библиотеке DLL, можно реализовать исправления ошибок и развернуть обновления для нее. При обновлении библиотек DLL использующие их приложения не нужно перекомпилировать или повторно компоновать. Они могут использовать новые библиотеки DLL сразу после их развертывания. В отличие от этого, при внесении исправлений в код статически скомпонованного объекта необходимо повторно скомпоновать и развернуть каждое использующее его приложение.

  • С помощью библиотек DLL можно оказывать послепродажную поддержку. Например, библиотеку DLL драйвера дисплея можно изменить так, чтобы она поддерживала дисплей, который не был доступен на момент предоставления приложения.

  • С помощью явной компоновки можно обнаруживать и загружать библиотеки DLL во время выполнения. Например, это могут быть расширения приложения, которые добавляют новые функциональные возможности без повторной сборки и развертывания приложения.

  • Динамическая компоновка упрощает поддержку приложений, написанных на разных языках программирования. Программы, написанные на разных языках программирования, могут вызывать одну и ту же функцию в библиотеке DLL при условии соблюдения соглашения о ее вызове. Программы и функция в библиотеке DLL должны отвечать следующим требованиям к совместимости: ожидаемый функцией порядок передачи аргументов в стек; выполнение очистки стека функцией или приложением; передача аргументов в регистрах.

  • Динамическая компоновка обеспечивает механизм для расширения классов библиотеки Microsoft Foundation Classes (MFC). На основе существующих классов MFC можно создавать производные классы и помещать их в библиотеку расширения DLL, используемую приложениями MFC.

  • Динамическая компоновка упрощает создание международных версий приложения. Библиотеки DLL — это удобный способ предоставления ресурсов для конкретных языковых стандартов, благодаря чему значительно упрощается создание международных версий приложения. Вместо предоставления множества локализованных версий приложения можно поместить строки и изображения для каждого языка в отдельную библиотеку DLL ресурсов. Затем приложение может загружать ресурсы для нужного языкового стандарта во время выполнения.

Возможным недостатком использования библиотек DLL является то, что приложения не являются автономными. Они требуют наличия отдельного модуля DLL, которое должно проверяться в процессе установки.

Разновидности пакетов

Существует несколько версий продукта, в том числе и под разные архитектуры. Как и большинство приложений, Microsoft Visual C++ выпускается для систем 32/ 64bit, и рекомендуется использовать полностью совместимый пакет, чтобы исключить возможные ошибки при работе. На ОС х64 может быть установлена как 32-разрядная (x86), так и 64-разрядная (x64) версия, и в большинстве случаев для запуска игр в таких системах требуется наличие обоих пакетов.

Вы можете скачать Microsoft Visual C бесплатно для Windows XP, 7, 8, 8.1,10 и исправить ошибки самостоятельно. Программная среда не занимает много места на жёстком диске, и установка нескольких версий в одну ОС практикуется довольно часто. Это объясняется тем, что старые игры и программы могут корректно работать только под старой версией продукта, а новые, наоборот, требуют обновлённых библиотек.

Ошибки, вызванные изменениями в API Windows или устаревших пакетах SDK

Со временем в среду добавлялись новые API Windows и типы данных, а также изменялись или удалялись уже существующие. Кроме того, добавлялись и удалялись другие пакеты SDK, не относящиеся к базовой операционной системе. Таким образом, старые программы могут содержать вызовы несуществующих API. Они также могут содержать вызовы API в других пакетах SDK корпорации Майкрософт, которые больше не поддерживаются. Если возникает ошибка, связанная с API Windows или API из старого пакета SDK корпорации Майкрософт, возможно, что эти API были удалены или заменены на новые, более безопасные функции.

дополнительные сведения о текущем наборе api и минимально поддерживаемых операционных системах для конкретного Windows api см. в статье индекс api для настольных Windows приложений и перейдите к соответствующему api.

Версия Windows

При обновлении программы, прямо или косвенно использующей API Windows, потребуется выбрать минимальную поддерживаемую версию Windows. В большинстве случаев оптимальным выбором является Windows 7. Дополнительные сведения см. в разделе . Макрос определяет самую старую версию Windows, в которой ваша программа может выполняться. Если ваша программа MFC задает для WINVER значение 0x0501 (Windows XP), вы получите предупреждение, так как MFC больше не поддерживает выпуск XP, хотя сам компилятор и имеет режим XP.

Дополнительные сведения см. в разделах и .

Использование Visual Studio Installer

  1. Найдите Visual Studio Installer на своем компьютере.

    В меню «Пуск» в Windows выполните поиск по запросу «installer» и выберите Visual Studio Installer в результатах.

    Если вам будет предложено обновить Visual Studio Installer, прежде чем продолжить, сделайте это, следуя инструкциям.

  2. В Visual Studio Installer найдите установку Visual Studio, которую требуется обновить.

    Например, если вы ранее установили Visual Studio Community 2022 (предварительная версия) и для этого выпуска есть обновление, в Visual Studio Installer будет отображаться сообщение Доступно обновление.

  3. Чтобы установить обновления, нажмите кнопку Обновить.

  4. После завершения обновления Visual Studio Installer может предложить перезагрузить компьютер. В таком случае перезагрузите компьютер, а затем запустите Visual Studio, как обычно.

    Если вам не будет предложено перезагрузить компьютер, выберите Запуск, чтобы запустить Visual Studio из Visual Studio Installer.

Установка Microsoft Visual C++ Redistributable Package 2015 на Windows 7

Microsoft Visual C++ Redistributable Package 2015 я буду устанавливать на 32 битную операционную систему Windows 7 с установленным Service Pack 1.

Запускаем скаченный файл vc_redist.x86.exe, в итоге откроется окно, в котором нам необходимо согласиться с условиями лицензионного соглашения, т.е. поставить галочку и затем нажать «Установить».

Начался процесс установки.

Он займет буквально несколько секунд и после чего появится соответствующее окно, в котором мы нажимаем «Закрыть».

Вот и все, теперь можно устанавливать программы или игры которые требуют наличие Microsoft Visual C++ Redistributable Package 2015.

VCredist — пакет Microsoft Visual C++ Redistributable Package 2017

Microsoft Visual C++ Redistributable Package (VCRedist) — свободно распространяемый пакет включающий в себя компоненты и библиотеки DLL, необходимые для запуска различных программ написанных на языке программирования С++ при помощи Visual Studio.

Установка vcredist_x86 и vcredist_x64

На нашем ресурсе Вы можете скачать vcredist как официальные версии 2010, 2013 и 2015 для 32-х и 64-х битных версий Microsoft Windows, так и пакет «все в одном» который содержит в себе дистрибутивы Visual C++ Redistributable 2005 / 2008 / 2010 / 2012 / 2013 / 2015 / 2017.

VCRedist 2015 установлен

Для 64-х разрядных версий Майкрософт Виндовс рекомендуется устанавливать не только 64-битный пакет, но и 32-битный, за исключением пакета Microsoft Visual C++ Redistributable Package «все в одном», так как он уже содержит 32 и 64-битные компоненты.

На нашем сайте Вы так же можете при необходимости скачать обновленные пакеты Microsoft Net Framework, Microsoft DirectX, Microsoft Silverlight, Java и Adobe AIR, нередко требующиеся для запуска различных приложений и программ.

Повторно распространяемые пакеты Visual C++

Распространяемые пакеты Visual C++ устанавливают компоненты среды выполнения для библиотек Visual C++ на компьютере, где не установлен Visual C++. Эти библиотеки нужны для запуска приложений, разработанных с помощью соответствующей версии Visual C++.

Для Visual Studio 2008

Эти пакеты устанавливают компоненты среды выполнения для библиотек среды выполнения C (CRT), стандартного C++, ATL, MFC, OpenMP и MSDIA. Они устанавливаются в кэш собственной сборки, также называемый папкой WinSxS. Они устанавливаются в версиях операционных систем Windows, поддерживающих параллельные сборки, fили библиотеки, которые поддерживают параллельные модели развертывания (CRT, STL, ATL, MFC, OpenMP).

Обновление безопасности библиотеки Microsoft Foundation Class

Была выявлена проблема с безопасностью. Эта проблема ведет к уязвимости приложения MFC в системе на основе Windows с распространяемым компонентом Visual C++ Redist. Указанные в этой статье пакеты обновлений для системы безопасности MFC содержат наиболее актуальные распространяемые файлы для Visual Studio.

Решение

  • Проблемы компиляторов

    Для проблем компилятора, таких как внутренние ошибки компилятора (т. е. C1001), зависает или сбои, может быть полезно захватить выход препроцессора C/C++ для предоставления упрощенного репродуцируемый пример проблемы. В Visual C++ IDE это можно сделать, задав свойство Generate Preprocessed File with Line Numbers (/P) или Without Line Numbers (/EP/P). Это свойство можно найти на страницах свойств проекта в параметрах Configuration Properties, C/C++, Preprocessor.

    Этот параметр можно установить на уровне проекта из меню Project Properties, в этом случае оно будет создавать файлы для всех исходных файлов в проекте или его можно установить для одного файла, щелкнув правой кнопкой мыши файл в проводнике решений, выбрав контекстное меню Properties, чтобы привести диалоговое окно свойств для одного файла.

    Переключатель компилятора /P направляет CL.EXE для захвата вывода препроцессора в файл. Добавление /EP подавляет добавление сведений о номере строки в итоговом файле. /P достаточно, но /EP/P создает меньший файл вывода. Созданный файл вывода препроцессора будет иметь то же имя, что и исходный файл, который компилирован, но с расширением файла a.i, например, file1.cpp создает файл вывода препроцессора file1.i в том же каталоге.

    Примечание

    При использовании этого коммутатора компиляция будет продолжаться до фазы препроцессора, то есть не будет создан файл компилятором, и вы можете получить ошибку ссылки, отражая тот факт, что файлы OBJ не могут быть найдены.

    Вы можете самостоятельно компилировать файл вывода препроцессора вне контекста Visual Studio проекта. Файл содержит все сведения о файле загона, замене макроса и сведениях директивы компиляторов, необходимых для компиляции этого конкретного или исходных файлов. Другими словами, это автономный модуль, который должен иметь возможность воспроизводить проблему компиляции без каких-либо зависимостей от других файлов. В результате файл часто будет большим и содержит большое количество белого пространства.

  • Проблемы со ссылками

    Для проблем со ссылками (ошибки типа LNKxxxxx) можно использовать командный переключатель командной строки /LINKREPRO для создания тестового случая, содержащего только входные данные ссылок без зависимости от исходных файлов. /LINKREPRO использует следующий синтаксис:

    это полный путь к пустой папке в локальной файловой системе. Эта папка уже должна существовать — ссылка не создаст ее автоматически и создаст ошибку, если папка не существует.

    Этот параметр не подвергается непосредственному воздействию в проектной системе. Чтобы добавить его в сборку, откройте меню свойства проекта из Project меню. В конфигурации Свойства , Linker, Командная строка , в поле Дополнительные параметры изменить, введите переключатель (в том числе вперед слэш) и заменить путь с уже существующей локальной папки пути. Пример: .

    Если в этом окне редактирования уже есть другие параметры линкера, разделяйте их запятой.

    Кроме того, можно использовать переменную среды. Если переменная среды существует, линкатор будет читать выходной путь из переменной среды и создавать linkrepro. Переключатель /LINKREPRO не требуется при использовании переменной среды. Использование переменной среды:

    1. Откройте командную Visual Studio командную подсказку. Это устанавливается в меню Пуск, в Visual Studio папке под Инструменты Visual Studio подмастерье.

    2. Создайте переменную среды, указывающую на существующий и пустой каталог, например: .

    3. Запустите Visual Studio из той же командной подсказки, чтобы она разделяет копию измененной среды.

    4. Откройте проект и перестроим весь проект.

    Когда LINK.EXE вызывается в сборке, она копирует все необходимое для привязки проекта к каталогу linkrepro. Среди скопированные файлы будут ваши объектные файлы (. OBJ), необходимые файлы библиотеки (. LIB), включая библиотеки Майкрософт и файл ответа linker (LINK. RSP), чтобы ССЫЛКА больше не зависела от файла решения.

    Чтобы подтвердить, что у вас есть все необходимые файлы для воспроизведения проблемы ссылок, можно запустить LINK в каталоге, указанном переменной LINK_REPRO среды, используя файл ответа linker, созданный linkrepro: .

    Перед этим используйте следующую команду, чтобы отключить эту функцию при использовании переменной среды командной строки: .

    Этот процесс также можно использовать для проверки файлов, участвующих в создании библиотеки, при использовании LIB.EXE link/LIB.

Обновление ОС

Во многих случаях данная проблема связана с отсутствием необходимых обновлений операционной системы. Во время распаковки установщик обнаруживает, то в системе не хватает ряда компонентов и отменяет процедуру, после чего появляется данное окно с неопознанной ошибкой.

Сначала необходимо проверить обновление ОС. Windows 7 должна быть обновлена до SP 1 или выше. Проверить это можно через свойства компьютера:

  1. Запустите «Панель управления» с помощью соответствующего пункта в «Пуск».
  1. Откройте вкладку «Система и безопасность».
  1. Перейдите к окну «Система».

Обратите внимание на информацию об издании Windows. Там должна находиться подпись SP 1, как отмечено на скриншоте ниже.

Через настройки Windows

Сначала попробуйте обновить операционную систему через стандартные средства Windows. Для этого необходимо сделать следующее:

  1. Через «Пуск» отыщите приложение «Центр обновления Windows» по названию.
  1. Центр обновления просканирует наличие компонентов, которые еще не были установлены на вашей операционной системе. Чтобы началась загрузка файлов, кликните по «Установить обновления».
  1. Теперь нужно согласиться с условиями и кликнуть на «Готово».
  1. Остается ждать окончания процедуры. Ее длительность зависит от того, сколько времени до этого вы не обновляли операционную систему. Затем Windows предложит перезагрузить компьютер, с чем нужно согласиться.

Если обновления не скачиваются или не устанавливаются, то попробуйте временно отключить антивирусную программу и запустить обновление снова.

С сайта Microsoft

Если по каким-либо причинам у вас не получилось обновить операционную систему или данный метод не решил проблему, то попробуйте инсталлировать обновление вручную. Чтобы избавиться от ошибки Error 0×80240017: Failed to execute MSU package, вам необходимо сделать следующее:

  1. Для решения проблемы с ошибкой необходимо установить обновление с номером KB2999226. Исходя из разрядности ОС, перейдите на страницу к файлу для 32-битной версии, а здесь вы найдете вариант для 64-bit.
  1. На компьютер загрузится установочный файл в формате MSU. Запустите его.
  1. Теперь остается подождать, пока утилита автоматически установит необходимые файлы.

Если у вас возникли проблемы с ручной установкой обновления K2999226, то воспользуйтесь следующей инструкцией:

  1. Сначала необходимо открыть содержимое файла в формате MSU через архиватор. Подойдет обычный WinRAR. Кликните по файлу ПКМ и выберите действие «Открыть с помощью».
  1. Появится окно с выбором приложения для запуска. Если WinRAR нет в списке, то нажмите кнопку «Обзор».
  1. Найдите файл запуска архиватора и откройте его.
  1. В архиве вы увидите несколько файлов, которые включены в скачанное обновление. Скопируйте файл с названием обновления и разрядности вашей ОС в формате CAB.

Рекомендуем переместить данный файл в папку с наименее коротким путем. Например, в корневой каталог системного раздела. Так будет проще вводить ссылку на файл в командной строке.

  1. Теперь переходите к командной строке. Найдите ее через «Пуск» и запустите с администраторскими правами.
  1. Теперь воспользуйтесь командой DISM.exe /Online /Add-Package /PackagePath:C:\ Windows6.1-KB2999226-x64.cab, если файл находится на системном диске C. Запустите выполнение команды нажатием Enter.
  1. Теперь введите команду wusa.exe C:\Windows1-KB2999226-x64.msu и так же запустите ее выполнение.

Если обе команды выполнятся успешно, то вы получите необходимое обновление и сможете без ошибок распаковать Visual C++ на компьютер.

Техническая поддержка

Иногда возникают проблемы. Если установить Visual Studio не удается, воспользуйтесь пошаговыми указаниями в статье Устранение неполадок при установке и обновлении Visual Studio.

Ниже приведены несколько дополнительных вариантов:

  • Также доступен , предназначенный для оказания помощи при проблемах с установкой (только на английском языке).
  • Вы можете сообщить о проблемах с продуктом, используя средство Сообщить о проблеме. Оно доступно как в Visual Studio Installer, так и в IDE Visual Studio. Если вы являетесь ИТ-администратором и у вас не установлена программа Visual Studio, вы можете отправить отзыв ИТ-администратора здесь.
  • Вы можете предлагать новые функции, просматривать описания проблем и искать решения в сообществе разработчиков Visual Studio.

Инсталляция MSVC++ RP

Для начала следует узнать разрядность операционной системы компьютера, ноутбука или нетбука: 32- или 64-bit. Если OS MS Windows 32-разрядная, то следует скачать Microsoft Visual C++ 2019, 2017, 2015, 2013, 2012, 2010, 2008, 2005 32-бит бесплатно без регистрации и SMS; если система 64-разрядная, то необходимо загружать и устанавливать 32- и 64-bit версии. В разделе «Программы и компоненты» или «Удаление программ» панели управления Виндовс можно посмотреть, какие Microsoft Visual C++ уже инсталлированы. Если в списке установленного программного обеспечения, присутствуют несколько Microsoft Visual C++, то удалять их не стоит. Это значит, что такой набор нужен какой-то программе или нескольким программным продуктам.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector