61 lines
3.8 KiB
XML
Executable File
61 lines
3.8 KiB
XML
Executable File
<!--
|
|
***********************************************************************************************
|
|
Microsoft.CodeCoverage.targets
|
|
|
|
WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
|
|
created a backup copy. Incorrect changes to this file will make it
|
|
impossible to load or build your test projects from the command-line or the IDE.
|
|
|
|
Copyright (c) Microsoft. All rights reserved.
|
|
***********************************************************************************************
|
|
-->
|
|
|
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
|
|
<!-- This target required to enable /collect:"Code Coverage" in "dotnet publish" scenario with "dotnet vstest".
|
|
E.g: Release pipelines where user/project nuget cache not available on current machine. -->
|
|
<Target Name="CopyTraceDataCollectorArtifacts" AfterTargets="ComputeFilesToPublish">
|
|
|
|
<ItemGroup>
|
|
<TraceDataCollectorArtifacts Include="$(MSBuildThisFileDirectory)\**\*.*" />
|
|
</ItemGroup>
|
|
|
|
<Copy SourceFiles="@(TraceDataCollectorArtifacts)" DestinationFolder="$(PublishDir)%(RecursiveDir)" />
|
|
|
|
</Target>
|
|
|
|
<PropertyGroup Condition="'$(NETCoreSdkVersion)' != '' and '$(DisableMsCoverageReferencedPathMaps)' != 'true'">
|
|
<_msCoverageSdkNETCoreSdkVersion>$(NETCoreSdkVersion)</_msCoverageSdkNETCoreSdkVersion>
|
|
<_msCoverageSdkNETCoreSdkVersion Condition="$(_msCoverageSdkNETCoreSdkVersion.Contains('-'))">$(_msCoverageSdkNETCoreSdkVersion.Split('-')[0])</_msCoverageSdkNETCoreSdkVersion>
|
|
<_msCoverageSdkMinVersionWithDependencyTarget>6.0.100</_msCoverageSdkMinVersionWithDependencyTarget>
|
|
<_msCoverageSourceRootTargetName>MsCoverageGetPathMap</_msCoverageSourceRootTargetName>
|
|
<_msCoverageSourceRootTargetName Condition="'$([System.Version]::Parse($(_msCoverageSdkNETCoreSdkVersion)).CompareTo($([System.Version]::Parse($(_msCoverageSdkMinVersionWithDependencyTarget)))))' >= '0' ">InitializeSourceRootMappedPaths</_msCoverageSourceRootTargetName>
|
|
</PropertyGroup>
|
|
|
|
<!-- This target required to store deterministic sources mapping.
|
|
It is modified version of https://github.com/coverlet-coverage/coverlet/blob/d1ca364b7dbff38abce0457d94c4ce1b7e3a4cd9/src/coverlet.collector/build/coverlet.collector.targets#L35 -->
|
|
<Target Condition="'$(NETCoreSdkVersion)' != '' and '$(DisableMsCoverageReferencedPathMaps)' != 'true'" Name="MsCoverageReferencedPathMaps" BeforeTargets="CoreCompile" DependsOnTargets="ResolveProjectReferences" >
|
|
<MSBuild Projects="@(AnnotatedProjects->'%(FullPath)')"
|
|
Targets="$(_msCoverageSourceRootTargetName)"
|
|
Properties="TargetFramework=%(AnnotatedProjects.NearestTargetFramework)"
|
|
SkipNonexistentTargets="true">
|
|
<Output TaskParameter="TargetOutputs"
|
|
ItemName="_msCoverageLocalTopLevelSourceRoot" />
|
|
</MSBuild>
|
|
<ItemGroup>
|
|
<_msCoverageByProject Include="@(_msCoverageLocalTopLevelSourceRoot->'%(MSBuildSourceProjectFile)')" OriginalPath="%(Identity)" />
|
|
<_msCoverageMapping Include="@(_msCoverageByProject->'%(Identity)|%(OriginalPath)=%(MappedPath)')" />
|
|
</ItemGroup>
|
|
<PropertyGroup>
|
|
<_msCoverageSourceRootMappingFilePath>$([MSBuild]::EnsureTrailingSlash('$(OutputPath)')).msCoverageSourceRootsMapping_$(AssemblyName)</_msCoverageSourceRootMappingFilePath>
|
|
</PropertyGroup>
|
|
<WriteLinesToFile File="$(_msCoverageSourceRootMappingFilePath)" Lines="@(_msCoverageMapping)"
|
|
Overwrite="true" Encoding="Unicode"
|
|
Condition="'@(_msCoverageMapping)'!=''"
|
|
WriteOnlyWhenDifferent="true" />
|
|
<ItemGroup>
|
|
<FileWrites Include="$(_msCoverageSourceRootMappingFilePath)" Condition="'@(_msCoverageMapping)'!=''" />
|
|
</ItemGroup>
|
|
</Target>
|
|
</Project>
|