Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable xunit testing in VS with the dispatcher #10023

Merged
merged 18 commits into from
Nov 11, 2024
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@ insert_final_newline = true
indent_style = space
indent_size = 4

[project.json]
[*.json]
indent_size = 2

# C# files
[*.cs]
file_header_template = Licensed to the .NET Foundation under one or more agreements.\nThe .NET Foundation licenses this file to you under the MIT license.

# New line preferences
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
Expand Down
1,924 changes: 758 additions & 1,166 deletions Microsoft.Dotnet.Wpf.sln

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
<SystemSecurityCryptographyXmlPackageVersion>10.0.0-alpha.1.24560.1</SystemSecurityCryptographyXmlPackageVersion>
<SystemSecurityPermissionsPackageVersion>10.0.0-alpha.1.24560.1</SystemSecurityPermissionsPackageVersion>
<SystemWindowsExtensionsPackageVersion>10.0.0-alpha.1.24560.1</SystemWindowsExtensionsPackageVersion>
<SystemRuntimeCompilerServicesUnsafePackageVersion>6.0.0</SystemRuntimeCompilerServicesUnsafePackageVersion>
JeremyKuhne marked this conversation as resolved.
Show resolved Hide resolved
</PropertyGroup>
<!-- Docs / Intellisense -->
<PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion eng/WpfArcadeSdk/Sdk/Sdk.props
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
-->
<WpfRuntimeIdentifier Condition="('$(Platform)'!='AnyCPU' and '$(Platform)'!='Win32') Or $(Platform.EndsWith('x64'))">win-$(Platform)</WpfRuntimeIdentifier>
<WpfRuntimeIdentifier Condition="'$(Platform)'=='AnyCPU' or '$(Platform)'=='Win32' or '$(Platform)'=='x86'">win-x86</WpfRuntimeIdentifier>
<WpfRuntimeIdentifier Condition="'$(Platform)'=='ARM64'">win-arm64</WpfRuntimeIdentifier>
<WpfRuntimeIdentifier Condition="'$(Platform)'=='arm64'">win-arm64</WpfRuntimeIdentifier>
</PropertyGroup>

<Import Project="$(WpfArcadeSdkToolsDir)RuntimeFrameworkReference.props"/>
Expand Down
9 changes: 1 addition & 8 deletions eng/WpfArcadeSdk/tools/ApiCompat.targets
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,7 @@
<ResolvedMatchingContract Include="$(OutputPath)$(AssemblyName).dll" Condition="'$(ManagedCxx)'=='true'" />
<!-- Work backwards to find the output for a hand-crafted ref assembly. -->
<ResolvedImplementationAssembly Remove="@(ResolvedImplementationAssembly)" />
<ResolvedImplementationAssembly Include="$(BaseOutputPath)..\$(AssemblyName)-ref\$(Platform)\$(Configuration)\**\$(AssemblyName).dll"
Condition="'$(WpfRuntimeIdentifier)'=='win-x64' or '$(WpfRuntimeIdentifier)'=='win-arm64'"/>
<ResolvedImplementationAssembly Include="$(BaseOutputPath)..\$(AssemblyName)-ref\$(Configuration)\**\$(AssemblyName).dll"
Condition="'$(WpfRuntimeIdentifier)'=='win-x86'"/>
<!-- If building a single project, Platform is used in win-x86. Below handles this case. -->
<ResolvedImplementationAssembly Include="$(BaseOutputPath)..\$(AssemblyName)-ref\$(Platform)\$(Configuration)\**\$(AssemblyName).dll"
Condition="'$(WpfRuntimeIdentifier)'=='win-x86' and @(ResolvedImplementationAssembly->Count()) == 0"/>

