Проект Visual Studio 2015 будує не вдалося, але помилок немає


110

Мій проект будує всі збої, але мені не показують жодних помилок. Я спробував очистити та відновити, що не вийшло.

Я змінив багатослівний вихідний MSBuild на "Діагностичний", сподіваючись, що це допоможе мені визначити проблему, і тепер я застряг. Ось як виглядає вихід:

1>Project 'ProjectMM.Data.Models' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\ProjectMM.Data.Models.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\bin\Debug\ProjectMM.Data.Models.pdb'.
All packages are already installed and there is nothing to restore.
1>------ Build started: Project: ProjectMM.Data.Models, Configuration: Debug Any CPU ------
2>Project 'ProjectMM.Data' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data\ProjectMM.Data.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data\bin\Debug\ProjectMM.Data.pdb'.
2>------ Build started: Project: ProjectMM.Data, Configuration: Debug Any CPU ------
3>Project 'ProjectMM' is not up to date. Input file 'c:\projects\projectmm\projectmm\app_start\bundleconfig.cs' is modified after output file 'C:\Projects\ProjectMM\ProjectMM\bin\ProjectMM.pdb'.
3>------ Build started: Project: ProjectMM, Configuration: Debug Any CPU ------
========== Build: 0 succeeded, 3 failed, 0 up-to-date, 0 skipped ==========

1
Показується вікно списку помилок чи ні?
Картик

Перейдіть до меню Перегляд -> Виберіть список помилок і перевірте, чи є у вас помилки. В ідеалі ви повинні отримати його у списку помилок. Тримайте вікно списку помилок відкритим і спробуйте створити проект і подивіться, що станеться ..
Karthik

4
Отже, ось що сталося: я опублікував це питання і, припускаючи, що не отримаю відповіді відразу, я закрив проект. Ви запропонували мені відкрити його назад, відкрити список помилок та відновити його. Це спрацювало чудово, помилок не було, все вдалося!
Роб Грінлі

@RobGreenlee: Дивіться мою відповідь, я ставлю на облік, що "вкладка помилок" була активною при повторному відкритті рішення!
jpo38

Відповіді:


101

У мене була така ж проблема, і закриття та повторне відкриття Visual Studio очищує її.

Я також спробував очистити розчин і «Чистий невдало».

Можливо, є й інші сценарії, коли це не робить фокус, але в моєму випадку перезапуск вирішив це для мене.


22
Якщо це не допомагає перезапустити. Я часто стикаюся з цією проблемою, коли додаю проект до свого рішення, а інша цільова рамка посилається на різні рамкові проекти.
Бастіан Ліндерс

7
У моєму випадку перезапуск VS або очищення розчину не допомогло. Однак видалення .suo під папкою .vs вирішило проблему
cellik

@cellik: У моєму випадку це не працює. Що варто .. Я використовую Enterprise Edition.
KMC

4
У мене була така ж проблема, коли я змінив час свого комп'ютера з часового поясу CEST (GMT + 1) на часовий пояс США (GMT-7), схоже, він не міг впоратися з тим, що в майбутньому була позначка часу останньої збірки. Після перезапуску VS все в порядку.
martinh_kentico

2
Видалення файлів .suo теж зробило трюк для мене.
Йоганн Маркс

117

Можливо, ви не бачите всіх помилок збирання.

Змінивши випадаючий список після піктограми "Повідомлення" з "Build + Intellisense" на "Build only", ви зможете побачити помилки, викинуті під час збірки, які не виявлені Intellisense. Дивіться скріншот нижче:

Побудувати


3
Чувак, ти мій рятівник!
KMC

19
Чому в "Build + Intellisense" помилки "Тільки побудувати" не мають бути?
CodyF

Це допомогло показати помилки у списку помилок, але рядки коду з помилками не мають червоного підкреслення. Я здогадуюсь, це тоді має бути проблемою Intellisense.
Дрю

Працює для мене. Шахта перейшла на Build і Intellisense, які приховували помилки збирання. Тільки збірка працює і відображає помилки побудови.
HerrimanCoder

1
Ви, сер, врятували день для мене .. чудова робота .. Дякую
MA9H

32

Я бачив регулярні випадки звітування VS2015 "збій не вдався", але не відображав помилок у вікні помилок. Виходячи зі стародавнього фону командного рядка, я нарешті заглянув у вихідне вікно. У вікні виводу показано помилки звітування компілятора, але ці помилки не були зафіксовані у вікні помилок. Я ніколи не бачив цієї проблеми під VS2013.

Звичайне закриття VS та його повторне відкриття не очистили цю умову. (У VS2013 це був звичайний спосіб відбити XAML intellisense ззаду і змусити його зупинити фіксацію на "помилку", яка була виправлена.)

