У меня один из проектов моего решения зависит от другого решения: кода, который не будет часто меняться.Чтобы исключить этот код из основного решения, я сослался на получившуюся il-merged dll и добавил следующий код в файл проекта:
<Target Name="BeforeBuild">
<MsBuild Projects="$(PathToAnotherSolutionFile)" Properties="Configuration=$(Configuration)" Condition="!Exists($(AnotherSolutionDll))"/>
</Target>
В результате, внешнее решение создается только один раз при новой проверке.Это желаемое поведение, и оно работает как положено, если запускается из командной строки.Но если построить решение из Visual Studio, задача MsBuild по какой-то причине не выполняется.
Однако, это выполняется, если в «Проектах» поставить отдельный проект вместо решения.
Есть ли значимое объяснение этому поведению и есть ли способ его обойти?