<ResolvedImplementationAssembly Include="$(BaseOutputPath)..\$(AssemblyName)-ref\$(Configuration)\**\$(AssemblyName).dll" />
<Error Condition="@(ResolvedImplementationAssembly->Count()) &gt; 1" Text="More than one reference assembly was added to ResolvedImplementationAssembly!" />
</ItemGroup>
</Target>
Expand Down
32 changes: 1 addition & 31 deletions eng/WpfArcadeSdk/tools/FixupProjectReferences.targets
Original file line number Diff line number Diff line change
@@ -1,34 +1,4 @@
<Project>
<!-- This workaround fixes an issue with ResolveAssemblyReferences task where it
removes a reference to *project* WindowsBase.dll because *sdk reference*
WindowsBase.dll exists in the list of references it resolves. -->
<Target Name="FixupProjectReferences" AfterTargets="ResolveAssemblyReferences">
<CallTarget Targets="ResolveProjectReferences" />
<ItemGroup>
<ReferencePath Remove="@(_ResolvedNativeProjectReferencePaths)" />
<ReferencePath Include="@(_ResolvedNativeProjectReferencePaths)" />

<ReferencePath Remove="@(_ResolvedProjectReferencePaths)" />
<ReferencePath Include="@(_ResolvedProjectReferencePaths)" />
</ItemGroup>
<ItemGroup>
<FilteredReferencePath Remove="@(FilteredReferencePath)" />
</ItemGroup>
<RemoveDuplicates Inputs="@(ReferencePath)">
<Output TaskParameter="Filtered" ItemName="FilteredReferencePath"/>
</RemoveDuplicates>
<ItemGroup>
<ReferencePath Remove="@(ReferencePath)" />
<ReferencePath Include="@(FilteredReferencePath)" />
</ItemGroup>
<RemoveDuplicates Inputs="@(ProjectReference)">
<Output TaskParameter="Filtered" ItemName="FilteredProjectReference"/>
</RemoveDuplicates>
<ItemGroup>
<ProjectReference Remove="@(ProjectReference)" />
<ProjectReference Include="@(FilteredProjectReference)" />
</ItemGroup>
</Target>
<Target Name="DeDuplicateProjectReferenceWithConfiguration" AfterTargets="AssignProjectConfiguration">
<RemoveDuplicates Inputs="@(ProjectReferenceWithConfiguration)">
<Output TaskParameter="Filtered" ItemName="_filteredProjectReferenceWithConfiguration"/>
Expand All @@ -45,4 +15,4 @@
<_ProjectReferenceWithConfiguration Include="@(_filtered_ProjectReferenceWithConfiguration)" />
</ItemGroup>
</Target>
</Project>
</Project>
23 changes: 11 additions & 12 deletions eng/WpfArcadeSdk/tools/SdkReferences.targets
Original file line number Diff line number Diff line change
Expand Up @@ -112,18 +112,18 @@
Condition="'@(MicrosoftPrivateWinFormsReference)'!=''
And '$(TargetFrameworkIdentifier)' == '.NETCoreApp'
And $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '3.0')) ">
<PropertyGroup>
<!-- Use the current TargetFramework if not otherwise specified for WinForms private package -->
<_WinFormsTargetFrameworkVersion Condition="'$(_WinFormsTargetFrameworkVersion)' == ''">$(TargetFramework)</_WinFormsTargetFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="$(PkgMicrosoft_Private_Winforms)\ref\$(TargetFramework)\%(MicrosoftPrivateWinFormsReference.Identity).dll"
Condition="Exists('$(PkgMicrosoft_Private_Winforms)\ref\$(TargetFramework)\%(MicrosoftPrivateWinFormsReference.Identity).dll')">
<NuGetPackageId>Microsoft.Private.Winforms</NuGetPackageId>
</Reference>
<Reference Include="$(PkgMicrosoft_Private_Winforms)\ref\net8.0\%(MicrosoftPrivateWinFormsReference.Identity).dll"
Condition="!Exists('$(PkgMicrosoft_Private_Winforms)\ref\$(TargetFramework)\%(MicrosoftPrivateWinFormsReference.Identity).dll')
And $(TargetFramework) == 'net9.0'
And Exists('$(PkgMicrosoft_Private_Winforms)\ref\net8.0\%(MicrosoftPrivateWinFormsReference.Identity).dll')">
<Reference Include="$(PkgMicrosoft_Private_Winforms)\lib\$(_WinFormsTargetFrameworkVersion)\%(MicrosoftPrivateWinFormsReference.Identity).dll"
JeremyKuhne marked this conversation as resolved.
Show resolved Hide resolved
Condition="Exists('$(PkgMicrosoft_Private_Winforms)\lib\$(_WinFormsTargetFrameworkVersion)\%(MicrosoftPrivateWinFormsReference.Identity).dll')">
<NuGetPackageId>Microsoft.Private.Winforms</NuGetPackageId>
</Reference>
</ItemGroup>
<Error Condition="!Exists('$(PkgMicrosoft_Private_Winforms)\lib\$(_WinFormsTargetFrameworkVersion)\%(MicrosoftPrivateWinFormsReference.Identity).dll')"
Text="$(PkgMicrosoft_Private_Winforms)\lib\$(_WinFormsTargetFrameworkVersion)\%(MicrosoftPrivateWinFormsReference.Identity).dll could not be found."/>
</Target>

