У меня есть 2 msbuild проекта A и B в одном решении Visual Studio 2019.A зависит от B.
- B - это инструмент, который может генерировать код.
- A содержит задачу для запуска этой генерации кода и создания файла C # (Stuff.cs) для компиляции.как часть A.
Моя цель - создать простую и интуитивно понятную инкрементальную сборку с минимальным количеством шаблонов.Если исходный код B изменен или сгенерированный файл не найден, это должно инициировать повторное выполнение задачи генерации кода, а затем перестроить A. (в противном случае не следует повторно генерировать код)
проблема в том, что это работает в первый раз, когда код еще не сгенерирован, но при втором изменении B он обходит этап генерации кода, когда A перестраивается.В нем просто говорится, что A «обновлен».
B - это исполняемый файл, который я запускаю внутри csproj A с Exec
, например, так:
<Target Name="GenerateStuff" BeforeTargets="CoreCompile"
Inputs="$(SolutionDir)\B\bin\$(Configuration)\B.exe"
Outputs="$(ProjectDir)\Stuff.cs">
<Exec Command="$(SolutionDir)\B\bin\$(Configuration)\B.exe" />
</Target>
Таким образом, для некоторыхпричина, по которой он не считает эти «входы» действительным триггером.
Я также ищу дополнительную документацию и примеры, связанные с этим.