Skip to content
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
3 changes: 3 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
<Project>
<PropertyGroup>
<RepositoryName>wpf</RepositoryName>
</PropertyGroup>
<!-- Normalize $(TestWpfArcadeSdkPath) by appending a '\' to it if one is missing -->
<PropertyGroup Condition="'$(TestWpfArcadeSdkPath)'!=''">
<WpfArcadeSdkPath>$(TestWpfArcadeSdkPath)</WpfArcadeSdkPath>
Expand Down
313 changes: 313 additions & 0 deletions Microsoft.Dotnet.Wpf.sln

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<add key="myget-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="dotnet-wd" value="https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json" />
<add key="aspnet-core" value="https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore/index.json" />
<!--
Add additional paths here
For e.g., if you want to test a locally build nuget package, you can add it like this:
Expand Down
10 changes: 2 additions & 8 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,13 @@
# Parameters ARE available in template expressions, and parameters can have default values,
# so they can be used to control yaml flow.
#
# TODO:
# BuildMsBuildSdkPackages, _BuildMsBuildSdkPackages, _BuildMsBuildSdkPackagesArgs should be removed eventually, when
# Microsoft.DotNet.Arcade.Wpf.Sdk is moved from dnceng/dotnet-wpf-int to github/dotnet/wpf.
# When that move happens, there would be no need to suppress the Sdk build by default. Currently,
# allowing the Sdk to build every time will result in an infinite loop that triggers a dotnet/wpf built,

variables:

# clean the local repo on the build agents
Build.Repository.Clean: true
# When set to true in a manual built, it produces and publishes
# Microsoft.DotNet.Arcade.Wpf.Sdk
BuildMsBuildSdkPackages: false


_PublishUsingPipelines: true
_DotNetArtifactsCategory: WINDOWSDESKTOP

Expand Down
4 changes: 4 additions & 0 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -79,5 +79,9 @@
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-wpf-int</Uri>
<Sha>9d4340c064627887a27dff7681367124823fffd8</Sha>
</Dependency>
<Dependency Name="System.IO.Packaging" Version="4.6.0-preview6.19270.2" CoherentParentDependency="Microsoft.NETCore.App">
<Uri>https://github.com/dotnet/corefx</Uri>
<Sha>189766719a059512a515d488efc5c65c7abf0650</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>
5 changes: 4 additions & 1 deletion eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<VersionPrefix>4.8.0</VersionPrefix>
<PreReleaseVersionLabel>preview6</PreReleaseVersionLabel>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<SystemIOPackagingVersion>4.6.0-preview6.19264.8</SystemIOPackagingVersion>
<SystemIOPackagingVersion>4.6.0-preview6.19270.2</SystemIOPackagingVersion>
</PropertyGroup>
<!-- NuGet Package Versions -->
<PropertyGroup>
Expand Down Expand Up @@ -57,6 +57,7 @@
<RestoreSources>
$(RestoreSources);
https://dotnet.myget.org/F/dotnet-corefxlab/api/v3/index.json;
https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json
</RestoreSources>
</PropertyGroup>
Expand All @@ -67,6 +68,8 @@
<SystemDrawingCommonPackage>System.Drawing.Common</SystemDrawingCommonPackage>
<SystemDirectoryServicesPackage>System.DirectoryServices</SystemDirectoryServicesPackage>
<MicrosoftDotNetWpfDncEngPackage>Microsoft.DotNet.Wpf.DncEng</MicrosoftDotNetWpfDncEngPackage>
<SystemIOPackagingPackage>System.IO.Packaging</SystemIOPackagingPackage>
<SystemReflectionMetadataLoadContextPackage>System.Reflection.MetadataLoadContext</SystemReflectionMetadataLoadContextPackage>
</PropertyGroup>
<!--
This is a toolset dependency added for use *only* by tests
Expand Down
8 changes: 5 additions & 3 deletions eng/WpfArcadeSdk/Sdk/Sdk.props
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@