Поки це завжди було пов'язано з помилками компіляції у CS-файлі сторінки XAML. Я не пам'ятаю, як бачив його у несайтовому файлі CS.

Поки не з'ясується перевірка вихідного вікна, такі речі, як інтелігентна звітність у вікні помилок, недійсні посилання на об'єкти в XAML, але жодна помилка компілятора, що відображається у вікні помилок, не може отримати ДУЖЕ плутанину, оскільки вона "з'являється", як помилки помилки XAML, що повідомляють про інтелігенцію. Але насправді це не так. Помилки XAML - це лише симптоми CS-файлів, які не вдаються до компіляції, але не повідомляють про помилки у вікні помилок.


20
Для тих, хто все ще бореться з вікном невидимих ​​помилок, схоже, ви можете отримати помилки компілятора, які відображатимуться у вікні, вибравши лише збільшити у списку фільтрів ErrorList To dropdown у вікні списку помилок (спадне меню не позначене ... Ви можете розібратися, що це таке, навевши курсор миші на нього та спостерігаючи підказку).
Роберт Харві

2
@RobertHarvey ... це ключ ... але ЧОМУ в світі Intellisense би перекрила збірку?
felickz

@RobertHarvey це було саме так. Виявляється, як хтось тут запропонував, я посилався на несумісний проект .net, але я не міг сказати, у чому проблема, поки я не переключив вихід на "Тільки побудувати" на панелі помилок. Як тільки я це зробив, це вказувало мені право на це питання. Дякую за пораду.
Девід Гундерсон

Ця відповідь була для мене підказкою. Шукайте "CS CS помилки" (без лапок) для можливих блокувань винятків збірки.
granadaCoder

PS. Моя помилка полягала в тому, що я використовував те саме ім’я змінної у своєму методі. "рядок x = string.Empty;" наприклад. У мене був обробник винятків, який також мав у ньому декларацію "string x".
granadaCoder

11

Видалення прихованої .vsпапки для працюючої для мене для VS2015.

(Зауважте, що тут зараз живуть файли SUO)


9

Це може статися, коли ви посилаєтесь на інший проект версії рамки .net (у моєму випадку v4.5.2 проти v4.5). Виправлення цього виправить вашу проблему.


Це була саме моя проблема. Додано новий проект до рішення, яке було v4.5.2, і я посилався на нього з іншого проекту, який був v4.5. Переключив новий проект на v4.5, і він працював чудово.
Дрю

7

Що сталося зі мною - змінити часовий пояс на комп’ютері на +5: 30, а потім змінити його назад -5: 00 - це заплутало В.С. Коли я перезапустив VS, він знову справно працював.


ніякої підказки. Я використовую контроль версій, щоб воно могло плутатись із часом ???
MB

6

Перевірте всі версії ваших проектів Framework і переконайтеся, що вони однакові, або принаймні, що проект A не посилається на проект B, коли версія .NET Framework проекту B є вищою.


6

У мене виникла ця проблема з VS2015 Update 3 RC та Xamarin (Проект .Forms).
Компілятор не зупиняється, помилки відображалися лише у вихідному вікні.
Це лише для проектів Xamarin (з проектами VB.NET все працювало так, як очікувалося) ...
Щоб спробувати знайти причину проблеми, я змінив вихідний висновок у VS:
- меню "Інструменти - Параметри"
- на панелі ліворуч : "Проекти та рішення: побудувати та запустити":
- змінити "MSBuild Outbo Verbosity" з "Мінімальний" на "Діагностичний"

Після цього компілятор зупинився, і помилка була показана.
Після цього я встановив параметр назад з "Діагностики" на "Мінімальний" (як це було раніше) і ... він також працював з "Мінімальним" (щоб бути впевненим, я також перезапустив VS) ...

Отже .. здається (принаймні, я мою справу), що лише змінити (доторкнутися) до налаштування (MSBuild Output Verbosity ") вирішив проблему і що це помилка в VS та / або програмному забезпеченні інтеграції Xamarin ...


1
Чому ця відповідь не є більш прихильною? Це дає вам ідеальне рішення налагодити те, що не так
Джон Деметріу

Перевірте мою відповідь нижче. Я також думав, що ваше рішення було правильним, але я зрозумів, що навіть при "Діагностичному" рівні виводу, моя "вкладка помилок" залишиться порожньою. Як і інші, ви, швидше за все, підтримували "вкладку помилок" активною, і тому вона почала працювати нормально ...
jpo38

6

Я не знаю, чи я єдиний, хто стикається з цією проблемою.

У моєму випадку, коли я відкрив Visual Studio, часовий пояс був у GMT + 1: 00, і збірка була успішною. Потім я змінив часовий пояс на GMT + 5: 30, а потім, не перезавантажуючи Visual Studio, спробував запустити додаток, але збірка не вдалася без помилок чи попередження.

Я змінив часовий пояс на GMT + 1: 00, і збірка вдалася без жодної помилки.


Велике спасибі - це мене змусило з розуму весь день :-)
indra

