Обнаружен цикл в графе зависимостей microsoft visual studio component group uwp vc

Обновлено: 07.07.2024

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

В большинстве случаев Visual Studio способна сама определить правильную последователь­ность сборки. Однако иногда вам может понадобиться вручную указать, что некий проект зависит от других проектов. Для предоставления такой информации используйте страницу свойств Project Dependencies (рис. 4.7). Выберите проект в раскрывающемся списке, а за­тем укажите, от каких решений он зависит (для этого нужно отметить проекты в окне списка Depends on).

Местоположение файлов исходных кодов для отладки

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

Настройка зависимостей проекта
Описание: image63

Настройка зависимостей проекта

Одна из таких ситуаций — это когда вы пытаетесь отлаживать решение, которое ссылается на объект на удаленном компьютере. Если файл исходного кода для этого удаленного объ­екта на локальном компьютере отсутствует, то вы можете явно указать для Visual Studio файлы исходных кодов.

Для того чтобы добавить элемент в любое из полей, сначала поместите ваш курсор в поле, а затем щелкните кнопку New Line (вверху справа в диалоговом окне). Это позволит вам вве­сти полностью квалифицированный путь к нужному каталогу. Удаляется элемент путем его выделения и последующего щелчка по кнопке Cut Line. Кнопка Check Entries позволяет вам еще раз перепроверить, что все элементы указывают на правильные и доступные пути к каталогам.

Если вы загрузили решение с проектами на языке Visual C++, то, вероятно, сразу же увидите несколько элементов в списке Directories containing source code.

вы пробовали NDepend? Он покажет вам зависимости, и вы также можете проанализировать удобство использования ваших классов и методов.

Мне нужно было что-то подобное, но я не хотел платить за (или устанавливать) инструмент для этого. Я!--2-->создан быстрый сценарий PowerShell, который проходит через ссылки на проект и выплевывает их в юмл.мне дружелюбный формат:

обновление: ReSharper с версии 8 имеет встроенный 'Просмотр Зависимостей Проекта' характеристика.

enter image description here

методические указания

  1. установить инструмент yEd из здесь.
  2. запустить VS с / resharper.внутренняя командная строка аргумент.
  3. перейдите к ReSharper / Internal / показать зависимости.
  4. укажите проекты, которые вы хотите включить в "общую картину".
  5. снимите флажок "исключить терминальные узлы". - если только тебе это не нужно. Нажмите''.
  6. используйте иерархический макет в yEd (Alt+Shift+H)
  7. обеспечить обратную связь =)

В Visual Studio 2010 Ultimate: Архитектура / Создание Графика Зависимостей / По Сборке.

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

вы можете создать график зависимостей ваших проектов в VS 2010 Ultimate. Обозреватель архитектуры позволяет просматривать решение, выбирать проекты и отношения, которые требуется визуализировать, а затем создавать график зависимостей из выбранного элемента.

дополнительные сведения см. В следующих разделах:

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

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

чтобы завершить ответ eriawan на графиках, созданных NDepend см. скриншоты ниже. Ты можешь!--1-->скачать и использовать бесплатную пробную версию из NDepend на некоторое время.

enter image description here

подробнее о графике зависимостей NDepend

enter image description here

подробнее о Матрице зависимостей NDepend:

отказ от ответственности: я являюсь частью команды инструмент

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

на решение Powershell - Это лучшее. Я адаптировал его в скрипт bash, который работает на моей машине (TM):

К сожалению, единого метода решения для ошибки «Microsoft Visual C++ Runtime Library» нет, так как причины могут быть разными: отсутствующие или поврежденные компоненты системы, влияние сторонних служб и программ, в некоторых случаях — ошибки в самой запускаемой программе (особенно если она была написана вами лично).

Язык программ, не поддерживающих Юникод и пути к папкам с программой

Этот способ решения часто оказывается результативным для пользователей с русскоязычными версиями Windows 10, 8.1 или Windows 7, при условии, что ошибка Microsoft Visual C++ Runtime Library вызывается какой-то сторонней программой, а не системными компонентами, такими как explorer.exe или SystemSettings.exe.