<PropertyGroup>
<GenXmlStringTable>$(WpfArcadeSdkToolsDir)GenXmlStringTable.pl</GenXmlStringTable>

<PublishWindowsPdb Condition="'$(IsShipping)'=='' And '$(IsPackagingProject)'!='true'">true</PublishWindowsPdb>

<LangVersion Condition="'$(LangVersion)'==''">8.0</LangVersion>
<CLSCompliant Condition="'$(CLSCompliant)'==''">true</CLSCompliant>
<IncludeDllSafeSearchPathAttribute Condition="'$(IncludeDllSafeSearchPathAttribute )'==''">true</IncludeDllSafeSearchPathAttribute>
Expand Down Expand Up @@ -57,6 +54,11 @@
https://github.com/dotnet/arcade/issues/2304
-->
<NoWarn>$(NoWarn);NU3027</NoWarn>

<!--
Suppress NU1605 (Package downgrade warnings) when building inside Visual Studio
-->
<NoWarn Condition="'$(BuildingInsideVisualStudio)'=='true'">$(NoWarn);NU1605</NoWarn>
</PropertyGroup>

<!-- When an Sdk-style project sets NoTargets=true, it will produce no assemblies -->
Expand Down
1 change: 1 addition & 0 deletions eng/WpfArcadeSdk/Sdk/Sdk.targets
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<Import Project="$(WpfArcadeSdkToolsDir)Signing.targets" />

<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" />
<Import Project="$(WpfArcadeSdkToolsDir)FolderPaths.targets"/>
<Import Project="$(WpfArcadeSdkToolsDir)RuntimeFrameworkReference.targets"/>
<Import Project="$(WpfArcadeSdkToolsDir)InlineTasks.targets" />
<Import Project="$(WpfArcadeSdkToolsDir)ShippingProjects.targets" />
Expand Down
4 changes: 3 additions & 1 deletion eng/WpfArcadeSdk/tools/FolderPaths.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<PropertyGroup>
<WpfCycleBreakersDir>$(RepoRoot)src\Microsoft.DotNet.Wpf\cycle-breakers\</WpfCycleBreakersDir>
<WpfSourceDir>$(RepoRoot)src\Microsoft.DotNet.Wpf\src\</WpfSourceDir>
<WpfSharedDir>$(WpfSourceDir)shared\</WpfSharedDir>
<WpfGraphicsPath>$(WpfSourceDir)WpfGfx\</WpfGraphicsPath>
<WpfGraphicsDir>$(WpfGraphicsPath)</WpfGraphicsDir>
<WpfPresentationNativeDir>$(WpfSourceDir)PresentationNative\</WpfPresentationNativeDir>
</PropertyGroup>
</Project>
20 changes: 20 additions & 0 deletions eng/WpfArcadeSdk/tools/FolderPaths.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<Project>
<PropertyGroup>
<!-- $(WpfSharedDir) is present in the current repository -->
<WpfSharedDir Condition="Exists('$(WpfSourceDir)shared\') And '$(RepositoryName)'!='dotnet-wpf-int'">$(WpfSourceDir)shared\</WpfSharedDir>
<!-- Consume from NuGet cache -->
<WpfSharedDir Condition="'$(WpfSharedDir)'=='' And Exists('$(WpfArcadeSdkRoot)src\shared\')">$(WpfArcadeSdkRoot)src\shared\</WpfSharedDir>
<!-- Consume from $(WpfTestArcadeWpfSdkPath) -->
<WpfSharedDir Condition="'$(WpfSharedDir)'=='' And Exists('$(WpfArcadeSdkRoot)..\..\src\Microsoft.DotNet.Wpf\src\Shared\')">$(WpfArcadeSdkRoot)..\..\src\Microsoft.DotNet.Wpf\src\Shared\</WpfSharedDir>

