Исключение проектов в MSBuild CLI - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь автоматизировать сборку консольного приложения . Net из Jenkins с помощью MSBuild плагина. Всего в решении присутствует 36 проектов, когда я использую Visual Studio 4 проекта отображаются выгруженными и сборка прошла успешно. Но когда я пытаюсь собрать его с помощью MSBuild , MSBuild пытается загрузить эти выгруженные проекты и терпит неудачу. Я использовал конфигурацию, которая не содержит этих проектов, и все еще MSBuild пытается ее построить. 32 проекта написано C# а остальные находятся в C++. Есть ли способ исключить эти проекты и построить их.

1 Ответ

1 голос
/ 05 августа 2020

Исключение проектов в MSBuild CLI

Я думаю, вам следует написать собственный сценарий сборки, чтобы удалить эти проекты в соответствии с вашими требованиями.

Например ,

создайте файл с именем test.csproj, а затем добавьте в него:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <ItemGroup>
    <MyProjectReferences Include="**\*.*proj" />
    <MyProjectReferences Remove="xxx\xxxx.vcxproj;xxx\vxproj;test.csproj" /> //add any projects here you want to exclude 
  </ItemGroup>



  <Target Name="BuildProject">
    <MSBuild Projects="@(MyProjectReferences)" Targets="Build" />
  </Target>

 <Target Name="CleanProject">
 <MSBuild Projects="@(MyProjectReferences)" Targets="Clean" />
</Target>

</Project>

Примечание : вам также следует удалить test.csproj, потому что **\*.*proj уже содержит его, и вы должны удалить его, чтобы не попасть в бесконечный l oop.

Затем , загрузите файл test.csproj в Jenkins и пожалуйста, поместите файл на solution folder на Jenkins

Также не забудьте снова проверить относительный путь в файле test.csproj, чтобы убедиться, что вы можете найти все элементы основаны на текущем облачном адресе.

==============================

Когда вы используете MSBuild.exe для сборки проекта в Jenkins, установите для MSBuild Build File значение test.csproj

, затем установите аргументы командной строки от до

* 10 50 *

Помимо , это то же самое на Azure Devops, вместо этого вы должны использовать MSBuild Task, а затем указать файл test.csproj, чтобы получить то, что вы хотите.

...