2

Що я зробив (адже все вищесказане, і воно все ще не працювало), було пройти всі папки бін і очистити їх усіх (тобто посилаються проекти теж).

Це працювало для мене, сподіваюсь, це теж для вас.


2

У мене була ця проблема, і виявилося, що я usingвказав на порожній простір імен. Видалення цього usingпункту вирішило проблему


2

Перевірте попередження ..

У мене була нова бібліотека класів з цільовою .Net Framework 4.5, тоді як проект посилань становив 4.0, що спричинило проблему з посиланням.

Після зміни бібліотеки класів з цільовою .Net Framework 4.0 вона працювала коректно.


2

Нічого з відповідей вище мені не допомогло. Після багатьох експериментів я нарешті виявив, що проблема є посиланням Microsoft.Net.Compilers v2.10.0 в одному з проектів. VS 2015 використовує MSBuild v14, який не підтримує цю версію Microsoft.Net.Compilers.


1

Для мене ця проблема була пов'язана зі спеціальним налаштуванням набору правил CodeAnalysis " Включити все ".

Здається, Компілятор дотримується цього параметра:

  <IncludeAll Action="Error" />

Але IntelliSense здійснив дію за замовчуванням в ідентифікаторі правила, яке було "Попередження". Це пояснило б поведінку, яку бачить @RobertHarvey, коли ви фільтруєте висновок лише за допомогою зборки, і він відображається як ПОМИЛКА , але якщо ви фільтруєте лише Intellisene, він відображається як ПОПЕРЕДЖЕННЯ . Фільтр виводу за замовчуванням Build + Intellisense видається недетермінованим!

Моє виправлення полягало в тому, щоб явно викликати правило, яке я хотів би бути попередженням як попередження.

  <Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp" RuleNamespace="Microsoft.CodeAnalysis.CSharp">
    <Rule Id="CS0618" Action="Warning" />
  </Rules>

Це потенційно є проблемою, якщо Intellisense не дотримується опції IncludeAll . Дивіться https://github.com/dotnet/roslyn/isissue/7400


1

Це також може статися під час переміщення проекту до Visual Studio 2015 зі старішим Framework. Перевірте свої попередження у списку помилок. Можливо, ви бачите щось на зразок проекту на даний момент .NET версії 2.0 і вимагає .NET 3.5 або новішої версії. Якщо ви знайдете подібне попередження, перейдіть до властивостей вашого проекту та націліть на потрібну .NET Framework.


1

Перевірте попередження. Іноді збір не вдався і через якісь попередження.


1

Відкриваючи рішення, генеруючи його, я бачу деякі помилки побудови або попередження, повідомлені на "вкладці виводу", тоді як "вкладка помилок" не повідомляє про жодну проблему.

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

Ви можете бачити, що налаштування "Вкладка помилок" у порядку (вибрано "Тільки побудова" та "Ціле рішення").

Зауважте, що після глибокого розслідування я визначив, що це відбувається лише в тому випадку, якщо "вкладка помилок" ще не була показана при запуску збірки!

Якщо ви активували "вкладку помилок" перед тим, як збирати (або якщо це була поточна вкладка під час запуску Visual), знову знайдені помилки / попередження відображатимуться правильно:

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