<!-- $(WpfCommonDir) is present in the current repository -->
<WpfCommonDir Condition="Exists('$(WpfSourceDir)Common\') And '$(RepositoryName)'!='dotnet-wpf-int'">$(WpfSourceDir)Common\</WpfCommonDir>
<!-- Consume from NuGet cache -->
<WpfCommonDir Condition="'$(WpfCommonDir)'=='' And Exists('$(WpfArcadeSdkRoot)src\Common\')">$(WpfArcadeSdkRoot)src\Common\</WpfCommonDir>
<!-- Consume from $(WpfTestArcadeWpfSdkPath) -->
<WpfCommonDir Condition="'$(WpfCommonDir)'=='' And Exists('$(WpfArcadeSdkRoot)..\..\src\Microsoft.DotNet.Wpf\src\Common\')">$(WpfArcadeSdkRoot)..\..\src\Microsoft.DotNet.Wpf\src\Common\</WpfCommonDir>


<WpfTracingDir>$(WpfSharedDir)Tracing\</WpfTracingDir>
</PropertyGroup>
</Project>
18 changes: 13 additions & 5 deletions eng/WpfArcadeSdk/tools/SdkReferences.targets
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,9 @@
-->
<ItemGroup>
<Reference Include="$(PkgMicrosoft_NETCore_App)\ref\$(TargetFramework)\%(NetCoreReference.Identity).dll"
Condition="Exists('$(PkgMicrosoft_NETCore_App)\ref\$(TargetFramework)\%(NetCoreReference.Identity).dll')" />
Condition="Exists('$(PkgMicrosoft_NETCore_App)\ref\$(TargetFramework)\%(NetCoreReference.Identity).dll')" >
<NuGetPackageId>Microsoft.NetCore.App</NuGetPackageId>
</Reference>
</ItemGroup>
</Target>

Expand Down Expand Up @@ -102,7 +104,7 @@

<Target Name="ResolveMicrosoftWindowsDesktopAppReferences"
Returns="@(Reference)"
Condition="'$(PkgMicrosoft_WindowsDesktop_App)'!='' And '@(WindowsDesktopAppeference)'!='' and $(TargetFramework.StartsWith('netcoreapp3')) and '$(DoNotLimitWindowsDesktopAppReferences)'!='true'">
Condition="'$(PkgMicrosoft_WindowsDesktop_App)'!='' And '@(WindowsDesktopAppReference)'!='' and $(TargetFramework.StartsWith('netcoreapp3')) and '$(DoNotLimitWindowsDesktopAppReferences)'!='true'">
<!--
In your project, Add a references to assemblies from Microsoft.NETCore.App like this
<ItemGroup>
Expand All @@ -112,7 +114,9 @@
-->
<ItemGroup>
<Reference Include="$(PkgMicrosoft_WindowsDesktop_App)\ref\$(TargetFramework)\%(NetCoreReference.Identity).dll"
Condition="Exists('$(PkgMicrosoft_WindowsDesktop_App)\ref\$(TargetFramework)\%(NetCoreReference.Identity).dll')" />
Condition="Exists('$(PkgMicrosoft_WindowsDesktop_App)\ref\$(TargetFramework)\%(NetCoreReference.Identity).dll')">
<NuGetPackageId>Microsoft.WindowsDesktop.App</NuGetPackageId>
</Reference>
</ItemGroup>
</Target>

Expand Down Expand Up @@ -170,7 +174,9 @@
-->
<ItemGroup>
<Reference Include="$(PkgMicrosoft_DotNet_Wpf_GitHub)\ref\$(TargetFramework)\%(MicrosoftDotNetWpfGitHubReference.Identity).dll"
Condition="Exists('$(PkgMicrosoft_DotNet_Wpf_GitHub)\ref\$(TargetFramework)\%(MicrosoftDotNetWpfGitHubReference.Identity).dll')"/>
Condition="Exists('$(PkgMicrosoft_DotNet_Wpf_GitHub)\ref\$(TargetFramework)\%(MicrosoftDotNetWpfGitHubReference.Identity).dll')">
<NuGetPackageId>Microsoft.DotNet.Wpf.GitHub</NuGetPackageId>
</Reference>
</ItemGroup>
</Target>

