Как определить, почему Visual Studio может пропускать проекты при создании решения

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

1> ------ Пропущено Rebuild All: Project: pr1lib ------

Как я могу определить, почему эти сборки были пропущены? Я не могу найти дополнительный вывод.

Это с VS2008, и решение состоит из кода C # и C ++.

23.08.2009 22:37:57
В дополнение к предоставленным ответам, убедитесь, что в настройках конфигурации решения каждый проект в проверенном состоянии (флажок установлен), который необходимо очистить / построить:Build > Configuration Manager: check as needed
Metro Smurf 19.06.2016 20:16:18
Чтобы выяснить причину пропуска проектов. Обязательно добавьте /flв настройки сборки, чтобы получить файл msbuild.log, в котором указана причина. Например:skipped, due to false condition; ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') ) was evaluated as ( ('Debug' == 'Release') and ('AnyCPU' == 'Any CPU') ).
T_D 6.06.2017 10:23:55
@T_D - где в Visual Studio я бы добавил '/ fl'? Где появится журнал? Если вы добавите это в качестве ответа, я буду голосовать, поскольку большинство других ответов представляют собой различные случайные предположения для решения проблемы, а не для ответа на первоначальный вопрос, который был просто о получении дополнительной информации о проблеме.
PaulG 4.01.2019 10:48:18
@PaulG Смотрите мой ответ ниже. Просто установите настройки в настройках.
Darren Wood 21.08.2019 03:01:08
30 ОТВЕТОВ
РЕШЕНИЕ

Щелкните правой кнопкой мыши решение, выберите «Свойства», а затем «Свойства конфигурации». Здесь вы можете выбрать, какие проекты строить.

[ edit ]:
См. комментарий Kdt: ... когда я посмотрел в свойствах конфигурации ... цель сборки проекта была настроена для "Смешанных платформ", в то время как решение было настроено на сборку "Любой ЦП".

* Когда эта проблема случилась со мной, в основном проекте был только «Любой ЦП», и он также установил дочерний файл «Любой ЦП», однако я удалил этот профиль и оставил только «x86». Выбор x86 только для DLL, чтобы он начал работать
[/ edit]

