Created
March 14, 2017 22:19
-
-
Save dasMulli/69f5303aa79a8cd4060e44891c90fd2d to your computer and use it in GitHub Desktop.
Sample CI build definition using MSBuild
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Project> | |
<ItemGroup> | |
<Solution Include="*.sln" /> | |
<PublishProject Include="XXX.Mvc\XXX.Mvc.csproj" /> | |
<TestProject Include="**\*.Test*.*proj" Exclude="XXX.Tests.Shared\XXX.Tests.Shared.csproj" /> | |
</ItemGroup> | |
<Target Name="Build"> | |
<MSBuild Projects="@(Solution)" Targets="Restore" ContinueOnError="ErrorAndStop" UnloadProjectsOnCompletion="true" UseResultsCache="false" /> | |
<MSBuild Projects="@(PublishProject)" Targets="Publish" Properties="Configuration=Release" ContinueOnError="ErrorAndContinue" /> | |
<MSBuild Projects="@(TestProject)" Targets="VSTest" Properties="VSTestLogger=trx" ContinueOnError="ErrorAndContinue" /> | |
</Target> | |
</Project> |
It works because the msbuild calls are done with different properties, which causes a forced re-evaluation of the project files.
wow @dasMulli that's some pretty epic MSBuild voodoo.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@rainersigwald so far
UnloadProjectsOnCompletion="true"
on the initialTargets="Restore"
call has worked great, I even use NuGet packages that bring in build targets (https://github.com/dasMulli/SimpleGitVersion to be specific) - and it works when starting from a fresh clone that hasn't been restored.