<ItemGroup>
Expand All @@ -141,17 +141,16 @@
-->
<Target Name="FilterImplicitAssemblyReferences"
Condition="'@(DefaultReferenceExclusion)' != ''"
DependsOnTargets="ResolveProjectReferences"
AfterTargets="ResolveTargetingPackAssets">
AfterTargets="ResolveTargetingPackAssets"
BeforeTargets="_HandlePackageFileConflicts;ResolveAssemblyReferences">
<ItemGroup>
<_referenceExclusion Include="@(DefaultReferenceExclusion)">
<AssemblyName>%(DefaultReferenceExclusion.Identity)</AssemblyName>
<FrameworkReferenceName>Microsoft.NETCore.App</FrameworkReferenceName>
<ExternallyResolved>true</ExternallyResolved>
</_referenceExclusion>

<Reference Remove="@(_referenceExclusion)"
MatchOnMetadata="AssemblyName;FrameworkReferenceName;ExternallyResolved"/>
MatchOnMetadata="AssemblyName;ExternallyResolved"/>
</ItemGroup>
</Target>
</Project>
51 changes: 3 additions & 48 deletions eng/WpfArcadeSdk/tools/TestProjects.targets
Original file line number Diff line number Diff line change
Expand Up @@ -35,71 +35,26 @@
<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' And '$(Configuration)' != 'Debug'"
Include="$(Pkgruntime_win-x64_Microsoft_DotNet_Wpf_DncEng)\runtimes\$(RuntimeIdentifier)\native\*.dll"
CopyToOutputDirectory="PreserveNewest"/>
<None Condition="'$(RuntimeIdentifier)'=='win-x64' And '$(Configuration)' == 'Debug'"
Include="$(Pkgruntime_win-x64_Microsoft_DotNet_Wpf_DncEng_Debug)\runtimes\$(RuntimeIdentifier)\native\*.dll"
CopyToOutputDirectory="PreserveNewest"/>



<None Condition="'$(RuntimeIdentifier)'=='win-x86' And '$(Configuration)' != 'Debug'"
Include="$(Pkgruntime_win-x86_Microsoft_DotNet_Wpf_DncEng)\runtimes\$(RuntimeIdentifier)\native\*.dll"
CopyToOutputDirectory="PreserveNewest"/>
<None Condition="'$(RuntimeIdentifier)'=='win-x86' And '$(Configuration)' == 'Debug'"
Include="$(Pkgruntime_win-x86_Microsoft_DotNet_Wpf_DncEng_Debug)\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)')" >
<ProjectReference Include="@(WpfProjectPath->'%(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
Expand All @@ -110,7 +65,7 @@
AfterTargets="ResolveTargetingPacks"
Returns="@(Reference)"
Condition="'$(WpfTest)'=='true' or '$(IsTestProject)'=='true'">

