У меня проблема с MSBuild
Я не могу решить ее самостоятельно.В результате я полагаюсь на мудрость сообщества.
Реальная ситуация, с которой у меня проблемы
У меня есть файл решения, содержащий несколько проектов с зависимостями от других проектов вто же решение.Я хотел бы добавить пользовательскую цель в один из файлов проекта csproj и собрать его из командной строки.Это позволит мне сделать все необходимые выходные файлы для этого проекта для дальнейшей обработки при построении пользовательской цели.Но главное, что я не могу понять, как это сделать, поиск в Google тоже не помогает.
Упрощение
Чтобы упростить задачу, я решилСоздайте новый консольный проект C #, добавьте простую настраиваемую цель в файл проекта и попробуйте собрать его.Все еще безуспешно!Вот что я сделал до сих пор:
Создал приложение решения с консольным проектом по умолчанию coreapp.Это дает мне по крайней мере два файла:
- app.sln
- coreapp \ coreapp.csproj
Модифицированный coreapp.csprojс добавлением моей пользовательской цели внутри тега Project
<Target Name="SampleTarget">
<Message Text="This is a SampleTarget" />
</Target>
Запустите в командной строке следующую команду
%windir%\Microsoft.NET\framework\v3.5\msbuild.exe app.sln /t:coreapp:SampleTarget
иличётный
%windir%\Microsoft.NET\framework\v3.5\msbuild.exe app.sln /t:coreapp.csproj:SampleTarget
Результаты
Не повезло, с ошибкой
MSB4057: The target "coreapp.csproj:SampleTarget" does not exist in the project.
Я подозреваю, что MSBuild
считает, что что-то принципиально отличается от того, что я хочу, чтобы он думал ...
Кроме того, я также пытался установить в той же командной строке переменную среды MSBuildEmitSolution =1 для принудительного создания дампа msbuild временного файла решения, который он создает при обработке решения.В этом файле действительно нет такой цели.Однако я полагаю, что это не причина, потому что я попросил msbuild создать coreapp.proj, где действительно находится целевой SampleTarget.
Вопрос в том, как создать SampleTarget в этом упрощенном сценарии с использованием файла решения, поскольку потенциально он может содержать зависимостидля проекта, содержащего эту цель SampleTarget?
Я был бы признателен за любую помощь или помощь для дальнейшего исследования!