1<!-- 2*********************************************************************************************** 3Microsoft.Common.Mono.After.targets 4 5WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have 6 created a backup copy. Incorrect changes to this file will make it 7 impossible to load or build your projects from the command-line or the IDE. 8 9Copyright (C) Microsoft Corporation. All rights reserved. 10*********************************************************************************************** 11--> 12 13<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 14 <UsingTask TaskName="Mono.Build.Tasks.FilterDeniedAssemblies" AssemblyFile="$(MSBuildExtensionsPath)\Mono.Build.Tasks.dll" /> 15 16 <!-- 17 This closely depends on Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets . 18 Specifically, on the `ImplicitlyExpandNETStandardFacades` target which sets 19 20 $(ImplicitlyExpandNETStandardFacades), 21 $(DependsOnNETStandard) and 22 $(NETStandardInbox) 23 24 and is enabled only for '$(TargetFrameworkIdentifier)' == '.NETFramework'. 25 26 Default: 27 - Run this only for .net framework projects 4.6.1 - 4.7, which have any references depending on netstandard 28 --> 29 <Target 30 Name="FilterDeniedAssemblyReferences" 31 BeforeTargets="ResolveAssemblyReferences" 32 Condition="'$(FilterDeniedAssemblies)' == 'true' 33 or ('$(EnableFilteringDeniedAssembliesForNet46xProjects)' != 'false' and '$(FilterDeniedAssemblies)' == '' 34 and '$(TargetFrameworkIdentifier)' == '.NETFramework' and '$(ImplicitlyExpandNETStandardFacades)' == 'true' 35 and '$(DependsOnNETStandard)' == 'true' AND '$(NETStandardInbox)' != 'true' AND '$(_TargetFrameworkVersionWithoutV)' < '4.7.1')"> 36 37 <FilterDeniedAssemblies References="@(Reference)" SearchPaths="$(TargetFrameworkDirectory);$(DesignTimeFacadeDirectories)"> 38 <Output TaskParameter="DeniedReferencesThatCouldNotBeFixed" ItemName="DeniedReferencesThatCouldNotBeFixed" /> 39 <Output TaskParameter="FilteredReferences" ItemName="FilteredReferences" /> 40 </FilterDeniedAssemblies> 41 42 <ItemGroup> 43 <Reference Remove="@(Reference)" /> 44 <Reference Include="@(FilteredReferences)" /> 45 </ItemGroup> 46 </Target> 47 48</Project> 49