| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?xml version="1.0" encoding="utf-8"?>
- <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <!-- ============================================================ -->
- <!-- Build targets -->
- <!-- ============================================================ -->
- <!--
- Is run once after build, checks if the project's nuget package's .nuspec depends on Baseclass.Contrib.Nuget.Output and copies everything which is in the
- output folder to the builds OutDir.
- -->
- <Target Name="CopyToOutput" AfterTargets="Compile" DependsOnTargets="CollectNugetOutputFiles">
- <Copy SourceFiles="@(NugetOutputFiles)" DestinationFiles="@(NugetOutputFiles->'$(OutDir)\%(RecursiveDir)%(Filename)%(Extension)')" />
- </Target>
- <!--
- Is run once after clean, delete all files that match files collected by the CollectNugetOutputFiles task.
- -->
- <Target Name="CleanOutput" AfterTargets="Clean" DependsOnTargets="CollectNugetOutputFiles">
- <Delete Files="@(NugetOutputFiles->'$(OutDir)\%(RecursiveDir)%(Filename)%(Extension)')" />
- </Target>
- <!--
- Is run once per file which has been deleted by the CleanOutput target, if the containing folder is empty it gets deleted.
- -->
- <Target Name="CleanEmptyFolder" Inputs="@(NugetOutputFiles)" Outputs="%(Identity).Dummy" AfterTargets="CleanOutput">
- <ItemGroup>
- <EmptyCheck Include="$(OutDir)%(NugetOutputFiles.RecursiveDir)**\*.*" />
- </ItemGroup>
- <RemoveDir Condition="'@(EmptyCheck)' == '' And '%(NugetOutputFiles.RecursiveDir)' != ''" Directories="$(OutDir)%(NugetOutputFiles.RecursiveDir)" />
- </Target>
- <!-- ============================================================ -->
- <!-- Web publication targets -->
- <!-- ============================================================ -->
-
- <PropertyGroup>
- <PipelineCollectFilesPhaseDependsOn>
- $(PipelineCollectFilesPhaseDependsOn);
- CollectNugetPackageFiles;
- </PipelineCollectFilesPhaseDependsOn>
- </PropertyGroup>
- <!--
- Is run once during the PipelineCollectFilesPhase to fill FilesForPackagingFromProject with the files from NugetOutputFiles
- -->
- <Target Name="CollectNugetPackageFiles" DependsOnTargets="CollectNugetOutputFiles">
- <ItemGroup>
- <FilesForPackagingFromProject Include="@(NugetOutputFiles)" >
- <DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
- </FilesForPackagingFromProject>
- </ItemGroup>
- </Target>
- <!-- ============================================================ -->
- <!-- Common targets -->
- <!-- ============================================================ -->
-
- <!--
- Is run once to compute the NugetOutputFiles item from the NuGet dependencies of the project
- -->
- <Target Name="CollectNugetOutputFiles">
- <Message Text="Collecting NuGet output files for $(MSBuildProjectName):" />
-
- <PackageRetrievalTask ProjectName="$(MSBuildProjectName)" ProjectDirectory="$(MSBuildProjectDirectory)" ProjectFullPath="$(MSBuildProjectFullPath)" SolutionPath="$(SolutionDir)">
- <Output ItemName="FilteredNugetPackages" TaskParameter="Result" />
- </PackageRetrievalTask>
- <Message Text="@(FilteredNugetPackages->'%(RecursiveDir)%(Filename)%(Extension)', '%0D%0A')" />
- <Message Text="Total filtered packages : @(FilteredNugetPackages->Count())" />
-
- <ItemGroup>
- <NugetOutputFiles Include="%(FilteredNugetPackages.RootDir)%(FilteredNugetPackages.Directory)\output\**\*.*" />
- </ItemGroup>
-
- <Message Text="@(NugetOutputFiles->'%(RecursiveDir)%(Filename)%(Extension)', '%0D%0A')" />
- <Message Text="Total files collected : @(NugetOutputFiles->Count())" />
- </Target>
- <!--
- Filter the NugetPackages list to only include nuget packages referenced in the PackageConfigs list which depend on Baseclass.Contrib.Nuget.Output
- -->
- <UsingTask TaskName="PackageRetrievalTask" AssemblyFile="$(MSBuildThisFileDirectory)\Baseclass.Contrib.Nuget.Output.Build.dll" />
- </Project>
|