Expand All @@ -190,7 +196,9 @@
Condition="'@(MicrosoftPrivateWinFormsReference)'!='' And $(TargetFramework.StartsWith('netcoreapp3'))">
<ItemGroup>
<Reference Include="$(PkgMicrosoft_Private_Winforms)\ref\$(TargetFramework)\%(MicrosoftPrivateWinFormsReference.Identity).dll"
Condition="Exists('$(PkgMicrosoft_Private_Winforms)\ref\$(TargetFramework)\%(MicrosoftPrivateWinFormsReference.Identity).dll')"/>
Condition="Exists('$(PkgMicrosoft_Private_Winforms)\ref\$(TargetFramework)\%(MicrosoftPrivateWinFormsReference.Identity).dll')">
<NuGetPackageId>Microsoft.Private.Winforms</NuGetPackageId>
</Reference>
</ItemGroup>
</Target>
</Project>
22 changes: 11 additions & 11 deletions eng/WpfArcadeSdk/tools/ShippingProjects.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,36 @@
<PropertyGroup>
<ExternalShippingProjects>
System.Xaml;
PresentationBuildTasks
</ExternalShippingProjects>

<InternalShippingProjects>
PresentationBuildTasks;
PresentationCore;
DirectWriteForwarder;
PresentationCore-CommonResources;
PresentationFramework;
ReachFramework;
UIAutomationClient;
UIAutomationClientSideProviders;
UIAutomationProvider;
UIAutomationTypes;
WindowsBase;
System.Windows.Input.Manipulations;
</ExternalShippingProjects>

<InternalShippingProjects>
PresentationFramework-SystemCore;
PresentationFramework-SystemData;
PresentationFramework-SystemDrawing;
PresentationFramework-SystemXml;
PresentationFramework-SystemXmlLinq;
PresentationUI;
ReachFramework;
System.Printing;
System.Windows.Controls.Ribbon;
System.Windows.Input.Manipulations;
System.Windows.Presentation;
PresentationFramework.Aero;
PresentationFramework.Aero2;
PresentationFramework.AeroLite;
PresentationFramework.Classic;
PresentationFramework.Luna;
PresentationFramework.Royale;
UIAutomationClient;
UIAutomationClientSideProviders;
UIAutomationProvider;
UIAutomationTypes;
WindowsBase;
WindowsFormsIntegration;
PenImc;
PresentationNative;
Expand Down
2 changes: 2 additions & 0 deletions eng/WpfArcadeSdk/tools/ShippingProjects.targets
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,7 @@
<ExcludeRefAssemblies Condition="'$(PackageName)'=='$(WindowsDesktopSdkPackageName)'">true</ExcludeRefAssemblies>
<ExcludePdbs Condition="'$(PackageName)'=='$(WindowsDesktopSdkPackageName)'">true</ExcludePdbs>
<IncludeAssembliesInArchNeutralPackage Condition="'$(PackageName)'=='$(WindowsDesktopSdkPackageName)'">true</IncludeAssembliesInArchNeutralPackage>
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<PublishWindowsPdb Condition="'$(IsShipping)'=='true' And '$(IsPackagingProject)'!='true'">true</PublishWindowsPdb>
</PropertyGroup>
</Project>
118 changes: 111 additions & 7 deletions eng/WpfArcadeSdk/tools/TestProjects.targets
Original file line number Diff line number Diff line change
@@ -1,27 +1,131 @@
<Project>
<PropertyGroup Condition="'$(WpfTest)'=='true'">
<PropertyGroup Condition="'$(WpfTest)'=='true' Or '$(IsTestProject)'=='true'">
<RuntimeIdentifier Condition="('$(Platform)'!='AnyCPU' and '$(Platform)'!='Win32') Or $(Platform.EndsWith('64'))">win-$(Platform)</RuntimeIdentifier>
<RuntimeIdentifier Condition="'$(Platform)'=='AnyCPU' or '$(Platform)'=='Win32' or '$(Platform)'=='x86'">win-x86</RuntimeIdentifier>
</PropertyGroup>
<!-- Arcade SDK defaults to AnyCpu ~= x64. In WPF, we will map AnyCpu => x86 instead -->
<PropertyGroup Condition="'$(IsTestProject)' == 'true' or '$(WpfTest)'=='true'">
<TestArchitectures Condition="'$(PlatformTarget)' == '' or '$(PlatformTarget)' == 'AnyCpu'">x86</TestArchitectures>
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<IsSelfContained>true</IsSelfContained>
</PropertyGroup>