Изменение языка программ, не поддерживающих Юникод

  1. Если запускаемая игра или программа (или её установщик) находится в папке, путь к которой содержит кириллицу (русские буквы), перенесите её в другое расположение или переименуйте папку, попробуйте запустить. Например, если ваше имя пользователя на русском языке, а файл запускается из папки «Загрузки», то полный путь к ней будет иметь види это может послужить причиной ошибки.
  2. Зайдите в Панель управления (в Windows 10 панель управления можно открыть через поиск на панели задач) — Региональные стандарты, откройте вкладку «Дополнительно» и в разделе «Язык программ, не поддерживающих Юникод» нажмите «Изменить язык системы». Выберите «Английский (США)», примените настройки и перезагрузите компьютер, затем проверьте, решило ли это проблему.

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

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

Если указанные шаги не решили проблему, выполните следующие шаги:

Драйверы видеокарты и DirectX

После установки драйверов, DirectX и перезагрузки компьютера, проверьте, была ли решена проблема.

Дополнительные методы решения проблемы

  • Удалить программы, установленные непосредственно перед появлением ошибки. По отзывам, причиной может быть самое разное стороннее ПО, среди примеров: Intel True Key, программы принтеров HP, антивирусы.
  • Использовать точки восстановления системы при их наличии.
  • Выполнить чистую загрузку (не путать с установкой) Windows. Если при чистой загрузке ошибка исчезает, то причина — какие-то программы в автозагрузке или сторонние службы. Можно включать их группами, пока не выявим, что именно вызывает ошибку. Как именно выполнить чистую загрузку описано в инструкции Чистая загрузка Windows. .
  • Отдельная инструкция для этой же ошибки с кодом R6025 pure virtual function call

Ещё один вариант, для случая, когда ошибку вызывает какой-то системный процесс — создать нового пользователя Windows (лучше, если будет использовано имя на латинице), зайти в систему под ним и проверить, сохраняется ли ошибка у этого пользователя.

Видео инструкция

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

А вдруг и это будет интересно:

28.01.2021 в 22:31

Есть вопрос к вам по поводу купленного самсунг 980 про и материнки гигабайт аорус мастер z390 так вот нету ни в одной программе ни информации про смарт ни трим ни Ncq ни остального только есть немного инфы в меджикан. у людей на ютюбе эта информация есть

29.01.2021 в 14:49

10.07.2021 в 12:06

В статью можно добавить sxtrace как один из способов.
У меня прога на работе требует vc++ x86 2005ые, но их оказывается есть несколько версий, и с помощью sxtrace можно точно узнать версию требуемой библиотеки.


С помощью VSTS можно автоматизировать развертывание и тестирование программного обеспечения в различных средах. Суть Continuous Integration заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. В частности CI позволяет автоматизировать регрессионное тестирование приложений.

В качестве ознакомления с возможностями VSTS предлагаю опубликовать и настроить Continuous Integration c Unit тестами простого UWP приложения.

Создадим простой проект UWP приложения, в котором у нас будет один метод:


В решение добавим проект с unit тестами (Unit Test App). Рекомендуется именовать тестовый проект по конвенции, добавляя в конец Tests. Таким образом проще будет сконфигурировать запуск тестов в VSTS и TFS. Добавим ссылку на основной проект:


Переименуем UnitTest.cs в MainPageTests.cs. Если файл будет так назван, то станет проще понять, что именно тестирует этот класс.


Код метода запускается из UI потока. Не забываем добавить пространство имен


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


Необходимо удалить сертификаты обоих проектов из списка gitignore (иначе сборка VSTS будет неудачной).

Публикуем на VSTS. Переходим в окошко Team Explorer и нажимаем Sync




После публикации мы можем создать Build Definition. Но перед этим нам необходимо сконфигурировать build агента. Дело в том, что для того, чтобы запустить Unit тесты необходимо, чтобы был создан кастомный агент.

По умолчанию существует 3 пула агентов:
Default pool используется для агентов, которые установлены на удаленных серверах.
Hosted pool используется для агентов, которые по умолчанию установлены на серверах VSTS и TFS
Hosted Linux pool позволяет работать с Linux машинами без какой-либо настройки своего агента. Работает в Ubuntu Linux host внутри докер контейнера vsts-agent-docker.


Нажимаем Add. Выбираем только Agent pools (read, manage)


Нажимаем Create token (внизу) и копируем значение, сохраняя его на своем компьютере



Именно в этом окне появится наш агент после того, как мы его создадим, но сейчас пока что в нем пусто.

Нажимаем Download agent.


Вы скачаете архив vsts-agent-win7-x64-2.110.0.zip. Распакуйте его в папку C:\agent (имя и расположение не обязательно должны быть именно такими)

