Яке місце за замовчуванням для журналів MSBuild?


101

Я використовую Visual Studio Express 2012. Де знаходиться файл журналу? Я шукав у папці, де зберігаються моє рішення та проекти, але не можу знайти жодного файлу .log.

Це конфігурація для ведення журналу:

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


1
Файл .log за замовчуванням не існує. Подивіться у вікно виводу.
Ганс Пасант

13
@Hans, У моєму випадку у вікні виводу є повідомлення про те, що "більше інформації доступно в журналі збору". тому десь є окремий журнал. Я її ще не знайшов.
Брендон Куценський

Відповіді:


106

Файл журналу від Visual Studio підтримується лише для проектів C ++. Вам просто потрібно працювати з вихідним вікном для інших.

Ознайомтеся з подібною темою: VS2010: мінімальний вхід для складання та детальний файл журналу входу

І якщо у вас трапляється це для проекту C ++, файл знаходиться за адресою :

... Журнал збірки в проміжному каталозі файлів ... Шлях і ім'я журналу збірки представлено макро вираження MSBuild, $(IntDir)\$(MSBuildProjectName).log.


14
Я думаю, що це просто нерозумно, що Visual Studio не має детального входу у файл. Ну добре, реальність, яку я маю прийняти. Дякую за вашу відповідь, @Dmitry
Hanxue

8
@hanxue - У ньому є журнал. Цей журнал просто не надсилається до файлу. Якщо ви хочете файл журналу, запустіть msbuild з командного рядка.
Річ Мелтон

43
ЧОМУ ЧОГО НЕ
МОЖЕТ

2
Боже. Блін. Чому це не лише властивість рішення? Чому вікно виводу так чи інакше таке жахливе, тому ви змушені весь час його тримати на мінімальному рівні, і чому потрібно, як 8 кроків змінюватись з одного рівня виходу на інший? Виправте будь-яке з них, будь ласка.
Джеймс

@James Я думаю, ви могли б написати макрос і призначити його кнопці на панелі інструментів. Ці посилання можуть бути відправною точкою stackoverflow.com/questions/12062515 / ... і vlasovstudio.com/visual-commander
Дмитро Павлов

23

Документація msdn про це досить зрозуміла (і вам це не сподобається!):

https://msdn.microsoft.com/en-us/library/jj651643.aspx

Де написано:

Щоб створити файл журналу побудови для проекту керованого коду На панелі меню виберіть «Створити, побудувати рішення».

У вікні «Виведення» виділіть інформацію з збірки та скопіюйте її у буфер обміну.

Відкрийте текстовий редактор, наприклад, Блокнот, вставте інформацію у файл та збережіть його.


15
Що все добре і добре, поки ви не використовуєте діагностичний вихід і VS не вирішить викинути виняток "пам'яті", коли ви намагаєтесь скопіювати його у буфер обміну. Дійсно - принципово нерозумне рішення не підтримувати надсилання журналу збірки до файлу в IDE. Але ей хо, таке життя.
Стів Петтіфер

1
Трубна збірка у текстовий файл? msbuild mysln.sln> output.txt (ймовірно, потрібно буде додати параметри до цього, щоб ваш компілятор був скомпільований, але ви повинні мати змогу зафіксувати це з вікна виводу iirc на правильному рівні багатослів’я)
Daniel M

Зазвичай, коли я будую в командному рядку, я змушую мої системи збирання виводити мінімальну інформацію у вікно терміналу, але детальний журнал у файл. MSBuild може це зробити.
C Джонсон

"І вам це не сподобається!" Це розповідає все в 6 слів, дякую
FIV

23

Використовуйте вихідний збір замість журналу для файлу. Замість того, щоб скопіювати / вставити, просто натисніть десь у висновку та натисніть CTRL + S, щоб зберегти. Visual Studio запропонує вам вказати місцеположення (тестується з Visual Studio 2017, але я припускаю, що це працює і в попередніх версіях).

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


Це добре. Вони також повинні помістити це в контекстне меню.
Шин

2

Хоча це правда, що VS не дозволяє цього безпосередньо, все-таки можна створити за допомогою MSBuild "всередині" VS2015 і отримати як вихідний вікно збірки, так і файл журналу, таким чином: (Можливо, це трохи хак.)

  1. У своє рішення VS Managed додайте новий проект (Назвемо це "Зробити"). а. Тип проекту, який ви хочете, - це проект Visual C ++ / NMake.
  2. Визначте потрібні команди MSBuild у командному рядку (див. Нижче).
  3. Змініть конфігурацію рішення для створення проекту NMake замість звичайних керованих проектів.

Це створить проект, у якому є командні рядки Build, Rebuild та Clean, де можна безпосередньо виконати MSBuild. Наприклад:

Побудувати: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Clean,Build

Збірка: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Build

Чистота: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Clean

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

Це створить файл .log, де NAME - це назва використовуваного вами проекту NMake. У наведеному вище прикладі журнал буде make.log.

Робочий приклад доступний на GitHub: https://github.com/bitblitz/VS_MsbuildExample (випробувано з VS2015)

Зауважте, що побудова індивідуальних проектів все одно будуватиметься з нормальною поведінкою VS, але ви можете побудувати повне рішення всередині VS та отримати журнали збірки.


1
Посилання на VS_MsbuildExample розірвано.
JPaget

Привіт @brad, що сталося з вашим прикладом на GitHub?
Ян Дюран

Виправлений github, вибачте за проблему. @YannDuran
Бред
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.