<ItemGroup Condition="'$(WpfTest)'=='true'">
<PackageReference Include="runtime.$(RuntimeIdentifier).$(MicrosoftDotNetWpfDncEngPackage)"

<ItemGroup Condition="'$(IsTestProject)' == 'true' or '$(WpfTest)'=='true'">
<!--
Only reference Microsoft.DotNet.Wpf.DncEng when building tests in dotnet/wpf
This references is not needed when building tests in dotnet-wpf-int
-->
<PackageReference Include="runtime.$(RuntimeIdentifier).$(MicrosoftDotNetWpfDncEngPackage)"
Condition="'$(RepositoryName)'=='wpf'"
Version="$(MicrosoftDotNetWpfDncEngVersion)">
<CopyLocal>true</CopyLocal>
<GeneratePathProperty>true</GeneratePathProperty>
</PackageReference>

<!--
PackageReference from individual WPF projects here
-->
<PackageReference Include="$(SystemIOPackagingPackage)" Version="$(SystemIOPackagingVersion)" CopyLocal="true" />
<PackageReference Include="Microsoft.Win32.Registry" Version="$(MicrosoftWin32RegistryPackageVersion)" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="$(SystemConfigurationConfigurationManagerPackageVersion)" CopyLocal="true" />
<PackageReference Include="System.Diagnostics.EventLog" Version="$(SystemDiagnosticsEventLogPackageVersion)" CopyLocal="true" />
<PackageReference Include="System.Security.Cryptography.Xml" Version="$(SystemSecurityCryptographyXmlPackageVersion)" CopyLocal="true" />
<PackageReference Include="System.Security.Permissions" Version="$(SystemSecurityPermissionsPackageVersion)" CopyLocal="true" />
<PackageReference Include="System.Windows.Extensions" Version="$(SystemWindowsExtensionsPackageVersion)" CopyLocal="true" />

<PackageReference Include="System.Security.AccessControl" Version="$(SystemSecurityAccessControlPackageVersion)" CopyLocal="true" />
<PackageReference Include="System.Security.Principal.Windows" Version="$(SystemSecurityPrincipalWindowsPackageVersion)" CopyLocal="true" />



<!-- These exist to ensure that dependencies (esp. native ones) are binplaced with tests correctly -->
<None Condition="'$(RuntimeIdentifier)'=='win-x64'"
Include="$(Pkgruntime_win-x64_Microsoft_DotNet_Wpf_DncEng)\runtimes\$(RuntimeIdentifier)\native\*.dll"
<None Condition="'$(RuntimeIdentifier)'=='win-x64'"
Include="$(Pkgruntime_win-x64_Microsoft_DotNet_Wpf_DncEng)\runtimes\$(RuntimeIdentifier)\native\*.dll"
CopyToOutputDirectory="PreserveNewest"/>
<None Condition="'$(RuntimeIdentifier)'=='win-x86'"
Include="$(Pkgruntime_win-x86_Microsoft_DotNet_Wpf_DncEng)\runtimes\$(RuntimeIdentifier)\native\*.dll"
Include="$(Pkgruntime_win-x86_Microsoft_DotNet_Wpf_DncEng)\runtimes\$(RuntimeIdentifier)\native\*.dll"
CopyToOutputDirectory="PreserveNewest"/>

<_wpfProjectsNotWindowsBase Include="@(WpfProjectPath)" Exclude="WindowsBase" />
<_wpfProjectsWindowsBase Include="@(WpfProjectPath)" Exclude="@(_wpfProjectsWindowsBase)" />