Не обязательно устанавливать агента на ту же самую машину, на которой вы ведете разработку. Его можно установить на любую машину. Теоретически его можно установить и на виртуалку Azure. Обязательное условие — у вас должна быть установлена 64-ех разрядная версия Windows. Для большинства сценариев требуется чтобы на машине была установлена еще и Visual Studio вместе с NuGet.

Запускаем PowerShell и переходим в директорию C:\agent. Конфигурируем. Выполняем командный файл .\config.cmd и отвечаем на запросы. Вводим URL сервера и выбираем тип аутентификации. Для VSTS единственный доступный вариант это PAT (Personal Access Token). Это именно тот самый токен, который мы создали чуть ранее. Далее идет выбор пула и имени агента. Эти значения в моем случае были оставлены по умолчанию.


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

Ремарка: Удалить агента можно с помощью .\config remove При этом необходимо будет ввести токен PAT.

Подробнее о конфигурировании здесь: Deploy an agent on Windows

Теперь давайте создадим Build


Выбираем шаблон именно для универсальной платформы


И настраиваем Continous integration (ставим галочку напротив). Пулом агента выбираем Default


В результате получим такое окно:


Для ускорения билда (если необходимо только удостовериться в том, что тесты проходят) на шаге Build solution можно указать одну платформу – x64. Это рекомендуется делать для CI.
В таком случае меняем строку MSBuild Arguments в настройках билда. Значением AppxBundle устанавливаем Never:

/p:AppxBundlePlatforms="$(BuildPlatform)" /p:AppxPackageDir="$(Build.ArtifactStagingDirectory)\AppxPackages\\" /p:AppxBundle=Never /p:UapAppxPackageBuildMode=StoreUpload

В этой строке $(Build.ArtifactStagingDirectory) – это переменная, которая обозначает путь к папке с артефактами. Если на моей машине агент установлен на диске C в папке agent и если при его конфигурировании я выбрал рабочей папкой директорию с названием _work, то путь к этой папке такой:

C:\agent\_work\1\a
Здесь 1 – это порядковый номер проекта

Список всех переменных можно найти на следующей странице: Use build variables


Если же вы хотите сгенерировать bundle (файл, содержащий пакеты приложения для различных архитектур процессора), то необходимо совершить изменения в настройках проекта. А точнее открыть файлы проектов .csproj и совершить следующие изменения.
В файле проекта юнит теста в конец первого элемента


А в файл проекта приложения добавить:


После этих изменений из строки MSBuild Arguments параметр AppxBundle можно смело удалить вместе с его значением (или поставить значением Auto — /p:AppxBundle=Auto)
Этот вариант подходит для CD.

Так как есть желание тестировать (а в нашем случае оно есть), то необходимо добавить шаг


В окне выбора задачи добавить Visual Studio Test. Указать путь к Test Assembly
В моем случае это:

Другие возможные настройки теста описаны по следующей ссылке: Visual Studio Test

Для unit тестов необходимо чтобы агент был запущен в интерактивном режиме (т.е. с помощью скрипта .\run.cmd).

Кроме того, необходимо чтобы сертификаты приложений (и основного приложения и приложения unit теста) были установлены в хранилище Local Machine — Trusted People (установка возможна простым двойным кликом на *.pfx файл). Устанавливать сертификаты необходимо на той же машине, на которой установлен агент.

Иной раз, при запуске тестов может возникнуть ошибка:

… (0x5B4) Operation timed out. Unable to install Windows app package in 30 sec..


Здесь мы выбираем пакет для какой архитектуры мы будем тестировать и устанавливаем ограничение по времени на установку приложения равным 240 секундам.

Файл создается, как правило, в корневой директории приложения и указывается в настройках билда VSTS:


Результат успешного построения и выполнения теста отображен далее:


Окно подробной информации о тесте:


Из этого окна можно создать новый баг или ассоциацию теста с задачей разработки.

Цена вопроса: большинство функций для небольших команд разработчиков бесплатны (и даже нет необходимости привязывать кредитную карту к аккаунту). Безлимит на приватные репозитории, создание задач. Кроме того предоставляется частный конвейер (concurrent pipeline), который позволяет запускать одновременно один билд и один релиз. Запустить несколько билдов одновременно можно, но они будут выполнены последовательно один за другим. Кроме того вы можете использовать hosted agent в течении 240 минут в месяц бесплатно (каждый билд или релиз не должен продолжаться дольше чем 30 минут).
Цены для больших команд разработчиков смотрите здесь: Цены за использование Visual Studio Team Services.

Читайте также: