Не удается запустить событие после сборки (C ++) - PullRequest
0 голосов
/ 21 июня 2020

У моего проекта есть событие после сборки. Это событие, кажется, устраивает других, но со мной этого никогда не происходит. Я поместил сообщения компилятора на уровень диагностики c и получил следующее:

Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '' and ('$(RunPostBuildEvent)' != 'OnOutputUpdated' or '$(_AssemblyTimestampBeforeCompile)' != '$(_AssemblyTimestampAfterCompile)')) was evaluated as ('' != '' and ('' != 'OnOutputUpdated' or '' != '')).

Итак, я знаю, что это не внутренняя команда, которая терпит неудачу, но событие даже не выполняется VS. Даже если я сделаю полную очистку / перестройку, удалив все файлы в выходном каталоге, не повезло.

Обновление: В файле проекта есть это:

<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
  ....
  <PostBuildEvent>
    <Command>xcopy /Q /Y /i filename $(OutDir)filename</Command>
  </PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
  <PostBuildEvent>
    <Command>xcopy /Q /Y /i filename $(OutDir)filename</Command>
  </PostBuildEvent>
....

Кто-нибудь знает, что могло пойти не так?

Дополнительная информация: VS 2017 (обновлено). В рассматриваемом проекте используется версия v120, но это также происходит с чистым проектом v140.

Обновление 2 : как предлагается ниже, вот журналы, собранные Collect.exe: https://drive.google.com/file/d/1eV3VUAc9GgUa14b0qLND18J2ztj6o1q8/view?usp=sharing

Обновление 3 : вот результат ag Error (в bash) - он рекурсивно просматривает подкаталог. Я не знаю, важны ли эти ошибки, и если да, то что с ними делать. https://drive.google.com/file/d/1b7u_wvj7AaIHydmgWgkkLnxK-ySNfT1R/view?usp=sharing

1 Ответ

0 голосов
/ 23 июня 2020

Пожалуйста, попробуйте следующие предложения:

Предложение

1) проверьте, есть ли обновления ОС, если да, вам следует обновить до последней версии.

2) запустите cmd от имени администратора, а затем введите следующее:

DISM.exe /Online /Cleanup-image /Restorehealth

DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:C:\RepairSource\Windows /LimitAccess

sfc /scannow

Дополнительные шаги, вы можете обратиться к нему: используйте инструмент проверки системных файлов для восстановления отсутствующих или поврежденных системных файлов

В добавление , если проблема не устранена, вы можете скачать vscollect tool , а затем собрать журнал сборки , он существует под %TEMP%vslogs.zip. Вы можете поделиться им с нами, чтобы мы могли быстрее устранить проблему.

...