<ItemGroup>
<_microsoftDotNetDncEngRefs Remove="@(_microsoftDotNetDncEngRefs)" />
<_microsoftDotNetDncEngRefs Include="@(Reference)"
Expand Down
4 changes: 2 additions & 2 deletions eng/WpfArcadeSdk/tools/Wpf.Cpp.props
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
<Architecture Condition="'$(Architecture)'==''">x64</Architecture>

<!-- This should always use either x86 or x64 -->
<TraceWppArchitecture Condition="'$(Architecture)'=='ARM64'">x64</TraceWppArchitecture>
<TraceWppArchitecture Condition="'$(Architecture)'!='ARM64'">$(Architecture)</TraceWppArchitecture>
<TraceWppArchitecture Condition="'$(Architecture)'=='arm64'">x64</TraceWppArchitecture>
<TraceWppArchitecture Condition="'$(Architecture)'!='arm64'">$(Architecture)</TraceWppArchitecture>
<TraceWpp>$(Windows10SdkPath)bin\$(WindowsTargetPlatformVersion)\$(TraceWppArchitecture)\tracewpp.exe</TraceWpp>

<GenerateAssemblyInfo>$(ManagedCxx)</GenerateAssemblyInfo>
Expand Down
Empty file modified eng/common/tools.sh
100755 → 100644
Empty file.
13 changes: 7 additions & 6 deletions eng/pipeline-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
- name: _HelixCreator
value: ${{ parameters.repoName }}
- name: _programfilesx86
value: ${Env:ProgramFiles(x86)}/dotnet
value: ${Env:ProgramFiles(x86)}/dotnet
- name: _programfiles
value: ${Env:ProgramFiles}/dotnet
- ${{ if ne(variables['System.TeamProject'], 'internal') }}:
Expand Down Expand Up @@ -167,13 +167,14 @@ jobs:

# Use utility script to run script command dependent on agent OS.
- script: eng\scripts\cibuild.cmd
-configuration $(_BuildConfig)
-configuration $(_BuildConfig)
-prepareMachine
$(_PublishArgs)
$(_SignArgs)
$(_OfficialBuildIdArgs)
$(_PlatformArgs)
$(_InternalRuntimeDownloadArgs)
/bl:$(Build.SourcesDirectory)\artifacts\log\$(_BuildConfig)\BuildSrc-$(_Platform).binlog
JeremyKuhne marked this conversation as resolved.
Show resolved Hide resolved
displayName: Windows Build / Publish
# This condition should be kept in sync with the condition for 'Run DRTs' step
# When building on a regular pipeline (!_HelixPipeline), build as usual
Expand All @@ -183,26 +184,26 @@ jobs:
condition: or(ne(variables['_HelixPipeline'], 'true'), and(eq(variables['_HelixPipeline'], 'true') ,eq(variables['_BuildConfig'], 'Release'), eq(variables['_PublicBuildPipeline'], 'true'), eq(variables['_ContinuousIntegrationTestsEnabled'], 'true')))

- script: eng\scripts\ciunittest.cmd
-configuration $(_BuildConfig)
-configuration $(_BuildConfig)
-prepareMachine
$(_PublishArgs)
$(_SignArgs)
$(_OfficialBuildIdArgs)
$(_PlatformArgs)
$(_InternalRuntimeDownloadArgs)
/bl:$(Build.SourcesDirectory)\artifacts\log\$(_BuildConfig)\Test.binlog
/bl:$(Build.SourcesDirectory)\artifacts\log\$(_BuildConfig)\Test-$(_Platform).binlog
JeremyKuhne marked this conversation as resolved.
Show resolved Hide resolved
displayName: Run xUnit Tests
condition: and(or(ne(variables['_HelixPipeline'], 'true'), and(eq(variables['_HelixPipeline'], 'true') ,eq(variables['_BuildConfig'], 'Release'), eq(variables['_PublicBuildPipeline'], 'true'), eq(variables['_ContinuousIntegrationTestsEnabled'], 'true'))), ne(variables['_Platform'], 'arm64'))

