Visual studio не обновляется dll
Для работы программного обеспечения и компьютерных игр на персональном компьютере или ноутбуке под управлением операционных систем Виндовс необходимо множество различных файлов, данных. Одного исполняемого EXE файла порой недостаточно, так как нужны пакеты ресурсов, картинки, значки, звуки, среды запуска и библиотеки. Именно о последних часто слышат не только любители компьютерных игр, но и простые люди, не увлекающиеся компьютерами. Необходимо разобраться, зачем они нужны и как обновить библиотеку DLL для Windows 10 x64, когда это необходимо.
Что такое библиотеки DLL, когда им необходимо обновление
Аббревиатура DLL расшифровывается как «Dynamic Link Library», что переводится на русский язык как «Динамически Подключаемая Библиотека» или «Библиотека Динамической Компоновки». Файлы с такими расширениями используются во всех версиях Виндовс практически всеми программами и играми. Они содержат в себе данные об аппаратной и программной конфигурации персонального компьютера и операционной системы, поддержке и совместимости девайсов, наборе команд для корректного функционирования ОС и приложений, а также множество другой полезной для ОС информации.
Папка с DLL-файлами
Появились библиотеки DLL практически в самом начале зарождения операционной системы Виндовс. Изначально они выполняли наиболее часто применяемые функции. Зачем всякий раз программировать тот или иной модуль, если можно просто обратиться к написанной функции, получить результат обработки данных, который потом использовать в своих целях.
К сведению! От динамических библиотек компоновки зависела не только современная ОС Виндовс, но и предшественники семейства NT и Windows 95. Даже OS/2 использует DLL для работы с программами.
Все DLL файлы для Windows 10 x64 являются важными и нужными. Сегодня нельзя создать нормальное рабочее приложение для Виндовс, в котором бы не использовались библиотеки. Они содержат функции Win32 API и массу других полезных модулей для Windows.
По сути, они являются аналогами статических файлов формата LIB, но в отличие от них не подсоединяются к программам напрямую через редактор связей. В приложениях просто ссылаются на местоположение файла, функции которого необходимо использовать. Во время запуска программы библиотека погружается в память полностью, поэтому к ней могут обращаться и другие приложения. Это помогает контролировать объемы файлов запуска EXE, а также сокращать занимаемое место в памяти при запуске разных программных решений.
Важно периодически обновлять операционную систему и библиотеки, так как старые и неактуальные файлы могут повлиять за корректное выполнение программ. Старые приложения могут нормально функционировать на старых обновлениях, но при попытке скачать новую игру или программу пользователь может столкнуться с тем, что она вылетает с ошибкой «Обновите DLL» или «Нет нужной библиотеки». Далее рассказано, как обновить библиотеку DLL для Windows 7 или 10 x64.
Чтобы DLL не устаревали, необходимо вовремя обновлять ОС
Как обновить библиотеку DLL для Windows 10 и 7: использование командной строки и regsvr32
Рядовой пользователь никогда не сможет понять, что ему следует обновить тот или иной набор файлов, так как никаких уведомлений об этом Виндовс не предоставляет. Все происходит по факту работы с программами или играми. Также следует понимать, что DLL бывают встроенными в ОС и сторонними.
Встроенные файлы обновить не так и сложно. Для этого следует регулярно искать обновления на свою операционную систему и загружать их из центра обновлений.
Обратите внимание! Семерка больше не поддерживается разработчиками, поэтому в любом случае рано или поздно придется пересесть на новую десятку.
Также пользовательские DLL-файлы можно установить и зарегистрировать с помощью утилиты Regsvr32, запускаемой из командной строки. Для этого есть следующая пошаговая инструкция:
Обратите внимание! Аналогичное действие можно совершить и в окне «Выполнить». Для быстро доступа к нему нажимают на сочетание клавиш «Win + R», а затем вставляют ту же самую команду, что и в консоль.
Использование пакета RuntimePack на Windows 7, 10 для 32 Bit и x64 и установка Microsoft Visual C++
К сведению! Microsoft Visual C++ также входит в комплект RuntimePack, но его лучше скачать с официального сайта «Майкрософт». Обычно данный инструмент взаимодействия поставляется вместе с новыми играми и приложениями, устанавливаясь на ПК вместе с ними, но иногда его приходится скачивать самостоятельно.
Таким образом, загрузить DLL-файлы можно с официального сайта «Майкрософт» или других проверенных ресурсов, но лучше пользоваться фирменными установщиками или обновиться до новой версии Виндовс.
В этой статье описывается, что такое библиотека динамических ссылок (DLL) и различные проблемы, которые могут возникнуть при использовании библиотек DLL. Здесь также описаны некоторые сложные проблемы, которые следует учитывать при разработке собственных библиотек DLL.
Применяется к: Windows 10 — все выпуски
Исходный номер базы знаний: 815065
Аннотация
В этой статье описаны методы динамической компоновки, зависимости DLL, точки входа DLL, экспорт функций DLL и средства устранения неполадок DLL.
Для Windows операционных систем большая часть функциональных возможностей операционной системы предоставляется библиотекой DLL. Кроме того, при запуске программы в одной из Windows операционных систем большая часть функций программы может быть предоставлена библиотеками DLL. Например, некоторые программы могут содержать множество различных модулей, а каждый модуль программы содержится и распространяется в библиотеках DLL.
Использование библиотек DLL помогает повысить модульность кода, повторное использование кода, эффективное использование памяти и сокращение места на диске. Таким образом, операционная система и программы загружаются быстрее, выполняются быстрее и занимать меньше места на диске на компьютере.
Если программа использует библиотеку DLL, проблема, которая называется зависимостью, может привести к тому, что программа не будет выполняться. Когда программа использует библиотеку DLL, создается зависимость. Если другая программа перезаписывает и прерывает эту зависимость, исходная программа может не запуститься успешно.
Дополнительная информация
Библиотека DLL — это библиотека, содержащая код и данные, которые могут использоваться несколькими программами одновременно. Например, в Windows операционных системах библиотека DLL Comdlg32 выполняет общие функции, связанные с диалогом. Каждая программа может использовать функции, содержащиеся в этой библиотеке DLL, для реализации диалогового окна " Открыть". Это помогает повысить эффективность повторного использования кода и эффективного использования памяти.
С помощью библиотеки DLL программу можно разделить на отдельные компоненты. Например, программа учета может быть продана модулем. Каждый модуль можно загрузить в основную программу во время выполнения, если он установлен. Так как модули являются отдельными, время загрузки программы ускоряется. Модуль загружается только при запросе этой функции.
Кроме того, обновления проще применять к каждому модуле, не затрагивая другие части программы. Например, у вас может быть программа заработной платы, и налоговые ставки меняются каждый год. Если эти изменения изолированы в библиотеке DLL, можно применить обновление, не требуя сборки или установки всей программы еще раз.
В следующем списке описаны некоторые файлы, реализованные в качестве библиотек DLL в Windows операционных системах.
ActiveX элементов управления (OCX)
Примером элемента ActiveX является элемент управления календаря, который позволяет выбрать дату из календаря.
панель управления (.cpl)
Примером файла .cpl является элемент, расположенный в панель управления. Каждый элемент является специализированной библиотекой DLL.
Файлы драйвера устройства (DRV)
Примером драйвера устройства является драйвер принтера, который управляет печатью на принтере.
Преимущества DLL
В следующем списке описаны некоторые преимущества, которые предоставляются, когда программа использует библиотеку DLL:
Использует меньше ресурсов
Если несколько программ используют ту же библиотеку функций, библиотека DLL может уменьшить дублирование кода, загруженного на диск и в физической памяти. Это может значительно повлиять на производительность не только программы, выполняемой на переднем плане, но и других программ, работающих в Windows операционной системе.
Повышение уровня модульной архитектуры
Библиотека DLL помогает повысить уровень разработки модульных программ. Она помогает разрабатывать крупные программы, для которых требуется несколько языковых версий, или программы, для которых требуется модульная архитектура. Примером модульной программы является программа учета с множеством модулей, которые можно динамически загрузить во время выполнения.
Упрощает развертывание и установку
Если функции в библиотеке DLL требуется обновление или исправление, для развертывания и установки библиотеки DLL не требуется повторное связывание программы с библиотекой DLL. Кроме того, если несколько программ используют ту же библиотеку DLL, все эти программы будут пользоваться преимуществами обновления или исправления. Эта проблема может возникать чаще при использовании библиотеки DLL сторонних разработчиков, которая регулярно обновляется или исправлена.
Зависимости DLL
Если программа или библиотека DLL использует функцию DLL в другой библиотеке DLL, создается зависимость. Программа больше не является автономной, и если зависимость нарушена, у нее могут возникнуть проблемы. Например, программа может не выполняться, если выполняется одно из следующих действий:
- Зависимая библиотека DLL обновляется до новой версии.
- Зависимые библиотеки DLL исправлены.
- Зависимая библиотека DLL перезаписывается более ранней версией.
- Зависимая библиотека DLL удаляется с компьютера.
Эти действия называются конфликтами DLL. Если обратная совместимость не применяется, возможно, программа не будет успешно запущена.
В следующем списке описываются изменения, которые были внесены в Windows 2000 и более поздних Windows операционных системах, чтобы свести к минимуму проблемы с зависимостями.
Windows защиты файлов
В Windows защиты файлов операционная система предотвращает обновление или удаление библиотек DLL системы неавторизованными агентами. При попытке установки программы удалить или обновить библиотеку DLL, определенную как системную библиотеку DLL, Windows служба защиты файлов будет искать допустимую цифровую подпись.
Частные библиотеки DLL
Частные библиотеки DLL позволяют изолировать программу от изменений, внесенных в общие библиотеки DLL. Частные библиотеки DLL используют сведения .local о версии или пустой файл для принудительного применения версии библиотеки DLL, используемой программой. Чтобы использовать частные библиотеки DLL, найдите библиотеки DLL в корневой папке программы. Затем для новых программ добавьте сведения о версии в библиотеку DLL. Для старых программ используйте пустой .local файл. Каждый метод указывает операционной системе использовать частные библиотеки DLL, расположенные в корневой папке программы.
Средства устранения неполадок библиотеки DLL
Для устранения неполадок с библиотекой DLL доступно несколько средств. Ниже приведены некоторые из этих средств.
Обходчик зависимостей
Средство "Обходчик зависимостей" может рекурсивно проверять все зависимые библиотеки DLL, используемые программой. При открытии программы в Dependency Вебере он выполняет следующие проверки:
- Обходчик зависимостей проверяет наличие отсутствующих библиотек DLL.
- Монитор зависимостей проверяет наличие недопустимых программных файлов или библиотек DLL.
- Монитор зависимостей проверяет, совпадают ли функции импорта и экспорта.
- Обходчик зависимостей проверяет наличие циклических ошибок зависимостей.
- Монитор зависимостей проверяет наличие недопустимых модулей, так как модули предназначены для другой операционной системы.
С помощью Dependency Walker можно документировать все библиотеки DLL, используемые программой. Это может помочь предотвратить и устранить проблемы DLL, которые могут возникнуть в будущем. При установке Visual Studio версии 6.0 dependency Викер находится в следующем каталоге:
drive\Program Files\Microsoft Visual Studio\Common\Tools
Универсальный решатель проблем DLL
Средство DLL Universal Problem Solver (DUPS) используется для аудита, сравнения, документирование и отображения сведений о библиотеке DLL. В следующем списке описаны служебные программы, из которых создается средство DUPS.
Эта служебная программа перечисляет все библиотеки DLL на компьютере и регистрирует сведения в текстовом файле или файле базы данных.
Эта программа сравнивает библиотеки DLL, перечисленные в двух текстовых файлах, и создает третий текстовый файл, содержащий различия.
Эта служебная программа загружает текстовые файлы, созданные с помощью Dlister.exe и Dcomp.exe в базу данных DLLHell.
Эта служебная программа предоставляет версию графического пользовательского интерфейса (GUI) Dtxt2DB.exe.
Справочная база данных библиотеки DLL
База данных справки DLL помогает найти определенные версии библиотек DLL, установленных программным продуктом Майкрософт.
Разработка DLL
В этом разделе описываются проблемы и требования, которые следует учитывать при разработке собственных библиотек DLL.
Типы библиотек DLL
При загрузке библиотеки DLL в приложение два метода связывания позволяют вызывать экспортированные функции DLL. Два метода связывания — динамическое связывание во время загрузки и динамическое связывание во время выполнения.
Динамическое связывание во время загрузки
При динамической компоновки во время загрузки приложение выполняет явные вызовы экспортированных функций DLL, таких как локальные функции. Чтобы использовать динамическую компоновку во время загрузки, предоставьте файл заголовка (H) и файл библиотеки импорта (LIB) при компиляции и связывание приложения. При этом компоновщик предоставит системе сведения, необходимые для загрузки библиотеки DLL и разрешения экспортированных расположений функций DLL во время загрузки.
Динамическое связывание во время выполнения
При динамической компоновки LoadLibrary LoadLibraryEx во время выполнения приложение вызывает функцию или функцию для загрузки библиотеки DLL во время выполнения. После успешной загрузки GetProcAddress библиотеки DLL используйте функцию для получения адреса экспортированной функции DLL, которую требуется вызвать. При использовании динамической компоновки во время выполнения файл библиотеки импорта не требуется.
В следующем списке описаны критерии приложения для использования динамической компоновки во время загрузки и использования динамической компоновки во время выполнения:
Если важна начальная производительность запуска приложения, следует использовать динамическое связывание во время выполнения.
При динамической компоновки во время загрузки экспортированные функции DLL являются локальными функциями. Это упрощает вызов этих функций.
При динамической компоновки во время выполнения приложение может выполнять ветвь для загрузки различных модулей по мере необходимости. Это важно при разработке версий на нескольких языках.
Точка входа DLL
При создании библиотеки DLL можно дополнительно указать функцию точки входа. Функция точки входа вызывается, когда процессы или потоки присоединяются к библиотеке DLL или отсоединяются от библиотеки DLL. Функцию точки входа можно использовать для инициализации структур данных или для уничтожения структур данных по мере необходимости библиотеки DLL. Кроме того, если приложение является многопоточным, можно использовать локальное хранилище потоков (TLS) для выделения памяти, которая является частной для каждого потока в функции точки входа. Ниже приведен пример функции точки входа библиотеки DLL.
Когда функция точки входа возвращает значение FALSE, приложение не запускается при использовании динамической компоновки во время загрузки. При использовании динамической компоновки во время выполнения загрузка только отдельной библиотеки DLL не выполняется.
Функция точки входа должна выполнять только простые задачи инициализации и не должна вызывать другие функции загрузки или завершения библиотеки DLL. Например, в функции точки входа не следует прямо или косвенно вызывать LoadLibrary функцию или функцию LoadLibraryEx . Кроме того, не следует вызывать функцию FreeLibrary при завершении процесса.
В многопоточных приложениях убедитесь, что доступ к глобальным данным DLL синхронизирован (потокобезопасный), чтобы избежать возможного повреждения данных. Для этого используйте TLS для предоставления уникальных данных для каждого потока.
Экспорт функций DLL
Чтобы экспортировать функции DLL, можно добавить ключевое слово функции в экспортированные функции DLL или создать файл определения модуля (DEF), в котором перечислены экспортированные функции DLL.
Чтобы использовать ключевое слово функции, необходимо объявить каждую функцию, которую требуется экспортировать, с помощью следующего ключевого слова:
__declspec(dllexport)
Чтобы использовать экспортированные функции DLL в приложении, необходимо объявить каждую функцию, которую требуется импортировать, с помощью следующего ключевого слова: __declspec(dllimport)
Как правило, для разделения инструкции экспорта и инструкции используется один файл заголовка с оператором define ifdef и оператором import .
Вы также можете использовать файл определения модуля для объявления экспортированных функций DLL. При использовании файла определения модуля не нужно добавлять ключевое слово функции в экспортированные функции DLL. В файле определения модуля объявляется инструкция LIBRARY и EXPORTS инструкция для библиотеки DLL. Следующий код является примером файла определения.
Пример библиотеки DLL и приложения
В Visual C++ 6.0 можно создать библиотеку DLL, выбрав тип проекта библиотеки win32 Dynamic-Link или тип проекта MFC AppWizard (dll ).
Ниже приведен пример библиотеки DLL, созданной в Visual C++ с помощью типа проекта Dynamic-Link Win32 .
Ниже приведен пример проекта приложения Win32 , который вызывает экспортируемую функцию DLL в библиотеке DLL SampleDLL.
При динамической компоновке во время загрузки необходимо связать библиотеку импорта SampleDLL.lib, которая создается при сборке проекта SampleDLL.
При динамической компоновки во время выполнения для вызова экспортированной функции DLL используется код SampleDLL.dll, аналогичный следующему коду.
При компиляции и связывании приложения SampleDLL операционная система Windows ищет библиотеку DLL SampleDLL в следующих расположениях в следующем порядке:
Системная Windows папка
Функция GetSystemDirectory возвращает путь к Windows системной папке.
Функция GetWindowsDirectory возвращает путь к Windows папке.
Файл сборки содержит манифест сборки, метаданные типа, код MSIL и другие ресурсы. Манифест сборки содержит метаданные сборки, которые содержат все сведения, необходимые для самостоятельного описания сборки. В манифест сборки включены следующие сведения:
- Имя сборки
- Сведения о версии
- Сведения о языке и региональных параметрах
- Сведения о строгом имени
- Список сборок файлов
- Справочные сведения о типе
- Сведения о ссылочных и зависимых сборках
Код MSIL, содержащийся в сборке, не может выполняться напрямую. Вместо этого выполнением кода MSIL управляет среда CLR. По умолчанию при создании сборки сборка является закрытой для приложения. Чтобы создать общую сборку, необходимо назначить сборке строгое имя, а затем опубликовать сборку в глобальном кэше сборок.
В следующем списке описаны некоторые функции сборок по сравнению с функциями библиотек DLL Win32.
При создании сборки все сведения, необходимые среде CLR для запуска сборки, содержатся в манифесте сборки. Манифест сборки содержит список зависимых сборок. Таким образом, среда CLR может поддерживать согласованный набор сборок, используемых в приложении. В библиотеках DLL Win32 нельзя поддерживать согласованность между набором библиотек DLL, используемых в приложении при использовании общих библиотек DLL.
В манифесте сборки сведения о версии записываются и применяются средой CLR. Кроме того, политики версий позволяют принудительно применять использование конкретной версии. В библиотеках DLL Win32 управление версиями не может применяться операционной системой. Необходимо убедиться, что библиотеки DLL поддерживают обратную совместимость.
Сборки поддерживают параллельное развертывание. Одно приложение может использовать одну версию сборки, а другое — другую. Начиная с Windows 2000, параллельное развертывание поддерживается путем поиска библиотек DLL в папке приложения. Кроме того, Windows защиты файлов предотвращает перезапись или замену системных библиотек DLL неавторизованными агентами.
Автономная и изоляция
Приложение, разработанное с помощью сборки, может быть автономным и изолированным от других приложений, работающих на компьютере. Эта функция помогает создавать установки без влияния.
Сборка выполняется с разрешениями безопасности, предоставленными в манифесте сборки и управляемыми средой CLR.
Независимый от языка
Возможно, у вас возникли проблемы с установкой? Мы готовы помочь. Мы предлагаем для поддержки чат по вопросам установки (только на английском языке).
Это руководство содержит пошаговые инструкции, которые помогут устранить большинство проблем при установке.
Установка через Интернет
Следующие шаги применимы к обычной установке через Интернет. Сведения об автономной установке см. в разделе об устранении неполадок с автономной установкой.
Шаг 1. Проверьте, не связана ли ошибка с известными проблемами
Существуют несколько известных проблем с Visual Studio Installer, и корпорация Майкрософт работает над их устранением. Чтобы найти способ обойти эту проблему, проверьте раздел известных проблем в заметках о выпуске.
Существуют несколько известных проблем с Visual Studio Installer, и корпорация Майкрософт работает над их устранением. Чтобы найти способ обойти эту проблему, проверьте раздел известных проблем в заметках о выпуске.
Существуют несколько известных проблем с Visual Studio Installer, и корпорация Майкрософт работает над их устранением. Проверьте, решена ли проблема, или найдите обходные пути в разделе "Известные проблемы" в заметках о выпуске.
Шаг 2. Попробуйте восстановить Visual Studio
Процедура восстановления способна устранить многие распространенные проблемы с обновлением. Дополнительные сведения о том, когда и как восстанавливать Visual Studio, см. в разделе Восстановление Visual Studio.
Шаг 3. Обратитесь к сообществу разработчиков
Шаг 4. Удалите папку Visual Studio Installer, чтобы устранить проблемы, связанные с обновлением
Начальный загрузчик Visual Studio представляет собой исполняемый файл небольшого размера, который инициирует установку Visual Studio Installer и продукта Visual Studio. Если вы удалите файлы Visual Studio Installer и повторно запустите начальный загрузчик, это может решить некоторые проблемы, связанные с обновлением.
С помощью следующей процедуры можно переустановить файлы Visual Studio Installer и сбросить метаданные установки.
- Закройте Visual Studio Installer.
- Удалите папку Visual Studio Installer. Как правило, путь к папке: C:\Program Files (x86)\Microsoft Visual Studio\Installer .
- Запустите начальный загрузчик Visual Studio Installer. Файл начального загрузчика можно найти в папке Загрузки. Его имя соответствует шаблону vs_[Visual Studio edition]__*.exe . Вы также можете скачать начальный загрузчик для вашего выпуска Visual Studio со страницы загрузок Visual Studio. Запустите этот исполняемый файл, чтобы сбросить метаданные установки.
- Снова попробуйте установить или обновить Visual Studio. Если Visual Studio Installer продолжает выдавать ошибки, перейдите к шагу Сообщить о проблеме.
Шаг 5. Сообщите о проблеме
В некоторых ситуациях, например при наличии поврежденных файлов, вам, возможно, понадобится устранять неполадки случай за случаем. Вы можете содействовать нам при оказании вам помощи, выполнив следующие действия:
Шаг 6. Удаление файлов установки Visual Studio
В крайнем случае вы можете удалить все файлы установки Visual Studio и информацию о продукте:
- Следуйте инструкциям, приведенным в этой статье: Удаление Visual Studio.
- Снова запустите начальный загрузчик Visual Studio Installer. Файл начального загрузчика можно найти в папке Загрузки. Его имя соответствует шаблону vs_[Visual Studio edition]__*.exe . Вы также можете скачать начальный загрузчик для вашего выпуска Visual Studio со страницы загрузок Visual Studio.
- Попробуйте переустановить Visual Studio.
Шаг 7. Свяжитесь с нами (необязательно)
Если вы выполнили все вышеуказанные шаги, но вам так и не удалось установить или обновить Visual Studio, свяжитесь с нами через чат в реальном времени (только на английском языке) для получения дополнительной помощи.
Автономная установка
Здесь приведены некоторые известные проблемы и варианты обходных путей, которые могут помочь при создании автономной установки и установке из локального источника.
Проблема | Решение |
---|---|
Пользователи не имеют доступ к файлам | Прежде чем открывать общий доступ к автономной установке, необходимо настроить разрешения (ACL) и предоставить пользователям права на чтение. |
Не удается установить новые рабочие нагрузки, компоненты или языковые пакеты | Если вы производите установку из частичного макета и выбираете рабочие нагрузки, компоненты или языки, которые не скачаны в этот макет, вам потребуется доступ в Интернет. |
Обновления администратора
Обновления администратора могут применяться неправильно по различным причинам. Дополнительные сведения см. в статье Коды ошибок для устранения неполадок с обновлениями администратора.
Журналы установки
Журналы установки помогают нам в устранении большинства неполадок при установке. При отправке сигнала о проблеме с помощью варианта Сообщить о проблеме в Visual Studio Installer в отчет автоматически добавляется последний журнал установки Visual Studio Installer.
Чтобы собрать журналы, выполните указанные ниже действия.
-
.
- Откройте командную строку от имени администратора.
- Запустите Collect.exe в папке, в которой сохранили средство.
- Средство создает файл vslogs.zip в папке %TEMP% , как правило, в C:\Users\YourName\AppData\Local\Temp\vslogs.zip .
Запускайте средство с помощью той же учетной записи пользователя, с помощью которой запускалась завершившаяся сбоем установка. Если вы запускаете средство с помощью другой учетной записи, задайте параметр –user: , чтобы указать учетную запись пользователя, с помощью которой запускалась завершившаяся сбоем установка. Чтобы просмотреть дополнительные параметры и сведения об использовании, запустите Collect.exe -? из командной строки администратора.
Проблемы при установке WebView2
WebView2 — это компонент, необходимый для Visual Studio, но установку этого компонента можно заблокировать с помощью групповых политик вашей организации. Блокировка установки WebView2 не даст выполнить установку Visual Studio.
• Если настроена политика Microsoft Edge "Install (WebView)", она определит, можно ли установить WebView2. • Если политика Microsoft Edge "Install (WebView)" не настроена, политика Microsoft Edge "InstallDefault" определит, можно ли установить WebView2.
Если ни одна из политик не настроена, ваша организация разрешает установку WebView2.
Помощь в реальном времени
Если решения, приведенные в этом руководстве по устранению неполадок, не помогли вам установить или обновить Visual Studio, воспользуйтесь чатом в реальном времени (только на английском языке) для получения дополнительной помощи.
Как указано в заголовке, я скопировал свою DLL в проект Visual Studio, установил для него значение «содержимое» и «всегда копировать». Добавил ссылку на эту DLL и установил для нее «копировать локально».
Мне удалось создать экземпляр моего компонента в форме через код, но он не отображается в панели инструментов, что очень скучно.
Как я могу решить эту проблему?
Если я напрямую свяжу проект DLL с этим проектом, он будет работать, но теперь я рассматриваю DLL как «внешнюю», поэтому она не является частью того же решения проекта DLL.
Я нашел способ заставить это работать:
- Добавьте dll, сделайте ссылку на нее
- Скомпилируйте проект
- Сохраните решение и перезапустите Visual Studio
И затем элементы управления появляются на панели инструментов (не всегда работают, я думаю, это своего рода ошибка визуальной студии)
У меня была эта проблема с решением @ AndrewFinnell:
В c: . \ XXXX.dll нет компонентов, которые можно было бы разместить на панели инструментов.
Итак, я решил с помощью перетаскивания :
- откройте проводник Windows и перейдите к DLL
- перетащите DLL и поместите ее в Visual Studio на панели инструментов именно туда, где вы хотите, чтобы ваши компоненты отображались.
- Щелкните правой кнопкой мыши на панели инструментов.
- Нажмите "Выбрать элементы . "
- Нажмите "Обзор . "
- Перейдите к своей DLL и нажмите "Открыть".
- Затем нажмите «ОК»
После этого должны появиться ваши компоненты.
Как сказано выше,
Я ссылаюсь на DLL в клиентском проекте следующим образом: в обозревателе решений щелкните правой кнопкой мыши> Добавить ссылку, в настоящее время настраиваемый элемент управления не отображается на панели инструментов.
Сохраняю и закрываю клиентский проект.
Я перезапускаю Visual Studio 2012 и снова открываю клиентский проект. Теперь настраиваемый элемент управления находится на панели инструментов.
Я снова открываю проект настраиваемого элемента управления, вношу некоторые изменения и компилирую.
И самое главное, все изменения, которые я внес в проект DLL, автоматически обновлялись в клиентском проекте без необходимости повторять «Добавить ссылку».
Вот что я сделал.
После установки загрузки диаграммы net 3.5 по ссылке MSDN я вручную скопировал DLL-файлы диаграммы 3.5 в свой проект и обратился к ним. Затем из «выбрать элемент» панели инструментов перейдите к файлам DLL и добавьте их в панель инструментов. Убедитесь, что установлен флажок для «диаграммы» во всплывающем окне «Выбрать элемент».
ПРИМЕЧАНИЕ (Я использую Visual Studio 2010. Думаю, мое решение должно работать в 2012 году.)
У меня была такая же проблема. Я работаю в Visual Studio 2010.
Это была проблема, с которой я сидел на конфорке последние 2 года.
Я бы проголосовал за предыдущий ответ, но у меня пока недостаточно репутации.
В этом посте можно было бы использовать несколько лучших тегов, потому что он был похоронен в большинстве моих поисковых запросов в Google.
- Ссылка на библиотеку пользовательских элементов управления
- Перетащите файл DLL в ящик для инструментов.
У меня есть один вопрос по этому поводу: что произойдет, если вы измените ссылку проекта на DLL (потому что она перемещена) и не попытаетесь обновить ссылку на панель инструментов (удалив элемент управления из панели инструментов и перетащив DLL из Новое место)?
Я пробовал следовать другим ответам (спасибо всем вам!), Но у меня возникла эта проблема, и я дам вам всем знать, как я ее решил, и покажу свои настраиваемые инструменты на панели инструментов (в VS 2017).
- Поместите файл .ddl в любое библиотечное решение
- Затем я добавляю этот .ddl как ссылку на мой необходимый проект.
- Соберите проект и перезапустите Visual Studio.
В этой группе нет полезных элементов управления. Перетащите элемент на это текст для добавления в панель инструментов
Я перетащил .dll и опустил под этот текст, а затем все мои настраиваемые инструменты появились в моем наборе инструментов.
И добавляем lib. в папку в вашем примере решения solutionfolder / bin / debug, а затем добавьте ссылку на объект из этой папки, наконец, перестройте, выйдите, вернитесь, перетащите dll из этой папки решений /. /../, и она, вероятно, появится.
In Visual Studio 2010, under VC++ Directories > Executable Directories , I have specified the path to glew32d.dll . However, when I run the executable, it still complains.
On the other hand, if I copy the DLL into the local folder and run the executable then, it doesn't complain.
Can someone please tell me how to fix this? Also, why is Visual Studio not recognizing that path?
Update Scenario: I currently use a template project which I use as a starter code for a lot of my projects. This template depends on glew32d.dll. I usually store all dependent dlls in a common bin folder. I was hoping to reference this folder and Visual studio could read the dlls from there, instead of me having to copy the dlls everytime. What would be a good way to handle this?
@muntoo: What? Also, I disagree with the way you edited the last line. There aren't two separate questions there, so the original grammar was correct. The OP is asking how they can fix this in light of the fact that VS is not recognizing the path. The only reason they care about VS not recognizing the path is because it might lead them to a solution.
4 Answers 4
Specifying the path to the DLL file in your project's settings does not ensure that your application will find the DLL at run-time. You only told Visual Studio how to find the files it needs. That has nothing to do with how the program finds what it needs, once built.
Placing the DLL file into the same folder as the executable is by far the simplest solution. That's the default search path for dependencies, so you won't need to do anything special if you go that route.
To avoid having to do this manually each time, you can create a Post-Build Event for your project that will automatically copy the DLL into the appropriate directory after a build completes.
Alternatively, you could deploy the DLL to the Windows side-by-side cache, and add a manifest to your application that specifies the location.
Читайте также: