У нас есть решение с несколькими проектами в нем, и нам нужно запустить инструмент на нашем скомпилированном коде после того, как весь наш код будет скомпилирован. Инструмент должен принимать в качестве входных данных все DLL-файлы и .exe-файлы, созданные из решения (так что для инкрементной сборки недостаточно, чтобы дать ему только восстановленные двоичные файлы), и все эти двоичные файлы должны быть до Дата.MSBuild: Запуск целевой задачи после сборки решений из Visual Studio
Теперь мы делаем это с помощью файла MSBuild .proj, который мы запускаем из командной строки, которая включает все проекты, и использует элемент вывода MSBuild для поиска путей к двоичным файлам в решении.
У этого есть две проблемы, которые делают это решение не совсем подходящим для нас. Инструмент не обязательно должен запускаться во всех проектах, только некоторые из них. И требуется, чтобы мы могли строить из Visual Studio.
Кажется, что мне нужно, чтобы в файлах проектов .csproj некоторых проектов было указано что-то, что говорит «запустите инструмент на мне», чтобы собрать пути этого проекта и запустить инструмент в этой коллекции путей.
Но я не вижу, как это сделать. Похоже, что когда я создаю Visual Studio, я не могу делиться состоянием между сборками проектов, и похоже, что после сборки решения нет никакого крючка.
Из командной строки есть до. *. Sln.targets и after. *. Sln.targets, но они не работают из Visual Studio.
Кажется, что я хочу смешно простой, я просто хочу, чтобы инструмент автоматически смотрел на двоичные файлы решения после сборки, поэтому я не думаю, что это должно быть невозможно. Но я не могу понять, как это сделать из документации. Я новичок в MSBuild, поэтому, вероятно, я пропустил что-то очевидное.
Вы можете добавить пустой проект в решение, добавить зависимости друг от друга и определить событие post-build в добавленном проекте. – Nikerboker