Це як би "вкладка помилок" ініціалізується лише тоді, коли вона стає видимою (що може бути правдивим, оскільки потрібно більше часу, щоб з'явитись при першому натисканні на неї ...), і, якщо це не було, воно не збирає збірку результати ...

Поки що немає кращої відповіді на цю проблему, ніж " активувати вкладку" Помилка перед побудовою ".

І я думаю, що чомусь "перезапуск VS" працює. Ви бачите, що "Вкладка помилок" порожня, ви закриваєте і повторно забираєте VS, тоді "Закладка помилок" відображається за замовчуванням, оскільки VS відновив поточну активну вкладку з попереднього сеансу. Ви будуєте, і тепер "вкладка помилок" заповнюється ...! Вам просто пощастило.

Примітка. Повідомляється про помилку VS: https://connect.microsoft.com/VisualStudio/feedback/details/3132689


Це рішення спрацювало на мене. Це сталося зі мною одного разу - жодних попереджень не відображалося. Я відкрив вікно списку помилок і відновив рішення. Цього разу були показані попередження. Я не можу знову відтворити ту саму проблему навіть після перезавантаження VS.
ІАН

1

Для мене збірка не вдалася без помилок, але після невеликого розслідування я з'ясував, що заперечення до MSHTML не знайшов VS.

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

Поведінка з'явилася після оновлення до Windows 10. Для її виправлення потрібно зареєструвати збірку з GAC. Для того, як це зробити, перейдіть до цієї відповіді MSHTML DLL у Windows 10 , саме там я і знайшов свою відповідь.


0

Взяте з цієї відповіді

Компіляція не вдалася, у вікні виводу не було показано жодних помилок.

Щоб спробувати знайти причину проблеми, я змінив вихідний збір у VS: - меню "Інструменти - Параметри" - на панелі ліворуч: "Проекти та рішення: Збірка та запуск": - змінити "MSBuild Outbo Verbosity" з " Мінімальний "до" Діагностичний "

Після цього я виявив справжню причину, яка насправді була помилкою у проектах залежності. Я проектував, що від мене залежав, був побудований на інші рамки (новіші), ніж у мене. Таким чином створюючи випуск. Помилки були усунені лише тоді, коли я поставив Outbo Verbosity на діагностичну


Йдеться не лише про з'ясування проблеми, а про те, як навчитися вирішувати проблему. Ось чому я включив інші процеси налагодження відповідей, тому що саме це допомогло мені з’ясувати, що не так. Не просто випадкові здогадки про те, яка проблема може бути
Джон Деметриу

0

Для мене це була власність, пов’язана із шахрайством. Проблема була не обов'язково в тому, що я не міг бачити помилку; помилка була така:

Дочірній вузол "2" вийшов передчасно. Закриття. Діагностична інформація може бути знайдена у файлах у каталозі тимчасових файлів під назвою MSBuild _ *. Fail.txt.

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

Видалення прихованої .vsпапки, відновлення / очищення рішення та перезапуск Visual Studio не працювали. Видалення доданого властивості зробило; Ерго, це може бути фактичний код, де він не працює належним чином.

В крайньому випадку я б видалив будь-які останні зміни по черзі, поки проблема не буде вирішена, оскільки жодне з рішень тут не допомогло.

Оновлення

Оскільки я звик розробляти традиційні програми WPF, я не розумів, що ти не можеш "прикутувати" простори імен XAML, використовуючи .s з UWP. Я намагався встановити додане властивість за допомогою

My.Namespace:SomeClass.SomeProperty="SomeValue"

Тоді як це просто повинно бути

MyNamespace:SomeClass.SomeProperty="SomeValue"

Це не так красиво, як мені подобається, але, мабуть, це єдиний шлях.


0

Що для мене спрацювало:

Закриття всіх документів вирішило для мене питання. (Те саме рішення, якщо IntelliSense перестане працювати)

(вкладка правою кнопкою миші - Закрити всі документи)


0

Спробуйте це

За винятком "mstscax.dll"залежностей, які працювали на мене.


0

Проблему з нішею: я зараз зіткнувся з тим самим номером. Жодна з наведених вище відповідей, здавалося, не допомогла.

Проблема була для програми консолі, метод Main () не можна позначити як async **, що я і робив. Не впевнений, чому Visual Studio не міг уточнити, чому саме проект не будується (я отримував 0 помилок і 0 попереджень кожен раз). Я використовую Visual Studio 2015 Enterprise.

Виправлення: робота над цим є тут .


0

Після оновлення файлу dll виявилося, що новий файл орієнтується на більш високу версію .NET Framework. Рішення полягало в тому, щоб перейти до властивостей проекту та змінити цільовий фреймворк на відповідну версію.


0

MSBuild.exe змінено в каталозі (C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin)

тому я просто замінюю MSBuild.exe з іншого ПК, який має vs2015.

Зараз це працює нормально.


0

Я знайшов рішення, змінивши .NET Framework з 4.5.2 на 4.0.

Проблема була викликана посиланням, яке не було сумісно з обраним на даний момент рамкою.


0

Я просто очистив свої фільтри, і він працював для мене. Піктограма очищення всіх фільтрів знаходиться біля поля повідомлень.


0

Почніть новий проект. Скопіюйте увесь код на нижню область імен ConsoleApp38450983450.

Вставте новий проект нижче простору імен ScrewedUpConsoleApp102343

Побудувати та запустити ідеально


-1

Ви повинні встановити комбобокс праворуч у списку помилок у розділі "Ціле рішення", щоб побачити всі помилки. введіть тут опис зображення


1
На це досить давнє запитання вже є прийнята відповідь, не здається, що ваша дуже коротка та неописана відповідь тут багато додає до нього. Крім того, будь ласка, не посилайтеся на зображення на зовнішніх сайтах, а додайте зображення до своєї відповіді!
Дукс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.