MSBuild проект из файла решения
Я пытаюсь запустить сборку.net, используя MSBuild из RTC (BuildForge). Я продолжаю получать следующее исключение:
ошибка MSB1009: файл проекта не существует. Переключатель: F:\Program Files (x86)\IBM\Build Forge\Agent\Captiva_Build_dotNET\BUILD_117\xxxxxx\ Исходный код \ Компоненты \ xxxxxx \ xxxxxxx.sln
Команда build выглядит следующим образом
MSBuild.exe "xxxx.sln" /t:xxx_yyyy_zzzzzz_asdfasdf_base
куда /t:
Является одним из проектов в решении. Я не понимаю, что я делаю неправильно. у меня есть _
в заявлении. Это должно быть легко построить? Есть идеи?
1 ответ
msbuild.exe /t:target
используется для выполнения определенной цели в решении или проекте.
msbuild.exe MySolution.sln /t:Clean
Чтобы построить конкретный проект, вы должны указать файл проекта, а не решение.
msbuild.exe MyProject.csproj
Редактировать:
Эврика, ты абсолютно прав, я использовал MsBuildEmitSolution
Переменная env для вывода сценария metaproj, но никогда не видела этого раньше.
Итак, прежде чем вы сможете прийти к этому:
MsBuild.exe MySolution.sln /t:ProjectName:TargetName
В командной строке установите MsBuildEmitSolution:
set MsBuildEmitSolution=1
Затем создайте свой метапроект.
MsBuild.exe MySolution.sln /pp
Откройте выходной файл MySolution.sln.metaproj
в блокноте и прокрутите вниз и найдите соответствующий <Target />
узел, который вы хотите построить, и запишите строку атрибута Name.
<Target Name="Client_Test:Build">
<MSBuild Condition="'%(ProjectReference.Identity)' == '...Client_Test.csproj'" Projects="@(ProjectReference)" Targets="Publish" BuildInParallel="True" ToolsVersion="$(ProjectToolsVersion)" Properties="..." />
</Target>
И ВОЙЛА!
MsBuild.exe MySolution.sln /t:"Client_Test:Build"