- task: PublishTestResults@2
displayName: Publish XUnit Test Results
inputs:
testResultsFormat: 'xUnit'
testResultsFiles: '*.xml'
testResultsFiles: '*.xml'
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
mergeTestResults: true
continueOnError: true
condition: and(eq(variables['_BuildConfig'], 'Release'), ne(variables['_Platform'], 'arm64'))
condition: and(eq(variables['_BuildConfig'], 'Release'), ne(variables['_Platform'], 'arm64'))

# - task: PowerShell@2
# displayName: Install .NET Core
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<ProjectGuid>{B73BB4AB-68DE-4B91-BBB0-AB4F2D504AC3}</ProjectGuid>

<Platforms>AnyCPU;x64;arm64</Platforms>
<Platforms>x86;x64;arm64</Platforms>
<!-- We ignore this warning because we want to pack powershell scripts that won't be executed as part of installing this package. -->
<NoWarn>$(NoWarn);NU5111</NoWarn>
</PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<ProjectGuid>9a7e395b-e859-40e2-809d-efb72cf3a2ee</ProjectGuid>

<Platforms>AnyCPU;x64;arm64</Platforms>
<Platforms>x86;x64;arm64</Platforms>
</PropertyGroup>

<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<ProjectGuid>c847934a-828c-4ebb-a004-b0e97c8313f4</ProjectGuid>

<Platforms>AnyCPU;x64;arm64</Platforms>
<Platforms>x86;x64;arm64</Platforms>
</PropertyGroup>

<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<PropertyGroup>
<ProjectGuid>{BFF6C118-3369-43B5-ACA6-D65ED00EEBE0}</ProjectGuid>

<Platforms>AnyCPU;x64;arm64</Platforms>
<Platforms>x86;x64;arm64</Platforms>
<UsingToolTemplateLocalizer>true</UsingToolTemplateLocalizer>
</PropertyGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<PropertyGroup>
<ProjectGuid>{440d06b8-e3de-4c0d-ad25-cd4f43d836e1}</ProjectGuid>

<Platforms>AnyCPU;x64;arm64</Platforms>
<Platforms>x86;x64;arm64</Platforms>
</PropertyGroup>

<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<ShouldWriteSigningRequired>false</ShouldWriteSigningRequired>
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Platforms>AnyCPU;x64;arm64</Platforms>
<Platforms>AnyCPU</Platforms>
</PropertyGroup>

<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<!-- don't sign nor binplace this non-shipping assembly -->
<ShouldWriteSigningRequired>false</ShouldWriteSigningRequired>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Platforms>AnyCPU;x64;arm64</Platforms>
<Platforms>AnyCPU</Platforms>
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
<!--The field '{0}' is never used -->
<NoWarn>$(NoWarn);0169</NoWarn>
Expand All @@ -21,11 +21,11 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="$(WpfSourceDir)PresentationCore\PresentationCore.csproj" />
<ProjectReference Include="$(WpfSourceDir)UIAutomation\UIAutomationProvider\UIAutomationProvider.csproj" />
<ProjectReference Include="$(WpfSourceDir)UIAutomation\UIAutomationTypes\UIAutomationTypes.csproj" />
<ProjectReference Include="$(WpfSourceDir)System.Xaml\System.Xaml.csproj" />
<ProjectReference Include="$(WpfSourceDir)WindowsBase\WindowsBase.csproj" />
<ProjectReference Include="$(WpfSourceDir)PresentationCore\ref\PresentationCore-ref.csproj" />
<ProjectReference Include="$(WpfSourceDir)UIAutomation\UIAutomationProvider\ref\UIAutomationProvider-ref.csproj" />
<ProjectReference Include="$(WpfSourceDir)UIAutomation\UIAutomationTypes\ref\UIAutomationTypes-ref.csproj" />
<ProjectReference Include="$(WpfSourceDir)System.Xaml\ref\System.Xaml-ref.csproj" />
<ProjectReference Include="$(WpfSourceDir)WindowsBase\ref\WindowsBase-ref.csproj" />
</ItemGroup>

<ItemGroup>
Expand Down
Loading