83
18.06.2012 19:54:28
У меня была таинственная «Пропущенная сборка», и когда я посмотрел в свойствах конфигурации, проект действительно был помечен для сборки. Однако цель сборки проекта была настроена для «Смешанных платформ», в то время как решение было настроено на создание «Любого ЦП» - изменение их в соответствии с решением проблемы.
kdt 29.12.2009 14:10:36
В моем случае, хотя все проекты и решение были настроены на «Любой процессор», один проект пропустил сборку. Лишь после того, как я установил решение «Смешанные платформы», а затем вернул «Любой процессор», оно будет построено. Глядя на разность файла решения до и после, он изменился с {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPUна {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU. Единственная разница - это добавленное пространство между «Any» и «CPU» в конце строки.
Simon Tewsi 16.07.2015 01:05:14
В моем случае все проекты были установлены на «Любой ЦП», и проблема была решена путем удаления проектов (удаление проекта не приводит к удалению файлов) и повторного добавления их в решение.
Hamid Mayeli 20.05.2019 14:33:54

Зайдите в меню сборки и выберите «Диспетчер конфигурации». Это покажет, какие проекты настроены для построения в выбранной вами конфигурации.

2
23.08.2009 22:43:02

сначала убедитесь, что вы делаете «очистку». Visual Studio, как правило, не перестраивает проект, который не устарел (насколько это возможно), а просто повторно использует уже имеющийся объектный код.

Запуск clean должен очистить весь ранее скомпилированный код, а VS не должен пропускать проект (при условии, что менеджер конфигурации выбрал проекты для сборки ... см. Предыдущий ответ).

Надеюсь, это поможет.

-1
23.08.2009 22:47:45
Нет, когда проект обновлен, VS сообщает об этом в журнале и не считает его «пропущенным».
Roman Starkov 28.12.2009 14:23:05

Если значение конфигурации составляет x64, а компилятор x64 не установлен, проект будет пропущен.

9
30.03.2010 22:10:42
+1 гений. Вы можете найти SP1 здесь: microsoft.com/download/en/details.aspx?id=10986
ashes999 1.02.2012 16:34:42
Если компилятор x64 не установлен, вы даже не можете выбрать x64.
Calmarius 28.01.2013 13:40:30
Конфигурации решения и проекта могут определять и использовать запись под названием «x64». Третий ddl для архитектуры процессора (цель платформы - на полпути вниз по странице свойств сборки) - это тот, который недоступен
StingyJack 6.02.2017 13:04:50

Возникла та же проблема, выяснилось, что настройки проекта были для процессоров Itanium, а изменение на Intel исправило.

1
11.09.2010 19:37:03

Эй, только что исправил это. Думаю, это может помочь. Скорее всего, вы не устанавливали соответствующие компиляторы вместе с Visual Studio. Это случилось со мной сегодня - по умолчанию установщик VS 2008 не устанавливает x64 C ++ компилятор.

Если у вас есть SP1, удалите его перед изменением установки VS. Когда закончите, установите SP1 снова.

3
14.01.2011 00:18:08

У меня просто была одна и та же проблема - «выгрузить проект» и «перезагрузить проект» решил проблему!

40
9.03.2011 08:20:12
У меня та же проблема, и выгрузка / перезагрузка работает, но проблема, кажется, возвращается, что раздражает, когда это происходит с кучей проектов, и вы должны выгрузить / перезагрузить каждый из них ... Кто-нибудь знает, если есть способ избежать этого вообще?
Liron 9.03.2011 23:01:19
Это устранило проблему для меня, когда Visual Studio ошибочно сообщал о том, что проекты уже обновлены в окне вывода при попытке выполнить сборку.
Kevin Laity 26.05.2013 14:41:00

Я обнаружил, что иногда, когда у вас есть целевая платформа, настроенная на, скажем, x86 в вашем решении и в ваших проектах, проект не всегда был выбран.

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

0
19.04.2011 13:26:30

Работал с той же проблемой с VS2005, все конфигурации были правильными. Он даже пропускал команду «Чистый проект».

Наконец выгрузка / перегрузка сделали волшебство.

1
25.05.2011 13:46:37

Visual Studio 2008, это может быть потому, что 64-битный компилятор не был бы установлен.

Панель управления -> Программы и компоненты -> Microsoft Visual Studio 2008 professional -> [двойной щелчок]

В диалоге Visual Studio

Далее -> Добавить / удалить компоненты -> (Под) Visual C ++ -> (выбрать) x64 компилятор и инструменты

5
22.01.2018 20:38:41

Проблема существует и в VS 2010; из предложенных решений: редактирование конфигурации сборки, очистка, изменение / изменение целевой структуры, НЕ работают. Но выгрузка и перезагрузка проекта делает.

3
28.02.2012 21:20:28

У меня была эта проблема с некоторыми проектами Windows CE на новом ПК. «Разгрузка проекта» и «Перезагрузка проекта», казалось, решили проблему, но на самом деле Visual Studio просто переключилась на другую платформу и создала ее.

Оказалось, что хотя моя платформа WinCE была показана как активная платформа, Visual Studio "действительно" не видела ее. Решением было переустановить WinCE SDK с привилегиями администратора :

  • Убедитесь, что Visual Studio 2008 не работает.
  • Откройте «Командная строка Visual Studio 2008» в качестве администратора. В Windows 7 просто щелкните правой кнопкой мыши ярлык и выберите «Запуск от имени администратора».
  • Введите следующую команду: msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • Когда вас спросят, хотите ли вы выполнить выборочную или полную выборку установки, и сообщите установщику, что нужно пропустить установку документации (этот шаг не был необходим в моем случае; на самом деле я просто попросил его «восстановить» существующую установку). )
  • устанавливать
0
25.06.2013 18:23:41

VS 2008 будет пропускать цели x64, если у вас не установлен x64 компилятор. VS 2008 не по умолчанию. Вроде дух, вещь.

0
10.10.2013 22:50:11

Щелкните правой кнопкой мыши на Solution в вашем обозревателе решений, затем выберите Property в нижней части меню. В окнах свойств нажмите Свойства конфигурации -> Конфигурация на левой панели, вы увидите список проектов на правой панели, убедитесь, что флажок Построить установлен во всплывающем окне.

1
19.03.2014 19:07:55

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

Щелкните правой кнопкой мыши проект в файле решения, выберите свойства, вкладку приложения, измените целевой фреймворк с 4.0 на 3.5.

Затем перестройте, и я получил кучу ссылок на отсутствующие ссылки на сборки, что имеет смысл, так как я еще не добавил ссылки на них.

0
3.02.2015 21:21:45

Если ваше решение содержит файл проекта NuGet (* .nuproj), попробуйте выгрузить его, а затем пересобрать решение.

Это сработало для меня после того, как ничего из вышеперечисленного не сработало.

1
12.05.2017 16:04:13

Операции по сборке, перестройке и очистке пропускались. Выгрузка и перезагрузка не помогли, равно как и перезапуск Visual Studio.

После того, как я удалил проект из решения и добавил его обратно, он больше не пропускается. Чтобы удалить его, в обозревателе решений щелкните правой кнопкой мыши проект> Удалить> ОК. Чтобы добавить его обратно, в обозревателе решений щелкните правой кнопкой мыши решение> Добавить> Существующий проект и выберите свой проект.

20
12.10.2017 15:25:49
Имейте в виду, вам придется повторно добавить все ProjectReferences в этот проект.
Joseph 3.05.2019 18:42:35

Я обновляю одно небольшое обновление Visual Studio 2017, а затем установщик напоминает мне перезагружать компьютер, но я не перезагружаюсь. Когда я строю свой проект или решение в Visual Studio 2017, я сталкиваюсь с той же проблемой, описанной выше. ключ, поэтому я перезагрузил компьютер, я сделал это.:>

0
8.10.2018 05:59:40

У меня была похожая вещь, случившаяся со мной. Я не уверен, в чем проблема, но это не будет Очистить , Построить , Восстановить и т. Д. Я работаю в Visual Studio 2017 и хотел netstandard2.0сборку. Проблема для меня заключалась в том, что каким-то образом тип проекта был неправильным, может быть, я начал с netcoreappбиблиотеки классов, что-то вроде этого, застрявшее в файле решения , я не помню. Как бы то ни было, я сделал резервную копию проекта, создал новый netstandardпроект библиотеки классов и учел все резервные копии, и это исправило это для меня. HTH кто-то.

2
26.10.2018 21:04:05

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

Я добавил Shared Project в свое решение с кодом, который использовался в двух или трех других проектах. Как вы знаете, общие проекты - это просто код, а не проект в традиционном смысле. Вы не можете «построить» общий проект, это просто код, который встроен в другие проекты, а затем встроен в него.

Но каким-то образом мой файл решения был обновлен так, как если бы общий проект был его собственной задачей, которую нужно было собрать. Я предполагаю, что всякий раз, когда я пытался собрать и не менял код в общем проекте, он полагал, что «ничего не изменилось, пропустите эти сборки»

Я нашел общий проект в solution.slnфайле, как:

Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Api.Common", "Api.Common\Api.Common.shproj", "{EC580471-D78A-4509-AC46-BD565553AD60}"

.. что хорошо. Что не хорошо, так это то, что этот проект также появился в GlobalSection(ProjectConfigurationPlatforms) = postSolutionвиде:

    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.Build.0 = Release|Any CPU

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

2
4.01.2019 15:08:05
Большой! Это было оно! Я удалил каждую строку из файла .sln, который начинался со строки, в которой было указано только «Global», и удалил все строки до «EndGlobal». Тогда это снова сработало.
Ted 21.02.2020 12:26:29

У меня была эта проблема в Visual Studio 2017 15.9.4, и после некоторого поиска и откладывания времени я обнаружил, что в моем решении файл .csproj одного из проектов был поврежден после слияния в TFS. (Я мог бы построить другие проекты, выгрузив проблемный проект из решения). Я решил мою проблему: я сравнил файл .csproj до и после слияния и исправил это. И под исправлением я подразумеваю, что, поскольку тип моего собственного проекта был .netStandard, я удалил ненужные строки, включая Configuration PropertyGroup , все и другие в новом файле .csproj, чтобы сделать его похожим на предыдущую версию в стиле .netstandard.

0
7.01.2019 12:00:10

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

0
7.02.2019 04:10:30
  1. Закрыть визуальную студию
  2. Откройте файл sln с помощью блокнота
  3. удалите все, как это: {B546C55D-9321-4FC0-B25C-46844222BEBE}. Отладка с помощью Fakes | x86.ActiveCfg = Отладка с помощью Fakes | x86 (их будет много)

4. сохранить файл 5. открыть визуальную студию и все лучше

1
13.02.2019 22:38:58
Почему это помогает? Добавьте некоторые объяснения и будьте настолько подробны, насколько это возможно, чтобы будущие читатели могли помочь понять, почему вы должны были предпринять эти шаги.
user5283119 13.02.2019 22:48:14

Мое решение такое же, как упомянуто ранее: Удалить -> Добавить существующий проект

Но это решение подразумевает, что ссылки между проектами исчезают

Чтобы избежать повторного добавления ссылок: и в случае, если вы используете систему контроля версий, такую ​​как GIT или TFS или что-то еще, можно достичь цели с помощью следующих шагов:

  1. Убедитесь, что все изменения зафиксированы / зарегистрированы перед операцией

  2. Просмотрите все проекты, исключив их из решения и добавив к ним существующие.

  3. Обратите внимание, что файл .sln изменился

  4. Сохраните новый файл .sln, но отмените изменения всех файлов .cspoj в системе контроля версий.

8
13.05.2019 13:39:45

Я только попал в эту проблему:

Обновил VS 2017 до последней версии 15.9.11, и несколько моих проектов были обновлены до .net core 2.2. Я изначально загрузил все проекты, пытался построить / очистить / восстановить, и все было пропущено. Следуйте ниже, чтобы решить:

  1. Я разгрузил каждый проект и перезагрузил их.
  2. Закрыл все экземпляры VS и открыл VS как администратор (щелкните правой кнопкой мыши ярлык и выберите опцию «Запуск от имени администратора»)

Вот и все, что вернулось в действие, и я смог успешно построить все проекты.

0
18.04.2019 16:37:51

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

Я понятия не имею, почему ... кроме большой ошибки в VS2017

Я проверил диспетчер конфигурации, все галочки установлены для сборки.

Может быть, это как-то связано с пакетами nuget, но это только предположение

Решение имеет только c ++ / vcxproj, но не csproj. 64 и 32 установлены оба

2
10.05.2019 21:33:16

Визуальная студия 2017

После добавления конфигурации в Менеджере конфигурации

Щелкните правой кнопкой мыши на Project -> Project Only -> Build Only / Rebuild Only / Clean Only

если все остальные настройки верны.

0
13.08.2019 16:18:43

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

введите описание изображения здесь

1
21.08.2019 03:48:11
Настройки многословия, к сожалению, не помогают. Вывод все еще говорит только «пропущенный проект» без объяснения причин.
PaulG 21.08.2019 08:50:23

Перезапуск Visual Studio сделал свое дело

1
18.01.2020 14:46:11

Проблема: Rebuilding, Build, Clean пропускала все мои проекты, кроме двух.

Решения, которые не сработали для меня:

  1. Параметры конфигурации решения были ожидаемыми, поэтому изменения в них не помогли.

  2. Разгрузка и перезагрузка не работали.

Причина возникновения:

Это происходило потому, что целевая платформа .NET была выше (4,7) для этих двух проектов, но ниже для других проектов. Сначала выскочило приглашение с просьбой установить .NET 4.7, что я и сделал, но оказалось, что он не смог распознать, что он установлен, без перезагрузки моей машины.

Решения, которые работали:

  1. Перезагрузка моей машины сделала свое дело. После перезагрузки он правильно распознал, что .NET 4.7 установлен.
  2. Кроме того, понижение целевой структуры проекта путем щелчка правой кнопкой мыши по проекту -> Свойства -> Приложение -> Целевая структура и установки его так же, как и для других проектов, которые пропускались, также решило проблему.

Я бы порекомендовал установить последнюю версию .NET Framework и перезагрузить компьютер, чтобы избежать дальнейших проблем.

0
23.03.2020 11:21:17