Написание MSBuild для решения многих проектов на C # - PullRequest
2 голосов
/ 17 августа 2011

Я очень новичок в MSBuild. Я пробую два разных пути к решению. Тест выдает мне ошибки, а компиляция работает, но я даже не уверен, что она что-то делает.

<?xml version="1.0" encoding="utf-8"?>

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

<PropertyGroup>
<Configuration>Debug</Configuration>
<AssemblyName>MSBuildSample</AssemblyName>
<OutputPath>Output\</OutputPath>
</PropertyGroup>

<ItemGroup>
<Compile Include="**\*.cs" />
<Reference Include="**\*.dll"/>
</ItemGroup>

<ItemGroup>
 <ProjectsToBuild Include="**\*proj" Exclude="$(MSBuildProjectFile)"/>
</ItemGroup>

<Target Name="Test">
<MakeDir Directories="$(OutputPath)"      Condition="!Exists('$(OutputPath)')" />
<Csc Sources="@(Compile)"  References="@(Reference)" OutputAssembly="$(OutputPath)$(AssemblyName).exe" />
<Message Text="The output file is done"/>
</Target>

<Target Name="Clean">
<MSBuild Projects="@(ProjectsToBuild)" ContinueOnError="false" Targets="Clean"
        Properties="Configuration= $(Configuration)" />
</Target>

<Target Name="Compile" DependsOnTargets="Clean">
<MSBuild Projects="@(ProjectsToBuild)" ContinueOnError="false" Properties="Configuration=$(Configuration)">
  <Output ItemName="BuildOutput" TaskParameter="TargetOutputs"/>
</MSBuild>
</Target>

</Project>

Я вообще иду по правильному пути?

1 Ответ

4 голосов
/ 17 августа 2011

Вы можете просто передать файл решения как проект в задачу MSBuild:

<MSBuild Projects="MySolution.sln"  />

OR

<MSBuild Projects="$(PathToSolutionFile)"  />

Если это не так, пожалуйста, дайте мне знать

РЕДАКТИРОВАТЬ: Ответ на комментарий

Из MSDN, MSBuild Task :

Эта задача может обрабатывать не только файлы проекта, но и файлы решения.

MSBuild НЕ создает файлы решения. Учитывая, что у вас есть файл решения, который включает в себя оба упомянутых вами проекта, вы можете просто указать один файл решения и MSBuild pickup все проекты, которые включены.

Возможно, вам нужен этот: Как: создавать решения и проекты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...