<!--
Do not include WindowsBase. There is a bug in the SDK that will prevent proper deps.json generation when WindowsBase.csproj
and Microsoft.NetCore.App/WindowsBase.dll clash. Part of the problem is due to https://github.com/dotnet/sdk/issues/2674.
Directly referencing DLL's works correctly and generates good deps.json. So instead of reference WindowsBase.csproj, just
obtain the raw path to WindowsBase.dll and add it to @(Reference). This is safe to do since
WindowsBase will be built as a transitive reference via PresentationCore, PresentationFramework etc.
Also make sure that Microsoft.NetCore.App/WindowsBase.dll is removed from @(Reference).
-->
<ProjectReference Include="@(_wpfProjectsNotWindowsBase->'%(ProjectPath)')" >
<Private>True</Private>
<OutputItemType>_wpfProjectReferenceLocallyBuildAssemblies</OutputItemType>
</ProjectReference>

<ProjectReference Include="@(_wpfProjectsWindowsBase->'%(ProjectPath)')" >
<Private>True</Private>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<OutputItemType>_windowsBaseAssemblyLocallyBuiltPath</OutputItemType>
</ProjectReference>
</ItemGroup>

<PropertyGroup Condition="'$(WpfTest)'=='true' or '$(IsTestProject)'=='true'">
<ResolveAssemblyReferencesDependsOn>
AddWindowsBaseToReferences;
$(ResolveAssemblyReferencesDependsOn)
</ResolveAssemblyReferencesDependsOn>
</PropertyGroup>

<Target Name="AddWindowsBaseToReferences">
<ItemGroup>
<Reference Include="%(_windowsBaseAssemblyLocallyBuiltPath.FullPath)" />
</ItemGroup>
</Target>

<Target Name="RemoveWindowsBaseNetCoreAppReference"
AfterTargets="ResolveTargetingPacks"
Returns="@(Reference)"
Condition="'$(WpfTest)'=='true' or '$(IsTestProject)'=='true'">
<ItemGroup>
<Reference Remove="@(Reference)" Condition="'%(FileName)'=='WindowsBase' and '%(Reference.ResolvedFrom)'=='TargetingPack'" />
</ItemGroup>
</Target>

<!--
This target ensures that Microsoft.DotNet.Wpf.DncEng would not inadvertently over-supply references that
are already satisfied by ProjectReference's from within this repo. This should almost never happen, except
when $(MicrosoftDotNetWpfDncEngVersion) is set to something really old (something that was built <= 05/22/2019)
-->
<Target
Name="LimitMicrosoftDotNetDncEngReferences"
AfterTargets="ResolveTargetingPacks"
Returns="@(Reference)"
Condition="'$(WpfTest)'=='true' or '$(IsTestProject)'=='true'">

<ItemGroup>
<_microsoftDotNetDncEngRefs Remove="@(_microsoftDotNetDncEngRefs)" />
<_microsoftDotNetDncEngRefs Include="@(Reference)"
Condition="'%(Reference.NuGetPackageId)'=='runtime.$(RuntimeIdentifier).Microsoft.DotNet.Wpf.DncEng'">
<OriginalPath>%(Reference.Identity)</OriginalPath>
</_microsoftDotNetDncEngRefs>
</ItemGroup>

<ItemGroup>
<_microsoftDotNetDncEngReferences Remove="@(_microsoftDotNetDncEngReferences)" />
</ItemGroup>
<FilterItem1ByItem2 Item1="@(_microsoftDotNetDncEngRefs->'%(FileName)')"
Item2="@(_wpfProjectReferenceLocallyBuildAssemblies->'%(FileName)')"
Metadata2="Identity"
PreserveItem1Metadata="true">
<Output ItemName="_microsoftDotNetDncEngReferencesToAvoid" TaskParameter="Result" />
</FilterItem1ByItem2>

<ItemGroup>
<Reference Remove="@(_microsoftDotNetDncEngReferencesToAvoid->'%(OriginalPath)')"/>
</ItemGroup>
</Target>

</Project>
Loading