Browse Source

Implement UWP support using a dedicated uap10.0.17763 target framework moniker

pull/2015/head
Kévin Chalet 2 years ago
parent
commit
cfccc25e30
  1. 12
      Directory.Build.props
  2. 24
      Directory.Build.targets
  3. 21
      Directory.Packages.props
  4. 1
      OpenIddict.sln
  5. 15
      eng/AfterTargetFrameworkInference.targets
  6. BIN
      eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.81.Build.Tasks.dll
  7. 181
      eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.CPP.targets
  8. 47
      eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.CSharp.targets
  9. 664
      eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.Common.targets
  10. 52
      eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.Cps.targets
  11. 48
      eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.VisualBasic.targets
  12. BIN
      eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.Build.Tasks.dll
  13. 174
      eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.CPP.targets
  14. 61
      eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.CSharp.targets
  15. 753
      eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.Common.targets
  16. 52
      eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.Cps.targets
  17. 73
      eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.VisualBasic.targets
  18. 204
      eng/msbuild/uwp/8.21/Microsoft.Windows.UI.Xaml.CPP.targets
  19. 61
      eng/msbuild/uwp/8.21/Microsoft.Windows.UI.Xaml.CSharp.targets
  20. 142
      eng/msbuild/uwp/8.21/Microsoft.Windows.UI.Xaml.Common.targets
  21. 52
      eng/msbuild/uwp/8.21/Microsoft.Windows.UI.Xaml.Cps.targets
  22. 73
      eng/msbuild/uwp/8.21/Microsoft.Windows.UI.Xaml.VisualBasic.targets
  23. 38
      eng/msbuild/uwp/Microsoft.Windows.UI.Xaml.CPP.targets
  24. 5
      eng/msbuild/uwp/Microsoft.Windows.UI.Xaml.CSharp.targets
  25. 49
      eng/msbuild/uwp/Microsoft.Windows.UI.Xaml.Common.targets
  26. 5
      eng/msbuild/uwp/Microsoft.Windows.UI.Xaml.VisualBasic.targets
  27. 1
      global.json
  28. 11
      src/OpenIddict.Client.SystemIntegration/OpenIddict.Client.SystemIntegration.csproj
  29. 2
      src/OpenIddict.Client.SystemIntegration/OpenIddictClientSystemIntegrationHelpers.cs
  30. 6
      src/OpenIddict/OpenIddict.csproj

12
Directory.Build.props

@ -59,6 +59,17 @@
netstandard2.0;
netstandard2.1
</NetStandardTargetFrameworks>
<!--
Note: the UWP/.NET Core 5.0 reference assemblies may not be available if the Windows SDK is not installed.
To ensure the solution can be built on machines that don't have UWP tooling installed, a directory check is
used to ensure the .NET Core 5.0 reference assemblies are present on the machine before targeting uap10.0.
-->
<UniversalWindowsPlatformTargetFrameworks
Condition=" '$(UniversalWindowsPlatformTargetFrameworks)' == '' And $([MSBuild]::IsOSPlatform('Windows')) And
('$(GITHUB_ACTIONS)' == 'true' Or Exists('($MSBuildProgramFiles32)\Reference Assemblies\Microsoft\Framework\.NETCore\v5.0')) ">
uap10.0.17763
</UniversalWindowsPlatformTargetFrameworks>
</PropertyGroup>
<PropertyGroup>
@ -78,6 +89,7 @@
<RepoRelativeProjectDir>$([MSBuild]::MakeRelative($(RepoRoot), $(MSBuildProjectDirectory)))</RepoRelativeProjectDir>
<WarnOnPackingNonPackableProject>false</WarnOnPackingNonPackableProject>
<CheckEolTargetFramework>false</CheckEolTargetFramework>
<AfterTargetFrameworkInferenceTargets>$(MSBuildThisFileDirectory)\eng\AfterTargetFrameworkInference.targets</AfterTargetFrameworkInferenceTargets>
</PropertyGroup>
<!--

24
Directory.Build.targets

@ -22,7 +22,8 @@
-->
<PropertyGroup
Condition=" ('$(TargetFrameworkIdentifier)' == '.NETCoreApp' And $([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '3.0'))) Or
Condition=" ('$(TargetFrameworkIdentifier)' == '.NETCore') Or
('$(TargetFrameworkIdentifier)' == '.NETCoreApp' And $([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '3.0'))) Or
('$(TargetFrameworkIdentifier)' == '.NETFramework') Or
('$(TargetFrameworkIdentifier)' == '.NETStandard') ">
<Nullable>annotations</Nullable>
@ -121,14 +122,17 @@
</PropertyGroup>
<PropertyGroup
Condition=" ('$(TargetFrameworkIdentifier)' == '.NETCoreApp' And $([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '5.0'))) Or
Condition=" ('$(TargetFrameworkIdentifier)' == '.NETCore' And $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '5.0')) And
'$(TargetPlatformIdentifier)' == 'UAP' And '$(TargetPlatformVersion)' != '' And
$([MSBuild]::VersionGreaterThanOrEquals($(TargetPlatformVersion), '10.0'))) Or
('$(TargetFrameworkIdentifier)' == '.NETCoreApp' And $([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '5.0'))) Or
('$(TargetFrameworkIdentifier)' == '.NETCoreApp' And $([MSBuild]::VersionGreaterThanOrEquals($(TargetFrameworkVersion), '5.0')) And
'$(TargetPlatformIdentifier)' == 'Windows' And '$(TargetPlatformVersion)' != '' And
'$(TargetPlatformIdentifier)' == 'Windows' And '$(TargetPlatformVersion)' != '' And
$([MSBuild]::VersionGreaterThanOrEquals($(TargetPlatformVersion), '8.0'))) Or
('$(TargetFrameworkIdentifier)' == '.NETFramework') Or
('$(TargetFrameworkIdentifier)' == '.NETStandard') ">
('$(TargetFrameworkIdentifier)' == '.NETFramework') ">
<DefineConstants>$(DefineConstants);SUPPORTS_WINDOWS_RUNTIME</DefineConstants>
</PropertyGroup>
@ -148,6 +152,16 @@
Encoding="Unicode" />
</Target>
<!--
Note: the built-in _CalculateXbfSupport target cannot be used when building a UWP project using
the .NET version of MSBuild. To work around this limitation, a fake target is defined here.
-->
<Target Name="_CalculateXbfSupport"
Condition=" '$(TargetFrameworkIdentifier)' == '.NETCore' And $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '5.0')) And
'$(TargetPlatformIdentifier)' == 'UAP' And '$(TargetPlatformVersion)' != '' And
$([MSBuild]::VersionGreaterThanOrEquals($(TargetPlatformVersion), '10.0')) " />
<ItemGroup>
<Using Remove="System.Net.Http" />
</ItemGroup>

21
Directory.Packages.props

@ -467,4 +467,25 @@
<GlobalPackageReference Include="PolySharp" Condition=" '$(DisablePolySharp)' != 'true' " Version="1.13.1" />
</ItemGroup>
<!--
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
██ ██ █ ▄▄▀██ ▄▄ ███▀ ██ ▄▄ ████ ▄▄ ████▀ ██▄▄▄ █▄▄▄ █▀▄▄▀█ ▄▄ ██
██ ██ █ ▀▀ ██ ▀▀ ████ ██ ▀▄ █▀▀█ ▀▄ █▀▀██ ████ ████ ██ ▀▀████▄▀██
██▄▀▀▄█ ██ ██ ██████▀ ▀█ ▀▀ █▄▄█ ▀▀ █▄▄█▀ ▀██▌▐███▌▐██▄▀▀▄█ ▀▀ ██
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-->
<ItemGroup Label="Package versions for Universal Windows Platform 10.0.17763"
Condition=" '$(TargetFrameworkIdentifier)' == '.NETCore' And $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '5.0')) And
'$(TargetPlatformIdentifier)' == 'UAP' And $([MSBuild]::VersionEquals($(TargetPlatformVersion), '10.0.17763')) ">
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="2.1.1" />
<PackageVersion Include="NamedPipeServerStream.NetFrameworkVersion" Version="1.1.7" />
<!--
Note: OpenIddict uses PolySharp to dynamically generate polyfills for types that are not available on
some of the targeted TFMs (e.g Index, Range or nullable attributes on .NET Framework/.NET Standard).
-->
<GlobalPackageReference Include="PolySharp" Condition=" '$(DisablePolySharp)' != 'true' " Version="1.13.1" />
</ItemGroup>
</Project>

1
OpenIddict.sln

@ -59,6 +59,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenIddict.Owin", "src\Open
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "eng", "eng", "{6E8E862C-3F26-47D9-9C20-E3E87FD7CDFC}"
ProjectSection(SolutionItems) = preProject
eng\AfterTargetFrameworkInference.targets = eng\AfterTargetFrameworkInference.targets
eng\CodeAnalysis.ruleset = eng\CodeAnalysis.ruleset
eng\key.snk = eng\key.snk
eng\Signing.props = eng\Signing.props

15
eng/AfterTargetFrameworkInference.targets

@ -0,0 +1,15 @@
<Project>
<!--
Note: the language targets necessary to build UWP applications are not included in the .NET SDK and require
installing Visual Studio. To work around this limitation, a local copy of these targets is embedded and used here.
-->
<PropertyGroup
Condition=" '$(TargetFrameworkIdentifier)' == '.NETCore' And $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '5.0')) And
'$(TargetPlatformIdentifier)' == 'UAP' And '$(TargetPlatformVersion)' != '' And
$([MSBuild]::VersionGreaterThanOrEquals($(TargetPlatformVersion), '10.0')) ">
<LanguageTargets>$(MSBuildThisFileDirectory)msbuild\uwp\Microsoft.Windows.UI.Xaml.CSharp.targets</LanguageTargets>
</PropertyGroup>
</Project>

BIN
eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.81.Build.Tasks.dll

Binary file not shown.

181
eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.CPP.targets

@ -0,0 +1,181 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.Cpp.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BeforeClCompileTargets>
MarkupCompilePass1;
$(BeforeClCompileTargets)
</BeforeClCompileTargets>
<ComputeCompileInputsTargets>
ComputeXamlGeneratedCompileInputs;
$(ComputeCompileInputsTargets)
</ComputeCompileInputsTargets>
<AfterBuildCompileTargets>
$(ComputeLinkInputsTargets);
CreateWinMD;
ComputeGeneratedWinMD;
MarkupCompilePass2;
ComputeInvalidXamlGenerated;
CompileXamlGeneratedFiles;
$(AfterBuildCompileTargets)
</AfterBuildCompileTargets>
<XamlPreLinkDependsOn>
$(XamlPreLinkDependsOn);
ComputeXamlGeneratedCLOutputs
</XamlPreLinkDependsOn>
<GenerateProjectionAssembly>True</GenerateProjectionAssembly>
<OnlyCreateWinMD>true</OnlyCreateWinMD>
<ImplicitlyExpandTargetPlatform Condition="'$(ImplicitlyExpandTargetPlatform)' == '' ">true</ImplicitlyExpandTargetPlatform>
</PropertyGroup>
<PropertyGroup>
<ValidatePresenceOfAppxManifestItemsDependsOn>
$(ValidatePresenceOfAppxManifestItemsDependsOn);
_CreateContentItemOutOfCustomAppxManifest
</ValidatePresenceOfAppxManifestItemsDependsOn>
</PropertyGroup>
<ItemGroup>
<PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\Xaml.xml" />
</ItemGroup>
<!-- This is a proxy target that holds stuff that runs before the final Link -->
<Target Name="XamlPreLink" BeforeTargets="Link" DependsOnTargets="$(XamlPreLinkDependsOn)" />
<Target Name="ComputeGeneratedWinMD" >
<PropertyGroup>
<LocalAssembly Condition="'$(LocalAssembly)' == '' and '%(Link.WindowsMetadataFile)' != ''">%(Link.WindowsMetadataFile)</LocalAssembly>
</PropertyGroup>
</Target>
<!-- Change AppxManifest.xml override item to be of Content type. -->
<Target Name="_CreateContentItemOutOfCustomAppxManifest">
<ItemGroup>
<Content Include="@(Xml)" Condition="'%(Identity)' == 'AppxManifest.xml'" />
<Xml Remove="@(Xml)" Condition="'%(Identity)' == 'AppxManifest.xml'" />
</ItemGroup>
</Target>
<PropertyGroup>
<GeneratedFilesDir Condition=" '$(GeneratedFilesDir)' == ''">Generated Files\</GeneratedFilesDir>
<XamlGeneratedOutputPath>$(GeneratedFilesDir)</XamlGeneratedOutputPath>
<ExtensionsToDeleteOnClean>$(ExtensionsToDeleteOnClean);*.g.h;*.g.cpp;*.xaml</ExtensionsToDeleteOnClean>
</PropertyGroup>
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets" />
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\Cpp.ProjectItemsSchema.xaml"/>
</ItemGroup>
<!-- Generated files output group population -->
<PropertyGroup>
<GeneratedFilesOutputGroupDependsOn>XamlGeneratedFilesOutputGroup;$(GeneratedFilesOutputGroupDependsOn)</GeneratedFilesOutputGroupDependsOn>
</PropertyGroup>
<Target Name="XamlGeneratedFilesOutputGroup"
DependsOnTargets="$(XamlGeneratedFilesOutputGroupDependsOn)"
Condition="'@(Page)@(ApplicationDefinition)' != ''">
<ItemGroup>
<GeneratedFilesOutputGroup Condition="'%(Page.ExcludedFromBuild)'!='true'" Include="@(Page->'$(XamlGeneratedOutputPath)%(Filename).g.h')" />
<GeneratedFilesOutputGroup Condition="'%(Page.ExcludedFromBuild)'!='true'" Include="@(Page->'$(XamlGeneratedOutputPath)%(Filename).g.cpp')" />
<GeneratedFilesOutputGroup Condition="'%(ApplicationDefinition.ExcludedFromBuild)'!='true'" Include="@(ApplicationDefinition->'$(XamlGeneratedOutputPath)%(Filename).g.h')" />
<GeneratedFilesOutputGroup Condition="'%(ApplicationDefinition.ExcludedFromBuild)'!='true'" Include="@(ApplicationDefinition->'$(XamlGeneratedOutputPath)%(Filename).g.cpp')" />
</ItemGroup>
</Target>
<Target Name="ComputeXamlGeneratedCompileInputs"
DependsOnTargets="$(ComputeXamlGeneratedCompileInputsDependsOn)"
Condition="'@(Page)@(ApplicationDefinition)' != ''">
<ItemGroup>
<ClCompile Condition="'%(Page.ExcludedFromBuild)'!='true'" Include="@(Page->'$(XamlGeneratedOutputPath)%(Filename).g.cpp')" >
<CompilerIteration>XamlGenerated</CompilerIteration>
</ClCompile>
<ClCompile Condition="'%(ApplicationDefinition.ExcludedFromBuild)'!='true'" Include="@(ApplicationDefinition->'$(XamlGeneratedOutputPath)%(Filename).g.cpp')" >
<CompilerIteration>XamlGenerated</CompilerIteration>
</ClCompile>
<ClCompile Include="$(XamlGeneratedOutputPath)XamlTypeInfo.g.cpp" >
<CompilerIteration>XamlGenerated</CompilerIteration>
</ClCompile>
<ClCompile Include="$(XamlGeneratedOutputPath)XamlTypeInfo.Impl.g.cpp" />
<ClCompile Condition="'$(OutputType)' == 'Library'" Include="$(XamlGeneratedOutputPath)XamlLibMetadataProvider.g.cpp" />
</ItemGroup>
<!-- The build only wants to generate winmd once, either during Link target or Createwinmd target, not both.
Link and Createwinmd targets will execute link.exe, so it is best to run link.exe only once.
However, there are two cases where that isn't possible.
1) when build is building XAML and
2) when building in passes. -->
<PropertyGroup>
<GenerateBuildCompilePassWinMD Condition="'$(GenerateBuildCompilePassWinMD)' == ''">true</GenerateBuildCompilePassWinMD>
</PropertyGroup>
</Target>
<Target Name="ComputeInvalidXamlGenerated" >
<ItemGroup>
<!-- Some files dont exists because XAML files do not always generate .g.cpp -->
<ClCompile Remove="@(ClCompile)" Condition="'%(ClCompile.CompilerIteration)' == 'XamlGenerated' and !Exists('%(Identity)')"/>
</ItemGroup>
</Target>
<!-- Add CL generates .obj files to Obj item group, it will be used by lib or link -->
<Target Name="ComputeXamlGeneratedCLOutputs"
DependsOnTargets="ComputeXamlGeneratedCompileInputs;ComputeInvalidXamlGenerated"
Condition="'@(ClCompile)' != ''">
<ItemGroup>
<!-- Some files dont exists because XAML files do not always generate .g.cpp -->
<ClCompile Remove="@(ClCompile)" Condition="'%(ClCompile.CompilerIteration)' == 'XamlGenerated' and !Exists('%(Identity)')"/>
<!-- No object file name defined: filename.obj -->
<Obj Condition="'%(ClCompile.ObjectFileName)'=='' and '%(ClCompile.ExcludedFromBuild)'!='true'" Include="@(ClCompile->'%(Filename).obj')" />
<!-- Object file name is a directory (has trailing slash): ofn\filename.obj -->
<Obj Condition="HasTrailingSlash('%(ClCompile.ObjectFileName)') and '%(ClCompile.ExcludedFromBuild)'!='true'" Include="@(ClCompile->'%(ObjectFileName)%(Filename).obj')" />
<!-- Object file name is a file (does not has trailing slash): ofn -->
<Obj Condition="'%(ClCompile.ObjectFileName)' != '' and !HasTrailingSlash('%(ClCompile.ObjectFileName)') and '%(ClCompile.ExcludedFromBuild)'!='true'" Include="@(ClCompile->'%(ObjectFileName)')" />
<Link Include="@(Obj->WithMetadataValue('CompilerIteration', 'XamlGenerated')->ClearMetadata())" />
</ItemGroup>
</Target>
<!-- Enable design time build as well as selected file(s) compile support -->
<PropertyGroup>
<EnableDesignTimeBuild>true</EnableDesignTimeBuild>
</PropertyGroup>
<ItemDefinitionGroup>
<Page>
<GeneratorTarget>DesignTimeMarkupCompilation</GeneratorTarget>
</Page>
<ApplicationDefinition>
<GeneratorTarget>DesignTimeMarkupCompilation</GeneratorTarget>
</ApplicationDefinition>
</ItemDefinitionGroup>
<PropertyGroup>
<MarkupCompilePass1DependsOn>CppDesignTimeMarkupCompilation;$(MarkupCompilePass1DependsOn)</MarkupCompilePass1DependsOn>
</PropertyGroup>
<Target Name="CppDesignTimeMarkupCompilation"
DependsOnTargets="_SelectedFiles;SelectCustomBuild;ResolveReferences">
<!-- Ideally we'd like to be able to build just the requested files (if it makes sense). -->
<!--<ItemGroup Condition="'@(SelectedFiles)'!=''">
<Page Remove="@(Page)" Condition="'%(Identity)'!='@(SelectedFiles)'"/>
<ApplicationDefinition Remove="@(ApplicationDefinition)" Condition="'%(Identity)'!='@(SelectedFiles)'"/>
</ItemGroup>-->
</Target>
</Project>

47
eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.CSharp.targets

@ -0,0 +1,47 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.CSharp.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'WindowsPhoneApp' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.1</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">WindowsPhoneApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v8.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'windows' OR '$(TargetPlatformIdentifier)' == '' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.1</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETCore</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v4.5.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup>
<ImplicitlyExpandTargetPlatform Condition="'$(ImplicitlyExpandTargetPlatform)' == '' ">true</ImplicitlyExpandTargetPlatform>
<ImplicitlyExpandTargetFramework Condition="'$(ImplicitlyExpandTargetFramework)' == '' ">true</ImplicitlyExpandTargetFramework>
<NoStdLib Condition="'$(NoStdLib)' == ''">true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<WindowsAppContainer>true</WindowsAppContainer>
<AppxPackage Condition="'$(OutputType)' == 'AppContainerExe'">True</AppxPackage>
<!-- Supress the warnings in the 1st pass so that warnings are not repeated twice -->
<SuppressWarningsInPass1 Condition="'$(SuppressWarningsInPass1)' == '' ">true</SuppressWarningsInPass1>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Cps.targets" />
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\CSharp.ProjectItemsSchema.xaml"/>
</ItemGroup>
</Project>

664
eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.Common.targets

@ -0,0 +1,664 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.Common.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="ImportBefore\*"/>
<!-- Need the path to vcmeta.dll -->
<PropertyGroup>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0\Setup\VC@ProductDir)</VCInstallDir>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\Setup\VC@ProductDir)</VCInstallDir>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSWinExpress\14.0\Setup\VC@ProductDir)</VCInstallDir>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSWinExpress\14.0\Setup\VC@ProductDir)</VCInstallDir>
<XAMLFingerprint Condition="'$(XAMLFingerprint)' == ''">true</XAMLFingerprint>
<DisableXbfGeneration Condition="'$(DisableXbfGeneration)' == '' AND '$(TargetPlatformVersion)' == '8.0'">true</DisableXbfGeneration>
<DisableXbfGeneration Condition="'$(DisableXbfGeneration)' == ''">false</DisableXbfGeneration>
<XamlSavedStateFileName Condition="'$(XamlSavedStateFileName)' == ''">XamlSaveStateFile.xml</XamlSavedStateFileName>
<XamlSavedStateFilePath>$(IntermediateOutputPath)\$(XamlSavedStateFileName)</XamlSavedStateFilePath>
<XAMLFingerprintIgnorePaths Condition="'$(XAMLFingerprintIgnorePaths)'==''">
@(ReferenceAssemblyPaths);
$(WindowsSDK80Path)
</XAMLFingerprintIgnorePaths>
</PropertyGroup>
<ItemGroup Condition="'$(BuildingInsideVisualStudio)'=='true'">
<AvailableItemName Include="PRIResource" />
<AvailableItemName Include="AppxManifest" />
<AvailableItemName Include="ApplicationDefinition" />
<AvailableItemName Include="Page" />
<AvailableItemName Include="DesignData" />
<AvailableItemName Include="DesignDataWithDesignTimeCreatableTypes" />
</ItemGroup>
<ItemGroup>
<ProjectCapability Include="WindowsXaml"/>
<ProjectCapability Include="WindowsXamlPage"/>
<ProjectCapability Include="WindowsXamlCodeBehind"/>
<ProjectCapability Include="WindowsXamlResourceDictionary"/>
<ProjectCapability Include="WindowsXamlUserControl"/>
</ItemGroup>
<!-- For Managed Assemblies Create a XAML Roots Log -->
<PropertyGroup Condition="'$(ManagedAssembly)' != 'false'">
<XamlRootsLog>$(AssemblyName).xr.xml</XamlRootsLog>
</PropertyGroup>
<!-- Setting PRI index name. The XAML compiler use this in the LoadComponent() string.
It must match the name of the directoy the AppX Packaging system uses -->
<PropertyGroup>
<!-- Exe's don't have an PriIndexName -->
<PriIndexName Condition="'$(AppxPackage)' == 'true'"></PriIndexName>
<!-- Managed Dll's use the "safe" name of the project as the App Package Name -->
<PriIndexName Condition="'$(AppxPackage)' != 'true' and '$(ManagedAssembly)' != 'false' and '$(OutputType)' != 'winmdobj'">$(TargetName)</PriIndexName>
<!-- Winmd library targets (managed or native) use the default root namespace of the project for the App package name -->
<PriIndexName Condition="'$(AppxPackage)' != 'true' and '$(ManagedAssembly)' != 'false' and '$(OutputType)' == 'winmdobj'">$(RootNamespace)</PriIndexName>
<PriIndexName Condition="'$(AppxPackage)' != 'true' and '$(ManagedAssembly)' == 'false' and '$(RootNamespace)' != ''">$(RootNamespace)</PriIndexName>
<!-- If RootNamespace is empty fall back to TargetName -->
<PriIndexName Condition="'$(AppxPackage)' != 'true' and $(PriIndexName) == ''">$(TargetName)</PriIndexName>
</PropertyGroup>
<PropertyGroup>
<AvailablePlatforms>$(AvailablePlatforms),ARM</AvailablePlatforms>
<!-- this Property is used only for the Managed build.
See Microsoft.Windows.UI.Xaml.Cpp.targets for Native build rules -->
<PrepareResourcesDependsOn>
ResolveKeySource;
MarkupCompilePass1;
XamlPreCompile;
MarkupCompilePass2;
$(PrepareResourcesDependsOn)
</PrepareResourcesDependsOn>
<Prefer32Bit Condition="'$(Prefer32Bit)' == '' and ('$(OutputType)' == 'exe' or '$(OutputType)' == 'winexe' or '$(OutputType)' == 'appcontainerexe')">true</Prefer32Bit>
<HighEntropyVA Condition="'$(HighEntropyVA)' == ''">true</HighEntropyVA>
<SubsystemVersion Condition="'$(SubsystemVersion)' == '' and ('$(PlatformTarget)' == 'ARM' or '$(OutputType)' == 'appcontainerexe' or '$(OutputType)' == 'winmdobj')">6.02</SubsystemVersion>
<SubsystemVersion Condition="'$(SubsystemVersion)' == ''">6.00</SubsystemVersion>
<OnXamlPreCompileErrorTarget Condition="'$(OnXamlPreCompileErrorTarget)' == ''">_OnXamlPreCompileError</OnXamlPreCompileErrorTarget>
<!-- Use Intermediate dir if XamlGeneratedOutputPath is not defined -->
<XamlGeneratedOutputPath Condition="'$(XamlGeneratedOutputPath)' == ''">$(IntermediateOutputPath)</XamlGeneratedOutputPath>
</PropertyGroup>
<UsingTask TaskName="Microsoft.Windows.UI.Xaml.Build.Tasks.CompileXaml" AssemblyFile="Microsoft.Windows.UI.Xaml.81.Build.Tasks.dll" />
<UsingTask TaskName="Microsoft.Windows.UI.Xaml.Build.Tasks.AddDefaultXamlLinkMetadata" AssemblyFile="Microsoft.Windows.UI.Xaml.81.Build.Tasks.dll" />
<UsingTask TaskName="Microsoft.Windows.UI.Xaml.Build.Tasks.GetXamlCppIncludeDirectories" AssemblyFile="Microsoft.Windows.UI.Xaml.81.Build.Tasks.dll" />
<PropertyGroup>
<!--If the path to the sign tool is not set, assume the SDK path -->
<SignToolPath Condition="'$(SignToolPath)' == ''">$(FrameworkSDKRoot)bin</SignToolPath>
<!--Integration with packaging for GeneratedXamlFilesOutputGroupOutput -->
<IncludeCustomOutputGroupForPackaging>true</IncludeCustomOutputGroupForPackaging>
</PropertyGroup>
<ItemGroup>
<XamlIntermediateAssembly Condition="'$(ManagedAssembly)'!='false'" Include="$(XamlGeneratedOutputPath)intermediatexaml\$(TargetName)$(TargetExt)"/>
<XamlIntermediateAssembly Condition="'$(ManagedAssembly)'=='false'" Include="$(OutputPath)\$(TargetName).winmd"/>
</ItemGroup>
<!--
============================================================
Adds all XAML Pages to the $(Resource) collection
============================================================
-->
<ItemGroup Condition=" '$(ManagedAssembly)'=='' ">
<!-- Add XAML Page items to $(Resource) -->
<Resource Include="@(Page)" />
<Resource Include="@(ApplicationDefinition)" />
</ItemGroup>
<!-- Manifest metadata items. -->
<!-- See Microsoft.AppxPackage.targets for details. -->
<ItemGroup Label="AppxManifestMetadata">
<AppxManifestMetadata Include="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\$(TargetPlatformVersion)\Microsoft.Windows.UI.Xaml.81.Build.Tasks.dll" />
</ItemGroup>
<PropertyGroup>
<MarkupCompilePass1DependsOn>
GetXamlCppIncludeDirectories;
$(GetXamlCppIncludeDirectories)
</MarkupCompilePass1DependsOn>
<MarkupCompilePass2DependsOn>
GetXamlCppIncludeDirectories;
$(GetXamlCppIncludeDirectories)
</MarkupCompilePass2DependsOn>
<Prep_ComputeProcessXamlFilesDependsOn>
GetXamlCppIncludeDirectories;
$(Prep_ComputeProcessXamlFilesDependsOn)
</Prep_ComputeProcessXamlFilesDependsOn>
</PropertyGroup>
<!-- In order for the XAML compiler to generated the correct relative paths for #includes in
the generated C++ code it needs to know the AdditionalIncludeDirectories of all the .cpp
files are DependentUpon XAML files.-->
<Target Name="GetXamlCppIncludeDirectories" Condition="'$(ManagedAssembly)'=='false' and '$(XamlCppIncludeDirectories)' == ''">
<GetXamlCppIncludeDirectories ClCompile="@(ClCompile)">
<Output PropertyName="XamlCppIncludeDirectories" TaskParameter="ComputedIncludeDirectories" />
</GetXamlCppIncludeDirectories>
</Target>
<!--
================================================================
DesignTimeMarkupCompilation
Support for the Intellisense build
================================================================
-->
<PropertyGroup>
<CoreCompileDependsOn Condition="'$(BuildingInsideVisualStudio)' == 'true' ">
DesignTimeMarkupCompilation;
$(CoreCompileDependsOn)
</CoreCompileDependsOn>
</PropertyGroup>
<Target Name="DesignTimeMarkupCompilation">
<!-- BuildingProject is used in Managed builds (always true in Native) -->
<!-- DesignTimeBuild is used in Native builds (always false in Managed) -->
<CallTarget Condition="'$(BuildingProject)' != 'true' Or $(DesignTimeBuild) == 'true'" Targets="DesignTimeMarkupCompilationCT" />
</Target>
<!-- A copy of the first pass, without the WarningLevel manipulation -->
<Target Name="DesignTimeMarkupCompilationCT"
DependsOnTargets="$(MarkupCompilePass1DependsOn)"
Condition="'@(Page)' != '' Or '@(ApplicationDefinition)' != '' " >
<MakeDir Condition="'$(ManagedAssembly)'!='false'" Directories="$(XamlGeneratedOutputPath)intermediatexaml\" />
<CompileXaml
LanguageSourceExtension="$(DefaultLanguageSourceExtension)"
Language="$(Language)"
RootNamespace="$(RootNamespace)"
XamlPages="@(Page)"
XamlApplications="@(ApplicationDefinition)"
PriIndexName="$(PriIndexName)"
ProjectName="$(MsBuildProjectName)"
IsPass1="True"
CodeGenerationControlFlags="$(XamlCodeGenerationControlFlags)"
CIncludeDirectories="$(XamlCppIncludeDirectories)"
ProjectPath="$(MSBuildProjectFullPath)"
OutputPath="$(XamlGeneratedOutputPath)"
OutputType="$(OutputType)"
ReferenceAssemblyPaths="@(ReferenceAssemblyPaths)"
ReferenceAssemblies="@(ReferencePath)"
ForceSharedStateShutdown="False"
ContinueOnError="True"
CompileMode="DesignTimeBuild"
XAMLFingerprint="$(XAMLFingerprint)"
FingerprintIgnorePaths="$(XAMLFingerprintIgnorePaths)"
VCInstallDir="$(VCInstallDir)"
SavedStateFile="$(XamlSavedStateFilePath)"
SuppressWarnings="$(SuppressXamlWarnings)"
>
<Output Condition=" '$(ManagedAssembly)'!='false' " ItemName="Compile" TaskParameter="GeneratedCodeFiles" />
<!--
Add to the list of files written.
It is used in Microsoft.Common.targets for a next clean build
-->
<Output ItemName="FileWrites" TaskParameter="GeneratedCodeFiles" />
<Output ItemName="FileWrites" TaskParameter="GeneratedXamlFiles" />
<Output ItemName="_GeneratedCodeFiles" TaskParameter="GeneratedCodeFiles" />
</CompileXaml>
<ItemGroup>
<FileWrites Include="$(XamlSavedStateFilePath)" />
</ItemGroup>
<Message Text="(Out) ISenseCodeFiles: '@(_GeneratedCodeFiles)'" />
<Message Text="(Out) ISenseXamlFiles: '@(_GeneratedXamlFiles)'" />
<Message Text="(Out) ClCompile: '@(ClCompile)'" Condition="'%(ClCompile.CompilerIteration)' != 'XamlGenerated'"/>
<Message Text="(Out) Compile: '@(Compile)'" />
</Target>
<!--
================================================================
MarkupCompilePass1
================================================================
-->
<Target Name="MarkupCompilePass1"
DependsOnTargets="$(MarkupCompilePass1DependsOn)"
Condition="'@(Page)' != '' Or '@(ApplicationDefinition)' != '' " >
<MakeDir Condition="'$(ManagedAssembly)'!='false'" Directories="$(XamlGeneratedOutputPath)intermediatexaml\" />
<CompileXaml
LanguageSourceExtension="$(DefaultLanguageSourceExtension)"
Language="$(Language)"
RootNamespace="$(RootNamespace)"
XamlPages="@(Page)"
XamlApplications="@(ApplicationDefinition)"
PriIndexName="$(PriIndexName)"
ProjectName="$(MsBuildProjectName)"
IsPass1="True"
CodeGenerationControlFlags="$(XamlCodeGenerationControlFlags)"
ProjectPath="$(MSBuildProjectFullPath)"
CIncludeDirectories="$(XamlCppIncludeDirectories)"
OutputPath="$(XamlGeneratedOutputPath)"
OutputType="$(OutputType)"
ReferenceAssemblyPaths="@(ReferenceAssemblyPaths)"
ReferenceAssemblies="@(ReferencePath)"
ForceSharedStateShutdown="False"
CompileMode="RealBuildPass1"
XAMLFingerprint="$(XAMLFingerprint)"
FingerprintIgnorePaths="$(XAMLFingerprintIgnorePaths)"
VCInstallDir="$(VCInstallDir)"
SavedStateFile="$(XamlSavedStateFilePath)"
SuppressWarnings="$(SuppressXamlWarnings)"
>
<Output Condition=" '$(ManagedAssembly)'!='false' " ItemName="Compile" TaskParameter="GeneratedCodeFiles" />
<!--
FileWrites is used in Microsoft.Common.targets for "Clean" build
-->
<Output ItemName="FileWrites" TaskParameter="GeneratedCodeFiles" />
<Output ItemName="FileWrites" TaskParameter="GeneratedXamlFiles" />
<Output ItemName="FileWrites" TaskParameter="GeneratedXbfFiles" />
<Output ItemName="_GeneratedCodeFiles" TaskParameter="GeneratedCodeFiles" />
</CompileXaml>
<ItemGroup>
<FileWrites Include="$(XamlSavedStateFilePath)" />
</ItemGroup>
<Message Text="(Out) GeneratedCodeFiles: '@(_GeneratedCodeFiles)'" />
<Message Text="(Out) ClCompile: '@(ClCompile)'" Condition="'$(ManagedAssembly)'=='false' and '%(ClCompile.CompilerIteration)'!='XamlGenerated'"/>
<Message Text="(Out) Compile: '@(Compile)'" Condition="'$(ManagedAssembly)'!='false'"/>
<PropertyGroup>
<PrevWarningLevel>$(WarningLevel)</PrevWarningLevel>
<WarningLevel Condition="'$(SuppressWarningsInPass1)'=='true'">0</WarningLevel>
</PropertyGroup>
</Target>
<!--
================================================================
MarkupCompilePass2
================================================================
-->
<Target Name="MarkupCompilePass2"
DependsOnTargets="$(MarkupCompilePass2DependsOn)"
Condition="'@(Page)' != '' Or '@(ApplicationDefinition)' != '' " >
<PropertyGroup>
<WarningLevel>$(PrevWarningLevel)</WarningLevel>
<WarningLevel Condition="'$(WarningLevel)' == '' and '$(ExplicitResetWarningSuppression)' == 'true'">1</WarningLevel>
</PropertyGroup>
<!-- The Name of the Local Assembly in Managed and Native -->
<PropertyGroup>
<LocalAssembly Condition="'$(LocalAssembly)' == '' and Exists(@(XamlIntermediateAssembly))">
@(XamlIntermediateAssembly->'%(Identity)')
</LocalAssembly>
</PropertyGroup>
<CallTarget Targets="SDKRedistOutputGroup" Condition="'$(IncludeSDKRedistOutputGroup)' == 'true'">
<Output TaskParameter="TargetOutputs" ItemName="_SDKRedistOutputGroupOutput_xaml"/>
</CallTarget>
<ItemGroup>
<SdkXamlItems Include="@(_SDKRedistOutputGroupOutput_xaml)" Condition="'%(Extension)'=='.xaml'" />
</ItemGroup>
<ItemGroup>
<!-- C++ provides a filtered Item that eliminates any Managed Assemblies on the ReferencePath (from SDKs for example) -->
<XamlReferencesToCompile Condition="'$(Language)'=='C++'" Include="@(WinMDReferenceToCompile)" />
<XamlReferencesToCompile Condition="'$(Language)'!='C++'" Include="@(ReferencePath)" />
</ItemGroup>
<CompileXaml
LanguageSourceExtension="$(DefaultLanguageSourceExtension)"
Language="$(Language)"
RootNamespace="$(RootNamespace)"
XamlPages="@(Page)"
XamlApplications="@(ApplicationDefinition)"
SdkXamlPages="@(SdkXamlItems)"
PriIndexName="$(PriIndexName)"
ProjectName="$(MsBuildProjectName)"
IsPass1="False"
DisableXbfGeneration="$(DisableXbfGeneration)"
CodeGenerationControlFlags="$(XamlCodeGenerationControlFlags)"
ClIncludeFiles="@(ClInclude)"
CIncludeDirectories="$(XamlCppIncludeDirectories)"
LocalAssembly="$(LocalAssembly)"
ProjectPath="$(MSBuildProjectFullPath)"
OutputPath="$(XamlGeneratedOutputPath)"
OutputType="$(OutputType)"
ReferenceAssemblyPaths="@(ReferenceAssemblyPaths)"
ReferenceAssemblies="@(XamlReferencesToCompile)"
ForceSharedStateShutdown="False"
CompileMode="RealBuildPass2"
XAMLFingerprint="$(XAMLFingerprint)"
FingerprintIgnorePaths="$(XAMLFingerprintIgnorePaths)"
VCInstallDir="$(VCInstallDir)"
SavedStateFile="$(XamlSavedStateFilePath)"
RootsLog="$(XamlRootsLog)"
SuppressWarnings="$(SuppressXamlWarnings)"
>
<Output Condition=" '$(ManagedAssembly)'!='false' " ItemName="Compile" TaskParameter="GeneratedCodeFiles" />
<Output Condition=" '$(ManagedAssembly)'=='false' " ItemName="XamlGFiles" TaskParameter="GeneratedCodeFiles" />
<!--
FileWrites is used in Microsoft.Common.targets for "Clean" build
-->
<Output ItemName="FileWrites" TaskParameter="GeneratedCodeFiles" />
<Output ItemName="FileWrites" TaskParameter="GeneratedXamlFiles" />
<Output ItemName="FileWrites" TaskParameter="GeneratedXbfFiles" />
<Output ItemName="_GeneratedCodeFiles" TaskParameter="GeneratedCodeFiles" />
<Output ItemName="_GeneratedXamlFiles" TaskParameter="GeneratedXamlFiles" />
<Output ItemName="_GeneratedXbfFiles" TaskParameter="GeneratedXbfFiles" />
</CompileXaml>
<ItemGroup>
<FileWrites Include="$(XamlSavedStateFilePath)" />
<FileWrites Condition="'$(XamlRootsLog)' != ''" Include="$(XamlRootsLog)" />
</ItemGroup>
<Message Text="(Out) GeneratedCodeFiles: '@(_GeneratedCodeFiles)'" />
<Message Text="(Out) GeneratedXamlFiles: '@(_GeneratedXamlFiles)'" />
<Message Text="(Out) GeneratedXbfFiles: '@(_GeneratedXbfFiles)'" />
<Message Text="(Out) ClCompile: '@(ClCompile)'" Condition="'$(ManagedAssembly)'=='false'"/>
<Message Text="(Out) Compile: '@(Compile)'" Condition="'$(ManagedAssembly)'!='false'"/>
</Target>
<Target Name="_OnXamlPreCompileError"
DependsOnTargets="$(_OnXamlPrecompileErrorDependsOn)" >
<CompileXaml
ProjectPath="$(MSBuildProjectFullPath)"
Language="$(Language)"
LanguageSourceExtension="$(DefaultLanguageSourceExtension)"
OutputPath="$(XamlGeneratedOutputPath)"
ReferenceAssemblies="@(ReferencePath)"
ReferenceAssemblyPaths="@(ReferenceAssemblyPaths)"
XamlPages="@(Page)"
XamlApplications="@(ApplicationDefinition)"
ForceSharedStateShutdown="True"
CompileMode="OnErrorShutdown"
SavedStateFile="$(XamlSavedStateFilePath)"
>
</CompileXaml>
</Target>
<Target Name="Prep_ComputeProcessXamlFiles"
Condition="'@(ApplicationDefinition)'!='' or '@(Page)'!=''"
DependsOnTargets="$(Prep_ComputeProcessXamlFilesDependsOn)" >
<!-- collect all the XAML pages from the Project file into one Item -->
<ItemGroup>
<AllProjectXamlPages Condition="'%(ApplicationDefinition.ExcludedFromBuild)'!='true'" Include="@(ApplicationDefinition)" />
<AllProjectXamlPages Condition="'%(Page.ExcludedFromBuild)'!='true'" Include="@(Page)" />
</ItemGroup>
<!-- For ttems are outside the project cone Link metadata tells us what the apparent project path should be.
C++ doesn't use Link data, so for C++ add implied DefaultXamlLink metadata based on the Include Path -->
<AddDefaultXamlLinkMetadata Condition="'$(ManagedAssembly)'=='false'"
ProjectPath="$(ProjectPath)"
XamlPages="@(AllProjectXamlPages)"
CIncludeDirectories ="$(XamlCppIncludeDirectories)">
<Output TaskParameter="OutputItems" ItemName="_Temp" />
</AddDefaultXamlLinkMetadata>
<!-- Remove the Items named in _Temp, then add the actual items from _Temp, then clear _Temp -->
<ItemGroup>
<AllProjectXamlPages Remove="@(_Temp)" />
<AllProjectXamlPages Include="@(_Temp)" />
<_Temp Remove="@(_Temp)" />
</ItemGroup>
<!-- transfer the DefaultXamlLink data to the Link attribute -->
<ItemGroup>
<AllProjectXamlPages Condition="'%(AllProjectXamlPages.DefaultXamlLink)'!=''">
<Link>%(AllProjectXamlPages.DefaultXamlLink)</Link>
</AllProjectXamlPages>
</ItemGroup>
<!-- Compute the Generated XAML source path and the bin dir Destination path -->
<!-- If there is a Link use that, otherwise use the Given path from the Project file Item -->
<ItemGroup>
<GeneratedXamlSrc0 Condition="'%(AllProjectXamlPages.Link)'!=''" Include="@(AllProjectXamlPages->'$(XamlGeneratedOutputPath)%(Link)')" />
<GeneratedXamlSrc0 Condition="'%(AllProjectXamlPages.Link)'==''" Include="@(AllProjectXamlPages->'$(XamlGeneratedOutputPath)%(Identity)')" />
<GeneratedXamlDest0 Condition="'%(AllProjectXamlPages.Link)'!=''" Include="@(AllProjectXamlPages->'$(OutputPath)\%(Link)')" />
<GeneratedXamlDest0 Condition="'%(AllProjectXamlPages.Link)'==''" Include="@(AllProjectXamlPages->'$(OutputPath)\%(Identity)')" />
</ItemGroup>
<!-- Swap in the XBF suffix if appropriate. -->
<ItemGroup Condition="'$(DisableXbfGeneration)' == 'true'">
<GeneratedXamlSrc Include="@(GeneratedXamlSrc0)" />
<GeneratedXamlDest Include="@(GeneratedXamlDest0)" />
</ItemGroup>
<ItemGroup Condition="'$(DisableXbfGeneration)' != 'true'">
<GeneratedXamlSrc Include="%(GeneratedXamlSrc0.RelativeDir)%(GeneratedXamlSrc0.Filename).xbf" />
<GeneratedXamlDest Include="%(GeneratedXamlDest0.RelativeDir)%(GeneratedXamlDest0.Filename).xbf" />
</ItemGroup>
<!-- if we converted SDK XAML into XBF, add the XBF to the list, and remove the XAML from the list -->
<ItemGroup Condition="'$(DisableXbfGeneration)' != 'true' and '@(SdkXamlItems)' != ''">
<GeneratedSdkXamlSrc0 Include="@(SdkXamlItems->'$(XamlGeneratedOutputPath)%(TargetPath)')" />
<GeneratedSdkXamlDest0 Include="@(SdkXamlItems->'$(OutputPath)\%(TargetPath)')" />
<GeneratedXamlSrc Include="%(GeneratedSdkXamlSrc0.RelativeDir)%(GeneratedSdkXamlSrc0.Filename).xbf" />
<GeneratedXamlDest Include="%(GeneratedSdkXamlDest0.RelativeDir)%(GeneratedSdkXamlDest0.Filename).xbf" />
<RemoveSdkFilesFromAppxPackage Include="@(SdkXamlItems)" />
</ItemGroup>
<ItemGroup Condition="'$(XamlRootsLog)' != ''">
<GeneratedXamlSrc Include="$(XamlGeneratedOutputPath)\$(XamlRootsLog)" />
<GeneratedXamlDest Include="$(OutputPath)\$(XamlRootsLog)" />
</ItemGroup>
<Message Importance="low" Text="(Out) Prep_GeneratedXamlSrc == @(GeneratedXamlSrc)" />
<Message Importance="low" Text="(Out) Prep_GeneratedXamlDest == @(GeneratedXamlDest)" />
</Target>
<!-- if $GenerateLibraryLayout is True this is skipped and see the PrepareLibraryLayout target -->
<Target Name="CopyGeneratedXaml" BeforeTargets="CopyFilesToOutputDirectory" DependsOnTargets="Prep_ComputeProcessXamlFiles"
Condition="'$(GenerateLibraryLayout)' != 'true'">
<Copy
SourceFiles="@(GeneratedXamlSrc)"
DestinationFiles="@(GeneratedXamlDest)"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)"
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
UseHardlinksIfPossible="$(CreateHardLinksForCopyFilesToOutputDirectoryIfPossible)"
/>
<ItemGroup>
<FileWrites Include="@(GeneratedXamlDest)" />
</ItemGroup>
</Target>
<Target Name="ComputeProcessXamlFiles" Returns="@(ProcessedXamlFiles)" DependsOnTargets="Prep_ComputeProcessXamlFiles">
<ItemGroup >
<!-- In the normal (non-SDK) build, AppX Packaging picks up the files from the bin aka OutputPath folder -->
<ProcessedXamlFiles Condition="'$(GenerateLibraryLayout)' != 'true'" Include="@(GeneratedXamlDest)" />
<!-- In the SDK build, AppX Packaging picks up the files from the XamlGeneratedOutput folder -->
<!-- For SDK builds include both the XAML and XBF -->
<ProcessedXamlFiles Condition="'$(GenerateLibraryLayout)' == 'true'" Include="@(GeneratedXamlSrc)" />
<ProcessedXamlFiles Condition="'$(GenerateLibraryLayout)' == 'true' and '$(DisableXbfGeneration)' != 'true'"
Include="@(GeneratedXamlSrc0)" />
</ItemGroup>
<Message Importance="Low" Text="(Out) GeneratedXamlDest == @(GeneratedXamlDest)" />
<Message Importance="Low" Text="(Out) GeneratedXamlSrc == @(GeneratedXamlSrc)" />
<Message Text="(Out) ProcessedXamlFiles == @(ProcessedXamlFiles)" />
</Target>
<Target Name="CustomOutputGroupForPackaging"
DependsOnTargets="ComputeProcessXamlFiles"
Returns="@(CustomOutputGroupForPackagingOutput)"
>
<ItemGroup>
<ProcessedXamlFilesFullPath Include="@(ProcessedXamlFiles->'%(FullPath)')" />
</ItemGroup>
<PropertyGroup>
<XamlPackagingRootFolder Condition="'$(GenerateLibraryLayout)' == 'true'">$(XamlGeneratedOutputPath)</XamlPackagingRootFolder>
<XamlPackagingRootFolder Condition="'$(GenerateLibraryLayout)' != 'true'">$(OutputPath)\</XamlPackagingRootFolder>
</PropertyGroup>
<AssignTargetPath Files="@(ProcessedXamlFilesFullPath)" RootFolder="$(XamlPackagingRootFolder)">
<Output TaskParameter="AssignedFiles" ItemName="CustomOutputGroupForPackagingOutput" />
</AssignTargetPath>
<Message Text="(Out) Project='$(MsBuildProjectName)' ProcessedXamlFiles == @(ProcessedXamlFiles)" />
<Message Text="(Out) XamlPackagingRootFolder == $(XamlPackagingRootFolder)" />
<Message Text="(Out) ProcessedXamlFilesFullPath == @(ProcessedXamlFilesFullPath)" />
<Message Text="(Out) Project='$(MsBuildProjectName)' CustomOutputGroupForPackagingOutput == @(CustomOutputGroupForPackagingOutput)" />
</Target>
<PropertyGroup>
<PrepareLibraryLayoutDependsOn>
GetPackagingOutputs;
$(PrepareLibraryLayoutDependsOn)
</PrepareLibraryLayoutDependsOn>
</PropertyGroup>
<!-- This builds the Bin Folder for DLL's that wish to have the SDK type layout -->
<Target Name="PrepareLibraryLayout"
Condition="'$(GenerateLibraryLayout)' == 'true'"
DependsOnTargets="$(PrepareLibraryLayoutDependsOn)"
BeforeTargets="CopyFilesToOutputDirectory"
>
<ItemGroup>
<_LayoutFile Include="@(PackagingOutputs)" Condition="'%(OutputGroup)' == 'ContentFilesProjectOutputGroup'" />
<_LayoutFile Include="@(PackagingOutputs)" Condition="'%(OutputGroup)' == 'CustomOutputGroupForPackaging'" />
</ItemGroup>
<Copy SourceFiles="@(_LayoutFile)"
DestinationFiles="@(_LayoutFile->'$(OutputPath)\%(TargetPath)')"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)"
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
UseHardlinksIfPossible="$(CreateHardLinksForCopyFilesToOutputDirectoryIfPossible)"
/>
</Target>
<!--
============================================================
Properties and Targets Common to Managed .NETCore projects
============================================================
-->
<!--
The ImplicitlyExpandTargetFramework target will expand all
of the dll reference assemblies in the TargetFrameworkDirectory
for the project and place the items into the ReferencePath itemgroup
which contains resolved items.
-->
<PropertyGroup>
<ResolveReferencesDependsOn>
$(ResolveReferencesDependsOn);
ImplicitlyExpandTargetFramework;
ImplicitlyExpandTargetPlatform
</ResolveReferencesDependsOn>
<ImplicitlyExpandTargetFrameworkDependsOn>
$(ImplicitlyExpandTargetFrameworkDependsOn);
GetReferenceAssemblyPaths
</ImplicitlyExpandTargetFrameworkDependsOn>
</PropertyGroup>
<Target Name="ImplicitlyExpandTargetFramework"
Condition="'$(ImplicitlyExpandTargetFramework)' == 'true'"
DependsOnTargets="$(ImplicitlyExpandTargetFrameworkDependsOn)"
>
<ItemGroup>
<ReferenceAssemblyPaths Include="$(_TargetFrameworkDirectories)"/>
<ReferencePath Include="%(ReferenceAssemblyPaths.Identity)*.dll">
<WinMDFile>false</WinMDFile>
<CopyLocal>false</CopyLocal>
<ReferenceGroupingDisplayName>.NET for Windows Store apps</ReferenceGroupingDisplayName>
<ReferenceGrouping>$(TargetFrameworkMoniker)</ReferenceGrouping>
<ResolvedFrom>ImplicitlyExpandTargetFramework</ResolvedFrom>
<IsSystemReference>True</IsSystemReference>
</ReferencePath>
</ItemGroup>
<Message Importance="Low" Text="TargetMonikerDisplayName: $(TargetFrameworkMonikerDisplayName) ReferenceAssemblyPaths: @(ReferenceAssemblyPaths)"/>
<Message Importance="Low" Text="Including @(ReferencePath)"
Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandTargetFramework'"/>
<ItemGroup>
<_ResolveAssemblyReferenceResolvedFiles Include="@(ReferencePath)"
Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandTargetFramework'"/>
</ItemGroup>
</Target>
<!--
The ImplicitlyExpandTargetPlatform target will expand all
of the winmd files in the windowsSDK and add them the the
ReferencePath item which is the itemgroup which contains
resolved items.
-->
<Target Name="ImplicitlyExpandTargetPlatform"
Condition="'$(ImplicitlyExpandTargetPlatform)' == 'true'"
>
<ItemGroup>
<ReferencePath Include="$(TargetPlatformWinMDLocation)\*.winmd">
<WinMDFile>true</WinMDFile>
<CopyLocal>false</CopyLocal>
<ReferenceGrouping>$(TargetPlatformMoniker)</ReferenceGrouping>
<ReferenceGroupingDisplayName>$(TargetPlatformDisplayName)</ReferenceGroupingDisplayName>
<ResolvedFrom>ImplicitlyExpandTargetPlatform</ResolvedFrom>
<IsSystemReference>True</IsSystemReference>
</ReferencePath>
</ItemGroup>
<Warning Condition="!Exists($(TargetPlatformWinMDLocation))"
Text="The path to the $(TargetPlatformIdentifier) SDK [$(TargetPlatformWinMDLocation)] was not found!"/>
<Message Importance="Low" Text="Including @(ReferencePath)"
Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandTargetPlatform'"/>
<ItemGroup>
<_ResolveAssemblyReferenceResolvedFiles Include="@(ReferencePath)"
Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandTargetPlatform'"/>
</ItemGroup>
</Target>
<!--
Enable warning when referenced projects have higher version than the current project
for Windows Store projects
-->
<PropertyGroup>
<FindInvalidProjectReferences Condition="'$(TargetPlatformIdentifier)' == 'Windows' and
'$(TargetPlatformVersion)' &gt;= '8.0'">true</FindInvalidProjectReferences>
</PropertyGroup>
<!--
Enable warning when referenced ESDKs do not have MaxPlatformVersion
specified for Windows Store projects
-->
<PropertyGroup>
<SDKReferenceWarnOnMissingMaxPlatformVersion Condition="'$(SDKReferenceWarnOnMissingMaxPlatformVersion)' == '' and
'$(TargetPlatformIdentifier)' == 'Windows' and
'$(TargetPlatformVersion)' &gt;= '8.0'">true</SDKReferenceWarnOnMissingMaxPlatformVersion>
</PropertyGroup>
<Import Project="ImportAfter\*"/>
</Project>

52
eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.Cps.targets

@ -0,0 +1,52 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition=" '$(IsCodeSharingProject)' != 'true' ">
<!-- SDK references -->
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\SDKReference.xaml">
<Context>;BrowseObject</Context>
</PropertyPageSchema>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\ResolvedSDKReference.xaml">
<Context>ProjectCapabilitySubscriptionService;BrowseObject</Context>
</PropertyPageSchema>
<ProjectCapability Include="SDKReferences" />
<!-- WinRT references -->
<!-- No need for WinRTReference.xaml because we share an item type with AssemblyReference.xaml -->
<ProjectCapability Include="WinRTReferences" />
</ItemGroup>
<ItemGroup>
<!-- Xaml item types -->
<PropertyPageSchema Include="
$(MSBuildThisFileDirectory)$(LangName)\PRIResource.xaml;
$(MSBuildThisFileDirectory)$(LangName)\ApplicationDefinition.xaml;
$(MSBuildThisFileDirectory)$(LangName)\Page.xaml;
$(MSBuildThisFileDirectory)$(LangName)\AppxManifest.xaml;
$(MSBuildThisFileDirectory)$(LangName)\DesignData.xaml;
$(MSBuildThisFileDirectory)$(LangName)\DesignDataWithDesignTimeCreatableTypes.xaml;
">
<Context>File;BrowseObject</Context>
</PropertyPageSchema>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\ProjectItemsSchema.xaml"/>
</ItemGroup>
<ItemDefinitionGroup Condition=" '$(DefineExplicitDefaults)' == 'true' ">
<PRIResource>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</PRIResource>
<AppxManifest>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</AppxManifest>
<Page>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Page>
<ApplicationDefinition>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</ApplicationDefinition>
<DesignData>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</DesignData>
<DesignDataWithDesignTimeCreatableTypes>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</DesignDataWithDesignTimeCreatableTypes>
</ItemDefinitionGroup>
</Project>

48
eng/msbuild/uwp/8.1/Microsoft.Windows.UI.Xaml.VisualBasic.targets

@ -0,0 +1,48 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.VisualBasic.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'WindowsPhoneApp' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.1</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">WindowsPhoneApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v8.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'windows' OR '$(TargetPlatformIdentifier)' == '' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.1</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETCore</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v4.5.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup>
<ImplicitlyExpandTargetPlatform Condition="'$(ImplicitlyExpandTargetPlatform)' == '' ">true</ImplicitlyExpandTargetPlatform>
<ImplicitlyExpandTargetFramework Condition="'$(ImplicitlyExpandTargetFramework)' == '' ">true</ImplicitlyExpandTargetFramework>
<NoStdLib Condition="'$(NoStdLib)' == ''">true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<WindowsAppContainer>true</WindowsAppContainer>
<AppxPackage Condition="'$(OutputType)' == 'AppContainerExe'">True</AppxPackage>
<SuppressWarningsInPass1 Condition="'$(SuppressWarningsInPass1)' == '' ">true</SuppressWarningsInPass1>
<ExplicitResetWarningSuppression>true</ExplicitResetWarningSuppression>
<MyType Condition="'$(MyType)' == ''">Empty</MyType>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Cps.targets" />
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\VisualBasic.ProjectItemsSchema.xaml"/>
</ItemGroup>
</Project>

BIN
eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.Build.Tasks.dll

Binary file not shown.

174
eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.CPP.targets

@ -0,0 +1,174 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.Cpp.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BeforeClCompileTargets>
MarkupCompilePass1;
$(BeforeClCompileTargets)
</BeforeClCompileTargets>
<ComputeCompileInputsTargets>
ComputeXamlGeneratedCompileInputs;
$(ComputeCompileInputsTargets)
</ComputeCompileInputsTargets>
<AfterBuildCompileTargets>
$(ComputeLinkInputsTargets);
CreateWinMD;
ComputeGeneratedWinMD;
MarkupCompilePass2;
ComputeInvalidXamlGenerated;
CompileXamlGeneratedFiles;
$(AfterBuildCompileTargets)
</AfterBuildCompileTargets>
<XamlPreLinkDependsOn>
$(XamlPreLinkDependsOn);
ComputeXamlGeneratedCLOutputs
</XamlPreLinkDependsOn>
<GenerateProjectionAssembly>True</GenerateProjectionAssembly>
<OnlyCreateWinMD>true</OnlyCreateWinMD>
<ImplicitlyExpandTargetPlatform>false</ImplicitlyExpandTargetPlatform>
</PropertyGroup>
<PropertyGroup>
<ValidatePresenceOfAppxManifestItemsDependsOn>
$(ValidatePresenceOfAppxManifestItemsDependsOn);
_CreateContentItemOutOfCustomAppxManifest
</ValidatePresenceOfAppxManifestItemsDependsOn>
</PropertyGroup>
<ItemGroup>
<PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\Xaml.xml" />
</ItemGroup>
<!-- This is a proxy target that holds stuff that runs before the final Link -->
<Target Name="XamlPreLink" BeforeTargets="Link" DependsOnTargets="$(XamlPreLinkDependsOn)" />
<Target Name="ComputeGeneratedWinMD" >
<PropertyGroup>
<LocalAssembly Condition="'$(LocalAssembly)' == '' and '%(Link.WindowsMetadataFile)' != ''">%(Link.WindowsMetadataFile)</LocalAssembly>
</PropertyGroup>
</Target>
<!-- Change AppxManifest.xml override item to be of Content type. -->
<Target Name="_CreateContentItemOutOfCustomAppxManifest">
<ItemGroup>
<Content Include="@(Xml)" Condition="'%(Identity)' == 'AppxManifest.xml'" />
<Xml Remove="@(Xml)" Condition="'%(Identity)' == 'AppxManifest.xml'" />
</ItemGroup>
</Target>
<PropertyGroup>
<GeneratedFilesDir Condition=" '$(GeneratedFilesDir)' == ''">Generated Files\</GeneratedFilesDir>
<XamlGeneratedOutputPath>$(GeneratedFilesDir)</XamlGeneratedOutputPath>
<ExtensionsToDeleteOnClean>$(ExtensionsToDeleteOnClean);*.g.h;*.g.cpp;*.xaml</ExtensionsToDeleteOnClean>
</PropertyGroup>
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets" />
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\Cpp.ProjectItemsSchema.xaml"/>
</ItemGroup>
<!-- Generated files output group population -->
<PropertyGroup>
<GeneratedFilesOutputGroupDependsOn>XamlGeneratedFilesOutputGroup;$(GeneratedFilesOutputGroupDependsOn)</GeneratedFilesOutputGroupDependsOn>
</PropertyGroup>
<Target Name="XamlGeneratedFilesOutputGroup"
DependsOnTargets="$(XamlGeneratedFilesOutputGroupDependsOn)"
Condition="'@(Page)@(ApplicationDefinition)' != ''">
<ItemGroup>
<GeneratedFilesOutputGroup Condition="'%(Page.ExcludedFromBuild)'!='true'" Include="@(Page->'$(XamlGeneratedOutputPath)%(Filename).g.h')" />
<GeneratedFilesOutputGroup Condition="'%(Page.ExcludedFromBuild)'!='true'" Include="@(Page->'$(XamlGeneratedOutputPath)%(Filename).g.cpp')" />
<GeneratedFilesOutputGroup Condition="'%(ApplicationDefinition.ExcludedFromBuild)'!='true'" Include="@(ApplicationDefinition->'$(XamlGeneratedOutputPath)%(Filename).g.h')" />
<GeneratedFilesOutputGroup Condition="'%(ApplicationDefinition.ExcludedFromBuild)'!='true'" Include="@(ApplicationDefinition->'$(XamlGeneratedOutputPath)%(Filename).g.cpp')" />
</ItemGroup>
</Target>
<Target Name="ComputeXamlGeneratedCompileInputs"
DependsOnTargets="$(ComputeXamlGeneratedCompileInputsDependsOn)"
Condition="'@(Page)@(ApplicationDefinition)' != ''">
<ItemGroup>
<ClCompile Include="$(XamlGeneratedOutputPath)XamlTypeInfo.g.cpp" >
<CompilerIteration>XamlGenerated</CompilerIteration>
</ClCompile>
<ClCompile Include="$(XamlGeneratedOutputPath)XamlTypeInfo.Impl.g.cpp" />
<ClCompile Condition="'$(OutputType)' == 'Library'" Include="$(XamlGeneratedOutputPath)XamlLibMetadataProvider.g.cpp" />
</ItemGroup>
<!-- The build only wants to generate winmd once, either during Link target or Createwinmd target, not both.
Link and Createwinmd targets will execute link.exe, so it is best to run link.exe only once.
However, there are two cases where that isn't possible.
1) when build is building XAML and
2) when building in passes. -->
<PropertyGroup>
<GenerateBuildCompilePassWinMD Condition="'$(GenerateBuildCompilePassWinMD)' == ''">true</GenerateBuildCompilePassWinMD>
</PropertyGroup>
</Target>
<Target Name="ComputeInvalidXamlGenerated" >
<ItemGroup>
<!-- Some files dont exists because XAML files do not always generate .g.cpp -->
<ClCompile Remove="@(ClCompile)" Condition="'%(ClCompile.CompilerIteration)' == 'XamlGenerated' and !Exists('%(Identity)')"/>
</ItemGroup>
</Target>
<!-- Add CL generates .obj files to Obj item group, it will be used by lib or link -->
<Target Name="ComputeXamlGeneratedCLOutputs"
DependsOnTargets="ComputeXamlGeneratedCompileInputs;ComputeInvalidXamlGenerated"
Condition="'@(ClCompile)' != ''">
<ItemGroup>
<!-- Some files dont exists because XAML files do not always generate .g.cpp -->
<ClCompile Remove="@(ClCompile)" Condition="'%(ClCompile.CompilerIteration)' == 'XamlGenerated' and !Exists('%(Identity)')"/>
<!-- No object file name defined: filename.obj -->
<Obj Condition="'%(ClCompile.ObjectFileName)'=='' and '%(ClCompile.ExcludedFromBuild)'!='true'" Include="@(ClCompile->'%(Filename).obj')" />
<!-- Object file name is a directory (has trailing slash): ofn\filename.obj -->
<Obj Condition="HasTrailingSlash('%(ClCompile.ObjectFileName)') and '%(ClCompile.ExcludedFromBuild)'!='true'" Include="@(ClCompile->'%(ObjectFileName)%(Filename).obj')" />
<!-- Object file name is a file (does not has trailing slash): ofn -->
<Obj Condition="'%(ClCompile.ObjectFileName)' != '' and !HasTrailingSlash('%(ClCompile.ObjectFileName)') and '%(ClCompile.ExcludedFromBuild)'!='true'" Include="@(ClCompile->'%(ObjectFileName)')" />
<Link Include="@(Obj->WithMetadataValue('CompilerIteration', 'XamlGenerated')->ClearMetadata())" />
</ItemGroup>
</Target>
<!-- Enable design time build as well as selected file(s) compile support -->
<PropertyGroup>
<EnableDesignTimeBuild>true</EnableDesignTimeBuild>
</PropertyGroup>
<ItemDefinitionGroup>
<Page>
<GeneratorTarget>DesignTimeMarkupCompilation</GeneratorTarget>
</Page>
<ApplicationDefinition>
<GeneratorTarget>DesignTimeMarkupCompilation</GeneratorTarget>
</ApplicationDefinition>
</ItemDefinitionGroup>
<PropertyGroup>
<MarkupCompilePass1DependsOn>CppDesignTimeMarkupCompilation;$(MarkupCompilePass1DependsOn)</MarkupCompilePass1DependsOn>
</PropertyGroup>
<Target Name="CppDesignTimeMarkupCompilation"
DependsOnTargets="_SelectedFiles;SelectCustomBuild;ResolveReferences">
<!-- Ideally we'd like to be able to build just the requested files (if it makes sense). -->
<!--<ItemGroup Condition="'@(SelectedFiles)'!=''">
<Page Remove="@(Page)" Condition="'%(Identity)'!='@(SelectedFiles)'"/>
<ApplicationDefinition Remove="@(ApplicationDefinition)" Condition="'%(Identity)'!='@(SelectedFiles)'"/>
</ItemGroup>-->
</Target>
</Project>

61
eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.CSharp.targets

@ -0,0 +1,61 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.CSharp.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'WindowsPhoneApp' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.1</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">WindowsPhoneApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v8.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'windows' OR '$(TargetPlatformIdentifier)' == '' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.2</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETCore</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v4.5.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'UAP'">
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETCore</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v5.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(SDKIdentifier)' == '' and '$(TargetPlatformIdentifier)' == 'UAP'">
<SDKIdentifier>Windows</SDKIdentifier>
<SDKVersion>10.0</SDKVersion>
</PropertyGroup>
<PropertyGroup>
<UWPNugetRepo Condition="'$(UWPNugetRepo)' == ''">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\NuGet\Repository', 'UWPNugetPackages', null, RegistryView.Registry32, RegistryView.Default))</UWPNugetRepo>
<RestoreAdditionalProjectFallbackFolders>$(RestoreAdditionalProjectFallbackFolders);$(UWPNugetRepo)</RestoreAdditionalProjectFallbackFolders>
</PropertyGroup>
<PropertyGroup>
<ImplicitlyExpandTargetPlatform Condition="'$(ImplicitlyExpandTargetPlatform)' == '' ">true</ImplicitlyExpandTargetPlatform>
<ImplicitlyExpandTargetFramework Condition="'$(ImplicitlyExpandTargetFramework)' == '' ">true</ImplicitlyExpandTargetFramework>
<NoStdLib Condition="'$(NoStdLib)' == ''">true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<WindowsAppContainer>true</WindowsAppContainer>
<AppxPackage Condition="'$(OutputType)' == 'AppContainerExe'">True</AppxPackage>
<!-- Supress the warnings in the 1st pass so that warnings are not repeated twice -->
<SuppressWarningsInPass1 Condition="'$(SuppressWarningsInPass1)' == '' ">true</SuppressWarningsInPass1>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Cps.targets" />
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\CSharp.ProjectItemsSchema.xaml"/>
</ItemGroup>
</Project>

753
eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.Common.targets

@ -0,0 +1,753 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.Common.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="ImportBefore\*"/>
<!-- Need the path to vcmeta.dll -->
<PropertyGroup>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\15.0\Setup\VC@ProductDir)</VCInstallDir>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\15.0\Setup\VC@ProductDir)</VCInstallDir>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSWinExpress\15.0\Setup\VC@ProductDir)</VCInstallDir>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSWinExpress\15.0\Setup\VC@ProductDir)</VCInstallDir>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(VsInstallRoot)\Common7\IDE\VC\</VCInstallDir>
<WindowsSdkPath Condition="'$(WindowsSdkPath)'==''">$(TargetPlatformSdkRootOverride)</WindowsSdkPath>
<WindowsSdkPath Condition="'$(WindowsSdkPath)'==''">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\$(SDKIdentifier)\v$(SDKVersion)', 'InstallationFolder', null, RegistryView.Registry32, RegistryView.Default))</WindowsSdkPath>
<XAMLFingerprint Condition="'$(XAMLFingerprint)' == ''">true</XAMLFingerprint>
<DisableXbfGeneration Condition="'$(DisableXbfGeneration)' == '' AND '$(TargetPlatformVersion)' == '8.0'">true</DisableXbfGeneration>
<DisableXbfGeneration Condition="'$(DisableXbfGeneration)' == ''">false</DisableXbfGeneration>
<XamlSavedStateFileName Condition="'$(XamlSavedStateFileName)' == ''">XamlSaveStateFile.xml</XamlSavedStateFileName>
<XamlSavedStateFilePath>$(IntermediateOutputPath)\$(XamlSavedStateFileName)</XamlSavedStateFilePath>
<XAMLFingerprintIgnorePaths Condition="'$(XAMLFingerprintIgnorePaths)'==''">
@(ReferenceAssemblyPaths);
$(WindowsSdkPath)
</XAMLFingerprintIgnorePaths>
<!-- Note that like a few other properties FacadeWinmdPath is used beyond msbuild infrastructure. -->
<FacadeWinmdPath>$(WindowsSdkPath)\UnionMetadata\facade\Windows.winmd</FacadeWinmdPath>
</PropertyGroup>
<ItemGroup Condition="'$(BuildingInsideVisualStudio)'=='true'">
<AvailableItemName Include="PRIResource" />
<AvailableItemName Include="AppxManifest" />
<AvailableItemName Include="ApplicationDefinition" />
<AvailableItemName Include="Page" />
<AvailableItemName Include="DesignData" />
<AvailableItemName Include="DesignDataWithDesignTimeCreatableTypes" />
</ItemGroup>
<ItemGroup>
<ProjectCapability Include="WindowsXaml"/>
<ProjectCapability Include="WindowsXamlPage"/>
<ProjectCapability Include="WindowsXamlCodeBehind"/>
<ProjectCapability Include="WindowsXamlResourceDictionary"/>
<ProjectCapability Include="WindowsXamlUserControl"/>
<ProjectCapability Include="WindowsUniversalMultiViews"/>
</ItemGroup>
<!-- For Managed Assemblies Create a XAML Roots Log -->
<PropertyGroup Condition="'$(ManagedAssembly)' != 'false'">
<XamlRootsLog>$(AssemblyName).xr.xml</XamlRootsLog>
</PropertyGroup>
<!-- Setting PRI index name. The XAML compiler use this in the LoadComponent() string.
It must match the name of the directoy the AppX Packaging system uses -->
<PropertyGroup>
<!-- Exe's don't have an PriIndexName -->
<PriIndexName Condition="'$(AppxPackage)' == 'true'"></PriIndexName>
<!-- Managed Dll's use the "safe" name of the project as the App Package Name -->
<PriIndexName Condition="'$(AppxPackage)' != 'true' and '$(ManagedAssembly)' != 'false' and '$(OutputType)' != 'winmdobj'">$(TargetName)</PriIndexName>
<!-- Winmd library targets (managed or native) use the default root namespace of the project for the App package name -->
<PriIndexName Condition="'$(AppxPackage)' != 'true' and '$(ManagedAssembly)' != 'false' and '$(OutputType)' == 'winmdobj'">$(RootNamespace)</PriIndexName>
<PriIndexName Condition="'$(AppxPackage)' != 'true' and '$(ManagedAssembly)' == 'false' and '$(RootNamespace)' != ''">$(RootNamespace)</PriIndexName>
<!-- If RootNamespace is empty fall back to TargetName -->
<PriIndexName Condition="'$(AppxPackage)' != 'true' and $(PriIndexName) == ''">$(TargetName)</PriIndexName>
</PropertyGroup>
<PropertyGroup>
<AvailablePlatforms>$(AvailablePlatforms),ARM</AvailablePlatforms>
<!-- this Property is used only for the Managed build.
See Microsoft.Windows.UI.Xaml.Cpp.targets for Native build rules -->
<PrepareResourcesDependsOn>
ResolveKeySource;
MarkupCompilePass1;
XamlPreCompile;
MarkupCompilePass2;
$(PrepareResourcesDependsOn)
</PrepareResourcesDependsOn>
<Prefer32Bit Condition="'$(Prefer32Bit)' == '' and ('$(OutputType)' == 'exe' or '$(OutputType)' == 'winexe' or '$(OutputType)' == 'appcontainerexe')">true</Prefer32Bit>
<HighEntropyVA Condition="'$(HighEntropyVA)' == ''">true</HighEntropyVA>
<SubsystemVersion Condition="'$(SubsystemVersion)' == '' and ('$(PlatformTarget)' == 'ARM' or '$(OutputType)' == 'appcontainerexe' or '$(OutputType)' == 'winmdobj')">6.02</SubsystemVersion>
<SubsystemVersion Condition="'$(SubsystemVersion)' == ''">6.00</SubsystemVersion>
<OnXamlPreCompileErrorTarget Condition="'$(OnXamlPreCompileErrorTarget)' == ''">_OnXamlPreCompileError</OnXamlPreCompileErrorTarget>
<!-- Use Intermediate dir if XamlGeneratedOutputPath is not defined -->
<XamlGeneratedOutputPath Condition="'$(XamlGeneratedOutputPath)' == ''">$(IntermediateOutputPath)</XamlGeneratedOutputPath>
</PropertyGroup>
<UsingTask TaskName="Microsoft.Windows.UI.Xaml.Build.Tasks.CompileXaml" AssemblyFile="Microsoft.Windows.UI.Xaml.Build.Tasks.dll" />
<UsingTask TaskName="Microsoft.Windows.UI.Xaml.Build.Tasks.AddDefaultXamlLinkMetadata" AssemblyFile="Microsoft.Windows.UI.Xaml.Build.Tasks.dll" />
<UsingTask TaskName="Microsoft.Windows.UI.Xaml.Build.Tasks.GetXamlCppIncludeDirectories" AssemblyFile="Microsoft.Windows.UI.Xaml.Build.Tasks.dll" />
<PropertyGroup>
<!--If the path to the sign tool is not set, assume the SDK path -->
<SignToolPath Condition="'$(SignToolPath)' == ''">$(FrameworkSDKRoot)bin</SignToolPath>
<!--Integration with packaging for GeneratedXamlFilesOutputGroupOutput -->
<IncludeCustomOutputGroupForPackaging>true</IncludeCustomOutputGroupForPackaging>
</PropertyGroup>
<ItemGroup>
<XamlIntermediateAssembly Condition="'$(ManagedAssembly)'!='false'" Include="$(XamlGeneratedOutputPath)intermediatexaml\$(TargetName)$(TargetExt)"/>
<XamlIntermediateAssembly Condition="'$(ManagedAssembly)'=='false'" Include="$(OutputPath)\$(TargetName).winmd"/>
</ItemGroup>
<!--
============================================================
Adds all XAML Pages to the $(Resource) collection
============================================================
-->
<ItemGroup Condition=" '$(ManagedAssembly)'=='' ">
<!-- Add XAML Page items to $(Resource) -->
<Resource Include="@(Page)" />
<Resource Include="@(ApplicationDefinition)" />
</ItemGroup>
<!-- Manifest metadata items. -->
<!-- See Microsoft.AppxPackage.targets for details. -->
<PropertyGroup>
<XAMLCompilerVersion Condition=" '$(TargetPlatformIdentifier)' == 'UAP' ">8.2</XAMLCompilerVersion>
<XAMLCompilerVersion Condition=" '$(XAMLCompilerVersion)' == '' ">$(TargetPlatformVersion)</XAMLCompilerVersion>
</PropertyGroup>
<!-- Project binary needs to be updated after updating xaml page -->
<ItemGroup>
<CustomAdditionalCompileInputs Include="@(Page)" />
</ItemGroup>
<ItemGroup Label="AppxManifestMetadata">
<AppxManifestMetadata Include="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\$(XAMLCompilerVersion)\Microsoft.Windows.UI.Xaml.Build.Tasks.dll" />
</ItemGroup>
<PropertyGroup>
<MarkupCompilePass1DependsOn>
GetXamlCppIncludeDirectories;
$(GetXamlCppIncludeDirectories)
</MarkupCompilePass1DependsOn>
<MarkupCompilePass2DependsOn>
GetXamlCppIncludeDirectories;
$(GetXamlCppIncludeDirectories)
</MarkupCompilePass2DependsOn>
<Prep_ComputeProcessXamlFilesDependsOn>
GetXamlCppIncludeDirectories;
$(Prep_ComputeProcessXamlFilesDependsOn)
</Prep_ComputeProcessXamlFilesDependsOn>
</PropertyGroup>
<!-- In order for the XAML compiler to generated the correct relative paths for #includes in
the generated C++ code it needs to know the AdditionalIncludeDirectories of all the .cpp
files are DependentUpon XAML files.-->
<Target Name="GetXamlCppIncludeDirectories" Condition="'$(ManagedAssembly)'=='false' and '$(XamlCppIncludeDirectories)' == ''">
<GetXamlCppIncludeDirectories ClCompile="@(ClCompile)">
<Output PropertyName="XamlCppIncludeDirectories" TaskParameter="ComputedIncludeDirectories" />
</GetXamlCppIncludeDirectories>
</Target>
<!--
================================================================
DesignTimeMarkupCompilation
Support for the Intellisense build
================================================================
-->
<PropertyGroup>
<CoreCompileDependsOn Condition="'$(BuildingInsideVisualStudio)' == 'true' ">
DesignTimeMarkupCompilation;
$(CoreCompileDependsOn)
</CoreCompileDependsOn>
</PropertyGroup>
<Target Name="DesignTimeMarkupCompilation">
<!-- BuildingProject is used in Managed builds (always true in Native) -->
<!-- DesignTimeBuild is used in Native builds (always false in Managed) -->
<CallTarget Condition="'$(BuildingProject)' != 'true' Or $(DesignTimeBuild) == 'true'" Targets="DesignTimeMarkupCompilationCT" />
</Target>
<!-- A copy of the first pass, without the WarningLevel manipulation -->
<Target Name="DesignTimeMarkupCompilationCT"
DependsOnTargets="$(MarkupCompilePass1DependsOn)"
Condition="'@(Page)' != '' Or '@(ApplicationDefinition)' != '' " >
<MakeDir Condition="'$(ManagedAssembly)'!='false'" Directories="$(XamlGeneratedOutputPath)intermediatexaml\" />
<ItemGroup>
<ReferencePath Condition="'$(Language)'=='C++' and Exists($(FacadeWinmdPath))" Include="$(FacadeWinmdPath)" />
</ItemGroup>
<CompileXaml
LanguageSourceExtension="$(DefaultLanguageSourceExtension)"
Language="$(Language)"
RootNamespace="$(RootNamespace)"
XamlPages="@(Page)"
XamlApplications="@(ApplicationDefinition)"
PriIndexName="$(PriIndexName)"
ProjectName="$(MsBuildProjectName)"
IsPass1="True"
CodeGenerationControlFlags="$(XamlCodeGenerationControlFlags)"
CIncludeDirectories="$(XamlCppIncludeDirectories)"
ProjectPath="$(MSBuildProjectFullPath)"
OutputPath="$(XamlGeneratedOutputPath)"
OutputType="$(OutputType)"
ReferenceAssemblyPaths="@(ReferenceAssemblyPaths)"
ReferenceAssemblies="@(ReferencePath)"
ForceSharedStateShutdown="False"
ContinueOnError="True"
CompileMode="DesignTimeBuild"
XAMLFingerprint="$(XAMLFingerprint)"
FingerprintIgnorePaths="$(XAMLFingerprintIgnorePaths)"
VCInstallDir="$(VCInstallDir)"
SavedStateFile="$(XamlSavedStateFilePath)"
SuppressWarnings="$(SuppressXamlWarnings)"
TargetPlatformMinVersion="$(TargetPlatformMinVersion)"
WindowsSdkPath="$(WindowsSdkPath)"
>
<Output Condition=" '$(ManagedAssembly)'!='false' " ItemName="Compile" TaskParameter="GeneratedCodeFiles" />
<!--
Add to the list of files written.
It is used in Microsoft.Common.targets for a next clean build
-->
<Output ItemName="FileWrites" TaskParameter="GeneratedCodeFiles" />
<Output ItemName="FileWrites" TaskParameter="GeneratedXamlFiles" />
<Output ItemName="_GeneratedCodeFiles" TaskParameter="GeneratedCodeFiles" />
</CompileXaml>
<ItemGroup>
<FileWrites Include="$(XamlSavedStateFilePath)" />
</ItemGroup>
<Message Text="(Out) ISenseCodeFiles: '@(_GeneratedCodeFiles)'" />
<Message Text="(Out) ISenseXamlFiles: '@(_GeneratedXamlFiles)'" />
<Message Text="(Out) ClCompile: '@(ClCompile)'" Condition="'%(ClCompile.CompilerIteration)' != 'XamlGenerated'"/>
<Message Text="(Out) Compile: '@(Compile)'" />
</Target>
<!--
================================================================
MarkupCompilePass1
================================================================
-->
<Target Name="MarkupCompilePass1"
DependsOnTargets="$(MarkupCompilePass1DependsOn)"
Condition="'@(Page)' != '' Or '@(ApplicationDefinition)' != '' " >
<MakeDir Condition="'$(ManagedAssembly)'!='false'" Directories="$(XamlGeneratedOutputPath)intermediatexaml\" />
<ItemGroup>
<ReferencePath Condition="'$(Language)'=='C++' and Exists($(FacadeWinmdPath))" Include="$(FacadeWinmdPath)" />
</ItemGroup>
<CompileXaml
LanguageSourceExtension="$(DefaultLanguageSourceExtension)"
Language="$(Language)"
RootNamespace="$(RootNamespace)"
XamlPages="@(Page)"
XamlApplications="@(ApplicationDefinition)"
PriIndexName="$(PriIndexName)"
ProjectName="$(MsBuildProjectName)"
IsPass1="True"
CodeGenerationControlFlags="$(XamlCodeGenerationControlFlags)"
ProjectPath="$(MSBuildProjectFullPath)"
CIncludeDirectories="$(XamlCppIncludeDirectories)"
OutputPath="$(XamlGeneratedOutputPath)"
OutputType="$(OutputType)"
ReferenceAssemblyPaths="@(ReferenceAssemblyPaths)"
ReferenceAssemblies="@(ReferencePath)"
ForceSharedStateShutdown="False"
CompileMode="RealBuildPass1"
XAMLFingerprint="$(XAMLFingerprint)"
FingerprintIgnorePaths="$(XAMLFingerprintIgnorePaths)"
VCInstallDir="$(VCInstallDir)"
SavedStateFile="$(XamlSavedStateFilePath)"
SuppressWarnings="$(SuppressXamlWarnings)"
TargetPlatformMinVersion="$(TargetPlatformMinVersion)"
WindowsSdkPath="$(WindowsSdkPath)"
>
<Output Condition=" '$(ManagedAssembly)'!='false' " ItemName="Compile" TaskParameter="GeneratedCodeFiles" />
<!--
FileWrites is used in Microsoft.Common.targets for "Clean" build
-->
<Output ItemName="FileWrites" TaskParameter="GeneratedCodeFiles" />
<Output ItemName="FileWrites" TaskParameter="GeneratedXamlFiles" />
<Output ItemName="FileWrites" TaskParameter="GeneratedXbfFiles" />
<Output ItemName="_GeneratedCodeFiles" TaskParameter="GeneratedCodeFiles" />
</CompileXaml>
<ItemGroup>
<FileWrites Include="$(XamlSavedStateFilePath)" />
</ItemGroup>
<Message Text="(Out) GeneratedCodeFiles: '@(_GeneratedCodeFiles)'" />
<Message Text="(Out) ClCompile: '@(ClCompile)'" Condition="'$(ManagedAssembly)'=='false' and '%(ClCompile.CompilerIteration)'!='XamlGenerated'"/>
<Message Text="(Out) Compile: '@(Compile)'" Condition="'$(ManagedAssembly)'!='false'"/>
<PropertyGroup>
<PrevWarningLevel>$(WarningLevel)</PrevWarningLevel>
<WarningLevel Condition="'$(SuppressWarningsInPass1)'=='true'">0</WarningLevel>
</PropertyGroup>
</Target>
<!--
================================================================
MarkupCompilePass2
================================================================
-->
<Target Name="MarkupCompilePass2"
DependsOnTargets="$(MarkupCompilePass2DependsOn)"
Condition="'@(Page)' != '' Or '@(ApplicationDefinition)' != '' " >
<PropertyGroup>
<WarningLevel>$(PrevWarningLevel)</WarningLevel>
<WarningLevel Condition="'$(WarningLevel)' == '' and '$(ExplicitResetWarningSuppression)' == 'true'">1</WarningLevel>
</PropertyGroup>
<!-- The Name of the Local Assembly in Managed and Native -->
<PropertyGroup>
<LocalAssembly Condition="'$(LocalAssembly)' == '' and Exists(@(XamlIntermediateAssembly))">
@(XamlIntermediateAssembly->'%(Identity)')
</LocalAssembly>
</PropertyGroup>
<CallTarget Targets="SDKRedistOutputGroup" Condition="'$(IncludeSDKRedistOutputGroup)' == 'true'">
<Output TaskParameter="TargetOutputs" ItemName="_SDKRedistOutputGroupOutput_xaml"/>
</CallTarget>
<ItemGroup>
<SdkXamlItems Include="@(_SDKRedistOutputGroupOutput_xaml)" Condition="'%(Extension)'=='.xaml'" />
</ItemGroup>
<ItemGroup>
<!-- C++ provides a filtered Item that eliminates any Managed Assemblies on the ReferencePath (from SDKs for example) -->
<XamlReferencesToCompile Condition="'$(Language)'=='C++'" Include="@(WinMDReferenceToCompile)" />
<XamlReferencesToCompile Condition="'$(Language)'=='C++' and Exists($(FacadeWinmdPath))" Include="$(FacadeWinmdPath)" />
<XamlReferencesToCompile Condition="'$(Language)'!='C++'" Include="@(ReferencePath)" />
</ItemGroup>
<CompileXaml
LanguageSourceExtension="$(DefaultLanguageSourceExtension)"
Language="$(Language)"
RootNamespace="$(RootNamespace)"
XamlPages="@(Page)"
XamlApplications="@(ApplicationDefinition)"
SdkXamlPages="@(SdkXamlItems)"
PriIndexName="$(PriIndexName)"
ProjectName="$(MsBuildProjectName)"
IsPass1="False"
DisableXbfGeneration="$(DisableXbfGeneration)"
CodeGenerationControlFlags="$(XamlCodeGenerationControlFlags)"
ClIncludeFiles="@(ClInclude)"
CIncludeDirectories="$(XamlCppIncludeDirectories)"
LocalAssembly="$(LocalAssembly)"
ProjectPath="$(MSBuildProjectFullPath)"
OutputPath="$(XamlGeneratedOutputPath)"
OutputType="$(OutputType)"
ReferenceAssemblyPaths="@(ReferenceAssemblyPaths)"
ReferenceAssemblies="@(XamlReferencesToCompile)"
ForceSharedStateShutdown="False"
CompileMode="RealBuildPass2"
XAMLFingerprint="$(XAMLFingerprint)"
FingerprintIgnorePaths="$(XAMLFingerprintIgnorePaths)"
VCInstallDir="$(VCInstallDir)"
WindowsSdkPath="$(WindowsSdkPath)"
SavedStateFile="$(XamlSavedStateFilePath)"
RootsLog="$(XamlRootsLog)"
SuppressWarnings="$(SuppressXamlWarnings)"
TargetPlatformMinVersion="$(TargetPlatformMinVersion)"
BuildConfiguration="$(Configuration)"
DisableXbfLineInfo="$(DisableXbfLineInfo)">
<Output Condition=" '$(ManagedAssembly)'!='false' " ItemName="Compile" TaskParameter="GeneratedCodeFiles" />
<Output Condition=" '$(ManagedAssembly)'=='false' " ItemName="XamlGFiles" TaskParameter="GeneratedCodeFiles" />
<!--
FileWrites is used in Microsoft.Common.targets for "Clean" build
-->
<Output ItemName="FileWrites" TaskParameter="GeneratedCodeFiles" />
<Output ItemName="FileWrites" TaskParameter="GeneratedXamlFiles" />
<Output ItemName="FileWrites" TaskParameter="GeneratedXbfFiles" />
<Output ItemName="_GeneratedCodeFiles" TaskParameter="GeneratedCodeFiles" />
<Output ItemName="_GeneratedXamlFiles" TaskParameter="GeneratedXamlFiles" />
<Output ItemName="_GeneratedXbfFiles" TaskParameter="GeneratedXbfFiles" />
</CompileXaml>
<ItemGroup>
<FileWrites Include="$(XamlSavedStateFilePath)" />
<FileWrites Condition="'$(XamlRootsLog)' != ''" Include="$(XamlRootsLog)" />
</ItemGroup>
<Message Text="(Out) GeneratedCodeFiles: '@(_GeneratedCodeFiles)'" />
<Message Text="(Out) GeneratedXamlFiles: '@(_GeneratedXamlFiles)'" />
<Message Text="(Out) GeneratedXbfFiles: '@(_GeneratedXbfFiles)'" />
<Message Text="(Out) ClCompile: '@(ClCompile)'" Condition="'$(ManagedAssembly)'=='false'"/>
<Message Text="(Out) Compile: '@(Compile)'" Condition="'$(ManagedAssembly)'!='false'"/>
</Target>
<Target Name="_OnXamlPreCompileError"
DependsOnTargets="$(_OnXamlPrecompileErrorDependsOn)" >
<CompileXaml
ProjectPath="$(MSBuildProjectFullPath)"
Language="$(Language)"
LanguageSourceExtension="$(DefaultLanguageSourceExtension)"
OutputPath="$(XamlGeneratedOutputPath)"
ReferenceAssemblies="@(ReferencePath)"
ReferenceAssemblyPaths="@(ReferenceAssemblyPaths)"
XamlPages="@(Page)"
XamlApplications="@(ApplicationDefinition)"
ForceSharedStateShutdown="True"
CompileMode="OnErrorShutdown"
SavedStateFile="$(XamlSavedStateFilePath)"
TargetPlatformMinVersion="$(TargetPlatformMinVersion)"
>
</CompileXaml>
</Target>
<Target Name="Prep_ComputeProcessXamlFiles"
Condition="'@(ApplicationDefinition)'!='' or '@(Page)'!=''"
DependsOnTargets="$(Prep_ComputeProcessXamlFilesDependsOn)" >
<!-- collect all the XAML pages from the Project file into one Item -->
<ItemGroup>
<AllProjectXamlPages Condition="'%(ApplicationDefinition.ExcludedFromBuild)'!='true'" Include="@(ApplicationDefinition)" />
<AllProjectXamlPages Condition="'%(Page.ExcludedFromBuild)'!='true'" Include="@(Page)" />
</ItemGroup>
<!-- For items are outside the project core Link metadata tells us what the apparent project path should be.
C++ doesn't use Link data, so for C++ add implied DefaultXamlLink metadata based on the Include Path -->
<AddDefaultXamlLinkMetadata Condition="'$(ManagedAssembly)'=='false'"
ProjectPath="$(ProjectPath)"
XamlPages="@(AllProjectXamlPages)"
CIncludeDirectories ="$(XamlCppIncludeDirectories)">
<Output TaskParameter="OutputItems" ItemName="_Temp" />
</AddDefaultXamlLinkMetadata>
<!-- Remove the Items named in _Temp, then add the actual items from _Temp, then clear _Temp -->
<ItemGroup>
<AllProjectXamlPages Remove="@(_Temp)" />
<AllProjectXamlPages Include="@(_Temp)" />
<_Temp Remove="@(_Temp)" />
</ItemGroup>
<!-- transfer the DefaultXamlLink data to the Link attribute -->
<ItemGroup>
<AllProjectXamlPages Condition="'%(AllProjectXamlPages.DefaultXamlLink)'!=''">
<Link>%(AllProjectXamlPages.DefaultXamlLink)</Link>
</AllProjectXamlPages>
</ItemGroup>
<!-- Compute the Generated XAML source path and the bin dir Destination path -->
<!-- If there is a Link use that, otherwise use the Given path from the Project file Item -->
<ItemGroup>
<GeneratedXamlSrc0 Condition="'%(AllProjectXamlPages.Link)'!=''" Include="@(AllProjectXamlPages->'$(XamlGeneratedOutputPath)%(Link)')" />
<GeneratedXamlSrc0 Condition="'%(AllProjectXamlPages.Link)'==''" Include="@(AllProjectXamlPages->'$(XamlGeneratedOutputPath)%(Identity)')" />
<GeneratedXamlDest0 Condition="'%(AllProjectXamlPages.Link)'!=''" Include="@(AllProjectXamlPages->'$(OutputPath)\%(Link)')" />
<GeneratedXamlDest0 Condition="'%(AllProjectXamlPages.Link)'==''" Include="@(AllProjectXamlPages->'$(OutputPath)\%(Identity)')" />
</ItemGroup>
<!-- Swap in the XBF suffix if appropriate. -->
<ItemGroup Condition="'$(DisableXbfGeneration)' == 'true'">
<GeneratedXamlSrc Include="@(GeneratedXamlSrc0)" />
<GeneratedXamlDest Include="@(GeneratedXamlDest0)" />
</ItemGroup>
<ItemGroup Condition="'$(DisableXbfGeneration)' != 'true'">
<GeneratedXamlSrc Include="%(GeneratedXamlSrc0.RelativeDir)%(GeneratedXamlSrc0.Filename).xbf" />
<GeneratedXamlDest Include="%(GeneratedXamlDest0.RelativeDir)%(GeneratedXamlDest0.Filename).xbf" />
</ItemGroup>
<!-- if we converted SDK XAML into XBF, add the XBF to the list, and remove the XAML from the list -->
<ItemGroup Condition="'$(DisableXbfGeneration)' != 'true' and '@(SdkXamlItems)' != ''">
<GeneratedSdkXamlSrc0 Include="@(SdkXamlItems->'$(XamlGeneratedOutputPath)%(TargetPath)')" />
<GeneratedSdkXamlDest0 Include="@(SdkXamlItems->'$(OutputPath)\%(TargetPath)')" />
<GeneratedXamlSrc Include="%(GeneratedSdkXamlSrc0.RelativeDir)%(GeneratedSdkXamlSrc0.Filename).xbf" >
<ReferenceSourceTarget>ExpandSDKReference</ReferenceSourceTarget>
</GeneratedXamlSrc>
<GeneratedXamlDest Include="%(GeneratedSdkXamlDest0.RelativeDir)%(GeneratedSdkXamlDest0.Filename).xbf" >
<ReferenceSourceTarget>ExpandSDKReference</ReferenceSourceTarget>
</GeneratedXamlDest>
<RemoveSdkFilesFromAppxPackage Include="@(SdkXamlItems)" />
</ItemGroup>
<ItemGroup Condition="'$(XamlRootsLog)' != ''">
<GeneratedXamlSrc Include="$(XamlGeneratedOutputPath)\$(XamlRootsLog)" />
<GeneratedXamlDest Include="$(OutputPath)\$(XamlRootsLog)" />
</ItemGroup>
<Message Importance="low" Text="(Out) Prep_GeneratedXamlSrc == @(GeneratedXamlSrc)" />
<Message Importance="low" Text="(Out) Prep_GeneratedXamlDest == @(GeneratedXamlDest)" />
</Target>
<!-- if $GenerateLibraryLayout is True this is skipped and see the PrepareLibraryLayout target -->
<Target Name="CopyGeneratedXaml" BeforeTargets="CopyFilesToOutputDirectory" DependsOnTargets="Prep_ComputeProcessXamlFiles"
Condition="'$(GenerateLibraryLayout)' != 'true'">
<Copy
SourceFiles="@(GeneratedXamlSrc)"
DestinationFiles="@(GeneratedXamlDest)"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)"
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
UseHardlinksIfPossible="$(CreateHardLinksForCopyFilesToOutputDirectoryIfPossible)"
/>
<ItemGroup>
<FileWrites Include="@(GeneratedXamlDest)" />
</ItemGroup>
</Target>
<Target Name="ComputeProcessXamlFiles" Returns="@(ProcessedXamlFiles)" DependsOnTargets="Prep_ComputeProcessXamlFiles">
<ItemGroup >
<!-- In the normal (non-SDK) build, AppX Packaging picks up the files from the bin aka OutputPath folder -->
<ProcessedXamlFiles Condition="'$(GenerateLibraryLayout)' != 'true'" Include="@(GeneratedXamlDest)" />
<!-- In the SDK build, AppX Packaging picks up the files from the XamlGeneratedOutput folder -->
<!-- For SDK builds include both the XAML and XBF -->
<ProcessedXamlFiles Condition="'$(GenerateLibraryLayout)' == 'true'" Include="@(GeneratedXamlSrc)" />
<ProcessedXamlFiles Condition="'$(GenerateLibraryLayout)' == 'true' and '$(DisableXbfGeneration)' != 'true'"
Include="@(GeneratedXamlSrc0)" />
</ItemGroup>
<Message Importance="Low" Text="(Out) GeneratedXamlDest == @(GeneratedXamlDest)" />
<Message Importance="Low" Text="(Out) GeneratedXamlSrc == @(GeneratedXamlSrc)" />
<Message Text="(Out) ProcessedXamlFiles == @(ProcessedXamlFiles)" />
</Target>
<Target Name="CustomOutputGroupForPackaging"
DependsOnTargets="ComputeProcessXamlFiles"
Returns="@(CustomOutputGroupForPackagingOutput)"
>
<ItemGroup>
<ProcessedXamlFilesFullPath Include="@(ProcessedXamlFiles->'%(FullPath)')" />
</ItemGroup>
<PropertyGroup>
<XamlPackagingRootFolder Condition="'$(GenerateLibraryLayout)' == 'true'">$(XamlGeneratedOutputPath)</XamlPackagingRootFolder>
<XamlPackagingRootFolder Condition="'$(GenerateLibraryLayout)' != 'true'">$(OutputPath)\</XamlPackagingRootFolder>
</PropertyGroup>
<AssignTargetPath Files="@(ProcessedXamlFilesFullPath)" RootFolder="$(XamlPackagingRootFolder)">
<Output TaskParameter="AssignedFiles" ItemName="CustomOutputGroupForPackagingOutput" />
</AssignTargetPath>
<Message Text="(Out) Project='$(MsBuildProjectName)' ProcessedXamlFiles == @(ProcessedXamlFiles)" />
<Message Text="(Out) XamlPackagingRootFolder == $(XamlPackagingRootFolder)" />
<Message Text="(Out) ProcessedXamlFilesFullPath == @(ProcessedXamlFilesFullPath)" />
<Message Text="(Out) Project='$(MsBuildProjectName)' CustomOutputGroupForPackagingOutput == @(CustomOutputGroupForPackagingOutput)" />
</Target>
<PropertyGroup>
<PrepareLibraryLayoutDependsOn>
GetPackagingOutputs;
$(PrepareLibraryLayoutDependsOn)
</PrepareLibraryLayoutDependsOn>
</PropertyGroup>
<!-- This builds the Bin Folder for DLL's that wish to have the SDK type layout -->
<Target Name="PrepareLibraryLayout"
Condition="'$(GenerateLibraryLayout)' == 'true'"
DependsOnTargets="$(PrepareLibraryLayoutDependsOn)"
BeforeTargets="CopyFilesToOutputDirectory"
>
<ItemGroup>
<_LayoutFile Include="@(PackagingOutputs)" Condition="'%(OutputGroup)' == 'ContentFilesProjectOutputGroup'" />
<_LayoutFile Include="@(PackagingOutputs)" Condition="'%(OutputGroup)' == 'CustomOutputGroupForPackaging'" />
</ItemGroup>
<Copy SourceFiles="@(_LayoutFile)"
DestinationFiles="@(_LayoutFile->'$(OutDir)\%(TargetPath)')"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)"
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
UseHardlinksIfPossible="$(CreateHardLinksForCopyFilesToOutputDirectoryIfPossible)"
/>
</Target>
<!--
============================================================
Properties and Targets Common to Managed .NETCore projects
============================================================
-->
<!--
The ImplicitlyExpandTargetFramework target will expand all
of the dll reference assemblies in the TargetFrameworkDirectory
for the project and place the items into the ReferencePath itemgroup
which contains resolved items.
-->
<PropertyGroup>
<ResolveReferencesDependsOn>
$(ResolveReferencesDependsOn);
ImplicitlyExpandTargetFramework;
ImplicitlyExpandTargetPlatform
</ResolveReferencesDependsOn>
<ImplicitlyExpandTargetFrameworkDependsOn>
$(ImplicitlyExpandTargetFrameworkDependsOn);
GetReferenceAssemblyPaths
</ImplicitlyExpandTargetFrameworkDependsOn>
</PropertyGroup>
<Target Name="ImplicitlyExpandTargetFramework"
Condition="'$(ImplicitlyExpandTargetFramework)' == 'true'"
DependsOnTargets="$(ImplicitlyExpandTargetFrameworkDependsOn)"
>
<ItemGroup>
<ReferenceAssemblyPaths Include="$(_TargetFrameworkDirectories)"/>
<ReferencePath Include="%(ReferenceAssemblyPaths.Identity)*.dll">
<WinMDFile>false</WinMDFile>
<CopyLocal>false</CopyLocal>
<ReferenceGroupingDisplayName>.NET for Windows Store apps</ReferenceGroupingDisplayName>
<ReferenceGrouping>$(TargetFrameworkMoniker)</ReferenceGrouping>
<ResolvedFrom>ImplicitlyExpandTargetFramework</ResolvedFrom>
<IsSystemReference>True</IsSystemReference>
</ReferencePath>
</ItemGroup>
<Message Importance="Low" Text="TargetMonikerDisplayName: $(TargetFrameworkMonikerDisplayName) ReferenceAssemblyPaths: @(ReferenceAssemblyPaths)"/>
<Message Importance="Low" Text="Including @(ReferencePath)"
Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandTargetFramework'"/>
<ItemGroup>
<_ResolveAssemblyReferenceResolvedFiles Include="@(ReferencePath)"
Condition="'%(ReferencePath.ResolvedFrom)' == 'ImplicitlyExpandTargetFramework'"/>
</ItemGroup>
</Target>
<!--
The ImplicitlyExpandTargetPlatform target will find the
appropriate platform in the requested SDK, gather the
list of references for that platform, and add them to the
ReferencePath item which is the ItemGroup which contains
resolved paths to pass to e.g. the compiler.
-->
<Target Name="ImplicitlyExpandTargetPlatform"
Condition="'$(ImplicitlyExpandTargetPlatform)' == 'true'"
>
<ItemGroup>
<_TargetPlatformWinMDs Condition="'$(TargetPlatformSdkRootOverride)' != ''" Include="$(TargetPlatformSdkRootOverride)\References\**\*.winmd">
<WinMDFile>true</WinMDFile>
<CopyLocal>false</CopyLocal>
<ReferenceGrouping>$(TargetPlatformMoniker)</ReferenceGrouping>
<ReferenceGroupingDisplayName>$(TargetPlatformDisplayName)</ReferenceGroupingDisplayName>
<ResolvedFrom>ImplicitlyExpandTargetPlatform</ResolvedFrom>
<IsSystemReference>True</IsSystemReference>
</_TargetPlatformWinMDs>
<_TargetPlatformWinMDs Condition="'$(TargetPlatformSdkRootOverride)' == ''" Include="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetTargetPlatformReferences($(SDKIdentifier), $(SDKVersion), $(TargetPlatformIdentifier), $(TargetPlatformMinVersion), $(TargetPlatformVersion)))">
<WinMDFile>true</WinMDFile>
<CopyLocal>false</CopyLocal>
<ReferenceGrouping>$(TargetPlatformMoniker)</ReferenceGrouping>
<ReferenceGroupingDisplayName>$(TargetPlatformDisplayName)</ReferenceGroupingDisplayName>
<ResolvedFrom>ImplicitlyExpandTargetPlatform</ResolvedFrom>
<IsSystemReference>True</IsSystemReference>
</_TargetPlatformWinMDs>
</ItemGroup>
<Warning Condition="'@(_TargetPlatformWinMDs)' == ''"
Text="Could not find target platform winmds for the SDK specified by [$(SDKIdentifier), $(SDKVersion), $(TargetPlatformIdentifier), $(TargetPlatformMinVersion), $(TargetPlatformVersion)]"/>
<Message Importance="Low" Text="Including @(_TargetPlatformWinMDs)" />
<ItemGroup>
<ReferencePath Include="@(_TargetPlatformWinMDs)" />
<ReferencePath Include="$(FacadeWinmdPath)" Condition="Exists($(FacadeWinmdPath))">
<WinMDFile>true</WinMDFile>
<CopyLocal>false</CopyLocal>
<ReferenceGrouping>$(TargetPlatformMoniker)</ReferenceGrouping>
<ReferenceGroupingDisplayName>$(TargetPlatformDisplayName)</ReferenceGroupingDisplayName>
<ResolvedFrom>ImplicitlyExpandTargetPlatform</ResolvedFrom>
<IsSystemReference>True</IsSystemReference>
</ReferencePath>
<_ResolveAssemblyReferenceResolvedFiles Include="@(_TargetPlatformWinMDs)" />
<!-- Clear out 'temporary' variable -->
<_TargetPlatformWinMDs Remove="@(_TargetPlatformWinMDs)" />
</ItemGroup>
</Target>
<!--
Enable warning when referenced projects have higher version than the current project
for Windows Store projects
-->
<PropertyGroup>
<FindInvalidProjectReferences Condition="'$(TargetPlatformIdentifier)' == 'Windows' and
'$(TargetPlatformVersion)' &gt;= '8.0'">true</FindInvalidProjectReferences>
</PropertyGroup>
<!--
Enable warning when referenced ESDKs do not have MaxPlatformVersion
specified for Windows Store projects
-->
<PropertyGroup>
<SDKReferenceWarnOnMissingMaxPlatformVersion Condition="'$(SDKReferenceWarnOnMissingMaxPlatformVersion)' == '' and
'$(TargetPlatformIdentifier)' == 'Windows' and
'$(TargetPlatformVersion)' &gt;= '8.0'">true</SDKReferenceWarnOnMissingMaxPlatformVersion>
</PropertyGroup>
<!--
Ensure that UAP headless applications' WINMDs are resolved so that GenerateAppxManifest has the required
metadata to generate activatableClass extensions. This should only execute for non-EXE projects that have
<ContainsStartupTask>true</ContainsStartupTask> and create APPX packages.
-->
<Target Name="_ResolvePrimaryProjectWinmdFiles"
BeforeTargets="BeforeGenerateAppxManifest"
AfterTargets="_GetPackagingOutputs"
Condition="'$(OutputType)' != 'exe' and '$(AppxPackage)' == 'true' AND '$(ContainsStartupTask)' == 'true'">
<ItemGroup>
<_AppxWinmdFilesToHarvest Include="@(PackagingOutputs)"
Condition="'%(PackagingOutputs.Extension)' == '.winmd'
and '%(PackagingOutputs.ProjectName)' == '$(ProjectName)'
and '%(PackagingOutputs.ResolvedFrom)' != 'GetSDKReferenceFiles'">
<!-- This covers the Managed Background Application winmd which does NOT have a WinMDFileType value set -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' == ''">WindowsRuntime 1.4;CLR v4.0.30319</ImageRuntime>
<!-- This covers the C++ Background Application winmd which does NOT have a WinMDFileType value set -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' == ''
and '@(Language)' == 'C++'">WindowsRuntime 1.4</ImageRuntime>
<!-- This covers Managed Windows Runtime Component winmds -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' == ''
and '%(PackagingOutputs.WinMDFileType)' == 'Managed'">WindowsRuntime 1.4;CLR v4.0.30319</ImageRuntime>
<!-- This covers Native Windows Runtime Component winmds -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' == ''
and '%(PackagingOutputs.WinMDFileType)' == 'Native'">WindowsRuntime 1.4</ImageRuntime>
<!-- This covers Native Windows Runtime Component winmds for DynamicLibrary projects -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' == ''
and '%(PackagingOutputs.ProjectType)' == 'DynamicLibrary'">WindowsRuntime 1.4</ImageRuntime>
<!-- This provides an override -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' != ''">$(PrimaryProjectWinmdImageRuntimeOverride)</ImageRuntime>
</_AppxWinmdFilesToHarvest>
</ItemGroup>
</Target>
<Import Project="ImportAfter\*"/>
</Project>

52
eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.Cps.targets

@ -0,0 +1,52 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition=" '$(IsCodeSharingProject)' != 'true' ">
<!-- SDK references -->
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\SDKReference.xaml">
<Context>;BrowseObject</Context>
</PropertyPageSchema>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\ResolvedSDKReference.xaml">
<Context>ProjectCapabilitySubscriptionService;BrowseObject</Context>
</PropertyPageSchema>
<ProjectCapability Include="SDKReferences" />
<!-- WinRT references -->
<!-- No need for WinRTReference.xaml because we share an item type with AssemblyReference.xaml -->
<ProjectCapability Include="WinRTReferences" />
</ItemGroup>
<ItemGroup>
<!-- Xaml item types -->
<PropertyPageSchema Include="
$(MSBuildThisFileDirectory)$(LangName)\PRIResource.xaml;
$(MSBuildThisFileDirectory)$(LangName)\ApplicationDefinition.xaml;
$(MSBuildThisFileDirectory)$(LangName)\Page.xaml;
$(MSBuildThisFileDirectory)$(LangName)\AppxManifest.xaml;
$(MSBuildThisFileDirectory)$(LangName)\DesignData.xaml;
$(MSBuildThisFileDirectory)$(LangName)\DesignDataWithDesignTimeCreatableTypes.xaml;
">
<Context>File;BrowseObject</Context>
</PropertyPageSchema>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\ProjectItemsSchema.xaml"/>
</ItemGroup>
<ItemDefinitionGroup Condition=" '$(DefineExplicitDefaults)' == 'true' ">
<PRIResource>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</PRIResource>
<AppxManifest>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</AppxManifest>
<Page>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Page>
<ApplicationDefinition>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</ApplicationDefinition>
<DesignData>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</DesignData>
<DesignDataWithDesignTimeCreatableTypes>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</DesignDataWithDesignTimeCreatableTypes>
</ItemDefinitionGroup>
</Project>

73
eng/msbuild/uwp/8.2/Microsoft.Windows.UI.Xaml.VisualBasic.targets

@ -0,0 +1,73 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.VisualBasic.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'WindowsPhoneApp' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.1</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">WindowsPhoneApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v8.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'windows' OR '$(TargetPlatformIdentifier)' == '' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.2</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETCore</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v4.5.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'UAP'">
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETCore</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v5.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(SDKIdentifier)' == '' and '$(TargetPlatformIdentifier)' == 'UAP'">
<SDKIdentifier>Windows</SDKIdentifier>
<SDKVersion>10.0</SDKVersion>
</PropertyGroup>
<PropertyGroup>
<UWPNugetRepo Condition="'$(UWPNugetRepo)' == ''">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\NuGet\Repository', 'UWPNugetPackages', null, RegistryView.Registry32, RegistryView.Default))</UWPNugetRepo>
<RestoreAdditionalProjectFallbackFolders>$(RestoreAdditionalProjectFallbackFolders);$(UWPNugetRepo)</RestoreAdditionalProjectFallbackFolders>
</PropertyGroup>
<PropertyGroup>
<ImplicitlyExpandTargetPlatform Condition="'$(ImplicitlyExpandTargetPlatform)' == '' ">true</ImplicitlyExpandTargetPlatform>
<ImplicitlyExpandTargetFramework Condition="'$(ImplicitlyExpandTargetFramework)' == '' ">true</ImplicitlyExpandTargetFramework>
<NoStdLib Condition="'$(NoStdLib)' == ''">true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<WindowsAppContainer>true</WindowsAppContainer>
<AppxPackage Condition="'$(OutputType)' == 'AppContainerExe'">True</AppxPackage>
<SuppressWarningsInPass1 Condition="'$(SuppressWarningsInPass1)' == '' ">true</SuppressWarningsInPass1>
<ExplicitResetWarningSuppression>true</ExplicitResetWarningSuppression>
<MyType Condition="'$(MyType)' == ''">Empty</MyType>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Cps.targets" />
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\VisualBasic.ProjectItemsSchema.xaml"/>
</ItemGroup>
<Target
Name="_VBDesignTimePdbFile"
BeforeTargets="CoreCompile"
Condition="'$(BuildingInsideVisualStudio)' == 'true' and '$(BuildingProject)' == 'false'">
<PropertyGroup>
<PdbFile>$(IntermediateOutputPath)$(TargetName).pdb</PdbFile>
</PropertyGroup>
</Target>
</Project>

204
eng/msbuild/uwp/8.21/Microsoft.Windows.UI.Xaml.CPP.targets

@ -0,0 +1,204 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.Cpp.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BeforeClCompileTargets>
MarkupCompilePass1;
$(BeforeClCompileTargets)
</BeforeClCompileTargets>
<ComputeCompileInputsTargets>
ComputeXamlGeneratedCompileInputs;
$(ComputeCompileInputsTargets)
</ComputeCompileInputsTargets>
</PropertyGroup>
<Choose>
<When Condition="'$(ConfigurationType)'=='StaticLibrary'">
<PropertyGroup>
<AfterClCompileTargets>
$(ComputeLinkInputsTargets);
CreateWinMD;
ComputeGeneratedWinMD;
MarkupCompilePass2;
ComputeInvalidXamlGenerated;
CompileXamlGeneratedFiles;
$(AfterClCompileTargets)
</AfterClCompileTargets>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<AfterBuildCompileTargets>
$(ComputeLinkInputsTargets);
CreateWinMD;
ComputeGeneratedWinMD;
MarkupCompilePass2;
ComputeInvalidXamlGenerated;
CompileXamlGeneratedFiles;
$(AfterBuildCompileTargets)
</AfterBuildCompileTargets>
</PropertyGroup>
</Otherwise>
</Choose>
<PropertyGroup>
<XamlPreLinkDependsOn>
$(XamlPreLinkDependsOn);
ComputeXamlGeneratedCLOutputs
</XamlPreLinkDependsOn>
<XamlPreLibDependsOn>
$(XamlPreLibDependsOn);
ComputeXamlGeneratedCLOutputs
</XamlPreLibDependsOn>
<GenerateProjectionAssembly>True</GenerateProjectionAssembly>
<OnlyCreateWinMD>true</OnlyCreateWinMD>
<ImplicitlyExpandTargetPlatform>false</ImplicitlyExpandTargetPlatform>
</PropertyGroup>
<PropertyGroup>
<ValidatePresenceOfAppxManifestItemsDependsOn>
$(ValidatePresenceOfAppxManifestItemsDependsOn);
_CreateContentItemOutOfCustomAppxManifest
</ValidatePresenceOfAppxManifestItemsDependsOn>
</PropertyGroup>
<ItemGroup>
<PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\Xaml.xml" />
</ItemGroup>
<!-- This is a proxy target that holds stuff that runs before the final Link -->
<Target Name="XamlPreLink" BeforeTargets="Link" DependsOnTargets="$(XamlPreLinkDependsOn)" />
<!-- This is a proxy target that holds stuff that runs before the final Link -->
<Target Name="XamlPreLib" BeforeTargets="Lib" DependsOnTargets="$(XamlPreLibDependsOn)" />
<Target Name="ComputeGeneratedWinMD" >
<PropertyGroup>
<LocalAssembly Condition="'$(LocalAssembly)' == '' and '%(Link.WindowsMetadataFile)' != ''">%(Link.WindowsMetadataFile)</LocalAssembly>
</PropertyGroup>
</Target>
<!-- Change AppxManifest.xml override item to be of Content type. -->
<Target Name="_CreateContentItemOutOfCustomAppxManifest">
<ItemGroup>
<Content Include="@(Xml)" Condition="'%(Identity)' == 'AppxManifest.xml'" />
<Xml Remove="@(Xml)" Condition="'%(Identity)' == 'AppxManifest.xml'" />
</ItemGroup>
</Target>
<PropertyGroup>
<GeneratedFilesDir Condition=" '$(GeneratedFilesDir)' == ''">Generated Files\</GeneratedFilesDir>
<XamlGeneratedOutputPath>$(GeneratedFilesDir)</XamlGeneratedOutputPath>
<ExtensionsToDeleteOnClean>$(ExtensionsToDeleteOnClean);*.g.h;*.g.cpp;*.xaml</ExtensionsToDeleteOnClean>
</PropertyGroup>
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets" />
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\Cpp.ProjectItemsSchema.xaml"/>
</ItemGroup>
<!-- Generated files output group population -->
<PropertyGroup>
<GeneratedFilesOutputGroupDependsOn>XamlGeneratedFilesOutputGroup;$(GeneratedFilesOutputGroupDependsOn)</GeneratedFilesOutputGroupDependsOn>
</PropertyGroup>
<Target Name="XamlGeneratedFilesOutputGroup"
DependsOnTargets="$(XamlGeneratedFilesOutputGroupDependsOn)"
Condition="'@(Page)@(ApplicationDefinition)' != ''">
<ItemGroup>
<GeneratedFilesOutputGroup Condition="'%(Page.ExcludedFromBuild)'!='true'" Include="@(Page->'$(XamlGeneratedOutputPath)%(Filename).g.h')" />
<GeneratedFilesOutputGroup Condition="'%(Page.ExcludedFromBuild)'!='true'" Include="@(Page->'$(XamlGeneratedOutputPath)%(Filename).g.cpp')" />
<GeneratedFilesOutputGroup Condition="'%(ApplicationDefinition.ExcludedFromBuild)'!='true'" Include="@(ApplicationDefinition->'$(XamlGeneratedOutputPath)%(Filename).g.h')" />
<GeneratedFilesOutputGroup Condition="'%(ApplicationDefinition.ExcludedFromBuild)'!='true'" Include="@(ApplicationDefinition->'$(XamlGeneratedOutputPath)%(Filename).g.cpp')" />
</ItemGroup>
</Target>
<Target Name="ComputeXamlGeneratedCompileInputs"
DependsOnTargets="$(ComputeXamlGeneratedCompileInputsDependsOn)"
Condition="'@(Page)@(ApplicationDefinition)' != ''">
<ItemGroup>
<ClCompile Include="$(XamlGeneratedOutputPath)XamlTypeInfo.g.cpp" >
<CompilerIteration>XamlGenerated</CompilerIteration>
</ClCompile>
<ClCompile Include="$(XamlGeneratedOutputPath)XamlTypeInfo.Impl.g.cpp" />
<ClCompile Condition="'$(OutputType)' == 'Library'" Include="$(XamlGeneratedOutputPath)XamlLibMetadataProvider.g.cpp" />
</ItemGroup>
<!-- The build only wants to generate winmd once, either during Link target or Createwinmd target, not both.
Link and Createwinmd targets will execute link.exe, so it is best to run link.exe only once.
However, there are two cases where that isn't possible.
1) when build is building XAML and
2) when building in passes. -->
<PropertyGroup>
<GenerateBuildCompilePassWinMD Condition="'$(GenerateBuildCompilePassWinMD)' == ''">true</GenerateBuildCompilePassWinMD>
</PropertyGroup>
</Target>
<Target Name="ComputeInvalidXamlGenerated" >
<ItemGroup>
<!-- Some files dont exists because XAML files do not always generate .g.cpp -->
<ClCompile Remove="@(ClCompile)" Condition="'%(ClCompile.CompilerIteration)' == 'XamlGenerated' and !Exists('%(Identity)')"/>
</ItemGroup>
</Target>
<!-- Add CL generates .obj files to Obj item group, it will be used by lib or link -->
<Target Name="ComputeXamlGeneratedCLOutputs"
DependsOnTargets="ComputeXamlGeneratedCompileInputs;ComputeInvalidXamlGenerated"
Condition="'@(ClCompile)' != ''">
<ItemGroup>
<!-- Some files dont exists because XAML files do not always generate .g.cpp -->
<ClCompile Remove="@(ClCompile)" Condition="'%(ClCompile.CompilerIteration)' == 'XamlGenerated' and !Exists('%(Identity)')"/>
<!-- No object file name defined: filename.obj -->
<Obj Condition="'%(ClCompile.ObjectFileName)'=='' and '%(ClCompile.ExcludedFromBuild)'!='true'" Include="@(ClCompile->'%(Filename).obj')" />
<!-- Object file name is a directory (has trailing slash): ofn\filename.obj -->
<Obj Condition="HasTrailingSlash('%(ClCompile.ObjectFileName)') and '%(ClCompile.ExcludedFromBuild)'!='true'" Include="@(ClCompile->'%(ObjectFileName)%(Filename).obj')" />
<!-- Object file name is a file (does not has trailing slash): ofn -->
<Obj Condition="'%(ClCompile.ObjectFileName)' != '' and !HasTrailingSlash('%(ClCompile.ObjectFileName)') and '%(ClCompile.ExcludedFromBuild)'!='true'" Include="@(ClCompile->'%(ObjectFileName)')" />
<Lib Include="@(Obj->WithMetadataValue('CompilerIteration', 'XamlGenerated')->ClearMetadata())" />
<Link Include="@(Obj->WithMetadataValue('CompilerIteration', 'XamlGenerated')->ClearMetadata())" />
</ItemGroup>
</Target>
<!-- Enable design time build as well as selected file(s) compile support -->
<PropertyGroup>
<EnableDesignTimeBuild>true</EnableDesignTimeBuild>
</PropertyGroup>
<ItemDefinitionGroup>
<Page>
<GeneratorTarget>DesignTimeMarkupCompilation</GeneratorTarget>
</Page>
<ApplicationDefinition>
<GeneratorTarget>DesignTimeMarkupCompilation</GeneratorTarget>
</ApplicationDefinition>
</ItemDefinitionGroup>
<PropertyGroup>
<MarkupCompilePass1DependsOn>CppDesignTimeMarkupCompilation;$(MarkupCompilePass1DependsOn)</MarkupCompilePass1DependsOn>
</PropertyGroup>
<Target Name="CppDesignTimeMarkupCompilation"
DependsOnTargets="_SelectedFiles;SelectCustomBuild;ResolveReferences">
<!-- Ideally we'd like to be able to build just the requested files (if it makes sense). -->
<!--<ItemGroup Condition="'@(SelectedFiles)'!=''">
<Page Remove="@(Page)" Condition="'%(Identity)'!='@(SelectedFiles)'"/>
<ApplicationDefinition Remove="@(ApplicationDefinition)" Condition="'%(Identity)'!='@(SelectedFiles)'"/>
</ItemGroup>-->
</Target>
</Project>

61
eng/msbuild/uwp/8.21/Microsoft.Windows.UI.Xaml.CSharp.targets

@ -0,0 +1,61 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.CSharp.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'WindowsPhoneApp' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.1</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">WindowsPhoneApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v8.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'windows' OR '$(TargetPlatformIdentifier)' == '' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.2</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETCore</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v4.5.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'UAP'">
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETCore</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v5.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(SDKIdentifier)' == '' and '$(TargetPlatformIdentifier)' == 'UAP'">
<SDKIdentifier>Windows</SDKIdentifier>
<SDKVersion>10.0</SDKVersion>
</PropertyGroup>
<PropertyGroup>
<UWPNugetRepo Condition="'$(UWPNugetRepo)' == ''">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\NuGet\Repository', 'UWPNugetPackages', null, RegistryView.Registry32, RegistryView.Default))</UWPNugetRepo>
<RestoreAdditionalProjectFallbackFolders>$(RestoreAdditionalProjectFallbackFolders);$(UWPNugetRepo)</RestoreAdditionalProjectFallbackFolders>
</PropertyGroup>
<PropertyGroup>
<ImplicitlyExpandTargetPlatform Condition="'$(ImplicitlyExpandTargetPlatform)' == '' ">true</ImplicitlyExpandTargetPlatform>
<ImplicitlyExpandTargetFramework Condition="'$(ImplicitlyExpandTargetFramework)' == '' ">true</ImplicitlyExpandTargetFramework>
<NoStdLib Condition="'$(NoStdLib)' == ''">true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<WindowsAppContainer>true</WindowsAppContainer>
<AppxPackage Condition="'$(OutputType)' == 'AppContainerExe'">True</AppxPackage>
<!-- Supress the warnings in the 1st pass so that warnings are not repeated twice -->
<SuppressWarningsInPass1 Condition="'$(SuppressWarningsInPass1)' == '' ">true</SuppressWarningsInPass1>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Cps.targets" />
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\CSharp.ProjectItemsSchema.xaml"/>
</ItemGroup>
</Project>

142
eng/msbuild/uwp/8.21/Microsoft.Windows.UI.Xaml.Common.targets

@ -0,0 +1,142 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.Common.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="ImportBefore\*"/>
<PropertyGroup>
<AvailablePlatforms>$(AvailablePlatforms),ARM64</AvailablePlatforms>
</PropertyGroup>
<!-- Need the path to vcmeta.dll -->
<PropertyGroup>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\15.0\Setup\VC@ProductDir)</VCInstallDir>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\15.0\Setup\VC@ProductDir)</VCInstallDir>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSWinExpress\15.0\Setup\VC@ProductDir)</VCInstallDir>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSWinExpress\15.0\Setup\VC@ProductDir)</VCInstallDir>
<VCInstallDir Condition="'$(VCInstallDir)' == ''">$(VsInstallRoot)\Common7\IDE\VC\</VCInstallDir>
<WindowsKitsPath Condition="'$(WindowsKitsPath)' == '' and '$(TargetPlatformSdkRootOverride)' != ''">$(TargetPlatformSdkRootOverride)\</WindowsKitsPath>
<WindowsKitsPath Condition="'$(WindowsKitsPath)'==''">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots', 'KitsRoot10', null, RegistryView.Registry32, RegistryView.Default))</WindowsKitsPath>
<!--
if (TPV > RS2(10.0.15063.0) && TPMinV > TH2(10.0.10587.0)), use TPV XAML Compiler
else, use TPMinV XAML Compiler
-->
<WindowsKitsXamlCompilerTargetsPath Condition="'$(TargetPlatformVersion)' &gt; '10.0.15064.0' AND '$(TargetPlatformMinVersion)' &gt; '10.0.14392.0'">$(WindowsKitsPath)bin\$(TargetPlatformVersion)\XamlCompiler\Microsoft.Windows.UI.Xaml.Common.targets</WindowsKitsXamlCompilerTargetsPath>
<WindowsKitsXamlCompilerTargetsPath Condition="'$(WindowsKitsXamlCompilerTargetsPath)' == ''">$(WindowsKitsPath)bin\$(TargetPlatformMinVersion)\XamlCompiler\Microsoft.Windows.UI.Xaml.Common.targets</WindowsKitsXamlCompilerTargetsPath>
</PropertyGroup>
<!-- Import the targets SDK -->
<Import Condition="Exists($(WindowsKitsXamlCompilerTargetsPath)) AND ('$(IsWinUIAlpha)' != 'true') AND ('$(DefaultXamlRuntime)' != 'WinUI')" Project="$(WindowsKitsXamlCompilerTargetsPath)"/>
<!--
Ensure that UAP headless applications' WINMDs are resolved so that GenerateAppxManifest has the required
metadata to generate activatableClass extensions. This should only execute for non-EXE projects that have
<ContainsStartupTask>true</ContainsStartupTask> and create APPX packages.
-->
<Target Name="_ResolvePrimaryProjectWinmdFiles"
BeforeTargets="BeforeGenerateAppxManifest"
AfterTargets="_GetPackagingOutputs"
Condition="'$(OutputType)' != 'exe' and '$(AppxPackage)' == 'true' AND '$(ContainsStartupTask)' == 'true'">
<ItemGroup>
<_AppxWinmdFilesToHarvest Include="@(PackagingOutputs)"
Condition="'%(PackagingOutputs.Extension)' == '.winmd'
and '%(PackagingOutputs.ProjectName)' == '$(ProjectName)'
and '%(PackagingOutputs.ResolvedFrom)' != 'GetSDKReferenceFiles'">
<!-- This covers the Managed Background Application winmd which does NOT have a WinMDFileType value set -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' == ''">WindowsRuntime 1.4;CLR v4.0.30319</ImageRuntime>
<!-- This covers the C++ Background Application winmd which does NOT have a WinMDFileType value set -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' == ''
and '@(Language)' == 'C++'">WindowsRuntime 1.4</ImageRuntime>
<!-- This covers Managed Windows Runtime Component winmds -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' == ''
and '%(PackagingOutputs.WinMDFileType)' == 'Managed'">WindowsRuntime 1.4;CLR v4.0.30319</ImageRuntime>
<!-- This covers Native Windows Runtime Component winmds -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' == ''
and '%(PackagingOutputs.WinMDFileType)' == 'Native'">WindowsRuntime 1.4</ImageRuntime>
<!-- This covers Native Windows Runtime Component winmds for DynamicLibrary projects -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' == ''
and '%(PackagingOutputs.ProjectType)' == 'DynamicLibrary'">WindowsRuntime 1.4</ImageRuntime>
<!-- This provides an override -->
<ImageRuntime Condition="'$(PrimaryProjectWinmdImageRuntimeOverride)' != ''">$(PrimaryProjectWinmdImageRuntimeOverride)</ImageRuntime>
</_AppxWinmdFilesToHarvest>
</ItemGroup>
</Target>
<PropertyGroup>
<AddProcessedXamlFilesToCopyLocalDependsOn>
ContentFilesProjectOutputGroup;
Prep_ComputeProcessXamlFiles;
$(AddProcessedXamlFilesToCopyLocalDependsOn)
</AddProcessedXamlFilesToCopyLocalDependsOn>
<AddProcessedXamlFilesToCopyLocalDependsOn Condition="'$(WindowsAppContainer)' == 'true'">
_CalculateXbfSupport;
$(AddProcessedXamlFilesToCopyLocalDependsOn)
</AddProcessedXamlFilesToCopyLocalDependsOn>
</PropertyGroup>
<Target Name="AddProcessedXamlFilesToCopyLocal" Condition="'$(AppxPackage)' != 'true'" DependsOnTargets="$(AddProcessedXamlFilesToCopyLocalDependsOn)" BeforeTargets="GetCopyToOutputDirectoryItems">
<ItemGroup>
<_ProcessedXamlFilesToCopyLocal Include="@(GeneratedXamlSrc->'%(FullPath)')" />
<_ProcessedXamlFilesToCopyLocal Condition="'$(GenerateLibraryLayout)' == 'true' and '$(DisableXbfGeneration)' != 'true'" Include="@(GeneratedXamlSrc0->'%(FullPath)')" />
</ItemGroup>
<AssignTargetPath Files="@(_ProcessedXamlFilesToCopyLocal)" RootFolder="$(XamlGeneratedOutputPath)">
<Output TaskParameter="AssignedFiles" ItemName="_ProcessedXamlFilesToCopyLocalWithTargetPath" />
</AssignTargetPath>
<ItemGroup>
<_AllChildProjectItemsWithTargetPath Include="@(_ProcessedXamlFilesToCopyLocalWithTargetPath)" Condition="'%(Extension)' != '.xbf' OR ('%(Extension)' == '.xbf' AND '$(_SupportXbfAsEmbedFileResources)' != 'true')">
<TargetPath Condition="'$(AppxPriInitialPath)' != ''">$(AppxPriInitialPath)\%(_ProcessedXamlFilesToCopyLocalWithTargetPath.TargetPath)</TargetPath>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</_AllChildProjectItemsWithTargetPath>
</ItemGroup>
<ItemGroup>
<_AllChildProjectItemsWithTargetPath Include="@(ContentFilesProjectOutputGroupOutput)">
<TargetPath Condition="'$(AppxPriInitialPath)' != ''">$(AppxPriInitialPath)\%(ContentFilesProjectOutputGroupOutput.TargetPath)</TargetPath>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</_AllChildProjectItemsWithTargetPath>
</ItemGroup>
<Message Importance="Low" Text="(Out) _ProcessedXamlFilesToCopyLocal == @(_ProcessedXamlFilesToCopyLocal)" />
<Message Importance="Low" Text="(Out) _XamlFilesToCopyLocal == @(_XamlFilesToCopyLocal)" />
</Target>
<!--
This builds the Bin Folder for DLL's that wish to have the SDK type layout
This needs to be imported after the Microsoft.Windows.UI.Xaml.Common.targets project as we are overriding it there due to a bug in the DestinationFiles using $(OutputPath) instead of $(OutDir)
-->
<Target Name="PrepareLibraryLayout"
Condition="'$(GenerateLibraryLayout)' == 'true'"
DependsOnTargets="GetPackagingOutputs"
BeforeTargets="CopyFilesToOutputDirectory">
<ItemGroup>
<_LayoutFile Include="@(PackagingOutputs)" Condition="'%(OutputGroup)' == 'ContentFilesProjectOutputGroup'" />
<_LayoutFile Include="@(PackagingOutputs)" Condition="'%(OutputGroup)' == 'CustomOutputGroupForPackaging'" />
</ItemGroup>
<Copy SourceFiles="@(_LayoutFile)"
DestinationFiles="@(_LayoutFile->'$(OutDir)\%(TargetPath)')"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)"
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
UseHardlinksIfPossible="$(CreateHardLinksForCopyFilesToOutputDirectoryIfPossible)" />
</Target>
<Import Project="ImportAfter\*"/>
</Project>

52
eng/msbuild/uwp/8.21/Microsoft.Windows.UI.Xaml.Cps.targets

@ -0,0 +1,52 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition=" '$(IsCodeSharingProject)' != 'true' ">
<!-- SDK references -->
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\SDKReference.xaml">
<Context>;BrowseObject</Context>
</PropertyPageSchema>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\ResolvedSDKReference.xaml">
<Context>ProjectCapabilitySubscriptionService;BrowseObject</Context>
</PropertyPageSchema>
<ProjectCapability Include="SDKReferences" />
<!-- WinRT references -->
<!-- No need for WinRTReference.xaml because we share an item type with AssemblyReference.xaml -->
<ProjectCapability Include="WinRTReferences" />
</ItemGroup>
<ItemGroup>
<!-- Xaml item types -->
<PropertyPageSchema Include="
$(MSBuildThisFileDirectory)$(LangName)\PRIResource.xaml;
$(MSBuildThisFileDirectory)$(LangName)\ApplicationDefinition.xaml;
$(MSBuildThisFileDirectory)$(LangName)\Page.xaml;
$(MSBuildThisFileDirectory)$(LangName)\AppxManifest.xaml;
$(MSBuildThisFileDirectory)$(LangName)\DesignData.xaml;
$(MSBuildThisFileDirectory)$(LangName)\DesignDataWithDesignTimeCreatableTypes.xaml;
">
<Context>File;BrowseObject</Context>
</PropertyPageSchema>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\ProjectItemsSchema.xaml"/>
</ItemGroup>
<ItemDefinitionGroup Condition=" '$(DefineExplicitDefaults)' == 'true' ">
<PRIResource>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</PRIResource>
<AppxManifest>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</AppxManifest>
<Page>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Page>
<ApplicationDefinition>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</ApplicationDefinition>
<DesignData>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</DesignData>
<DesignDataWithDesignTimeCreatableTypes>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</DesignDataWithDesignTimeCreatableTypes>
</ItemDefinitionGroup>
</Project>

73
eng/msbuild/uwp/8.21/Microsoft.Windows.UI.Xaml.VisualBasic.targets

@ -0,0 +1,73 @@
<!--
***********************************************************************************************
Microsoft.Windows.UI.Xaml.VisualBasic.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 projects from the command-line or the IDE.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'WindowsPhoneApp' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.1</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">WindowsPhoneApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v8.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'windows' OR '$(TargetPlatformIdentifier)' == '' ">
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">8.2</TargetPlatformVersion>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETCore</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v4.5.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetPlatformIdentifier)' == 'UAP'">
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETCore</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v5.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(SDKIdentifier)' == '' and '$(TargetPlatformIdentifier)' == 'UAP'">
<SDKIdentifier>Windows</SDKIdentifier>
<SDKVersion>10.0</SDKVersion>
</PropertyGroup>
<PropertyGroup>
<UWPNugetRepo Condition="'$(UWPNugetRepo)' == ''">$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\NuGet\Repository', 'UWPNugetPackages', null, RegistryView.Registry32, RegistryView.Default))</UWPNugetRepo>
<RestoreAdditionalProjectFallbackFolders>$(RestoreAdditionalProjectFallbackFolders);$(UWPNugetRepo)</RestoreAdditionalProjectFallbackFolders>
</PropertyGroup>
<PropertyGroup>
<ImplicitlyExpandTargetPlatform Condition="'$(ImplicitlyExpandTargetPlatform)' == '' ">true</ImplicitlyExpandTargetPlatform>
<ImplicitlyExpandTargetFramework Condition="'$(ImplicitlyExpandTargetFramework)' == '' ">true</ImplicitlyExpandTargetFramework>
<NoStdLib Condition="'$(NoStdLib)' == ''">true</NoStdLib>
<UseVSHostingProcess>false</UseVSHostingProcess>
<WindowsAppContainer>true</WindowsAppContainer>
<AppxPackage Condition="'$(OutputType)' == 'AppContainerExe'">True</AppxPackage>
<SuppressWarningsInPass1 Condition="'$(SuppressWarningsInPass1)' == '' ">true</SuppressWarningsInPass1>
<ExplicitResetWarningSuppression>true</ExplicitResetWarningSuppression>
<MyType Condition="'$(MyType)' == ''">Empty</MyType>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets" />
<Import Project="Microsoft.Windows.UI.Xaml.Cps.targets" />
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(LangName)\VisualBasic.ProjectItemsSchema.xaml"/>
</ItemGroup>
<Target
Name="_VBDesignTimePdbFile"
BeforeTargets="CoreCompile"
Condition="'$(BuildingInsideVisualStudio)' == 'true' and '$(BuildingProject)' == 'false'">
<PropertyGroup>
<PdbFile>$(IntermediateOutputPath)$(TargetName).pdb</PdbFile>
</PropertyGroup>
</Target>
</Project>

38
eng/msbuild/uwp/Microsoft.Windows.UI.Xaml.CPP.targets

@ -0,0 +1,38 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IsCppProject>True</IsCppProject>
</PropertyGroup>
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets"/>
<Import Project="$(RedirectionTarget)\Microsoft.Windows.UI.Xaml.Cpp.targets" Condition="Exists('$(RedirectionTarget)\Microsoft.Windows.UI.Xaml.Cpp.targets')" />
<PropertyGroup Condition="'$(DesignTimeBuild)' != 'true'">
<MarkupCompilePass1DependsOn>$(MarkupCompilePass1DependsOn);_WriteXamlTlogs</MarkupCompilePass1DependsOn>
</PropertyGroup>
<Target Name="_WriteXamlTlogs"
Condition="'@(SelectedFiles)' == ''">
<ItemGroup Condition="'@(Page)' != ''">
<_XamlReadTlog Include="^%(Page.FullPath)"
Condition="'%(Page.ExcludedFromBuild)' != 'true'"/>
</ItemGroup>
<ItemGroup Condition="'@(ApplicationDefinition)' != ''">
<_XamlReadTlog Include="^%(ApplicationDefinition.FullPath)"
Condition="'%(ApplicationDefinition.ExcludedFromBuild)' != 'true'"/>
</ItemGroup>
<WriteLinesToFile
Condition="'@(_XamlReadTlog)' != ''"
File="$(TLogLocation)Xaml.read.1u.tlog"
Lines="@(_XamlReadTlog->MetaData('Identity')->ToUpperInvariant());"
Overwrite="true"
Encoding="Unicode"/>
<Delete Condition="'@(_XamlReadTlog)' == '' and Exists('$(TLogLocation)Xaml.read.1u.tlog')"
Files="$(TLogLocation)Xaml.read.1u.tlog" />
<ItemGroup>
<_XamlReadTlog Remove="@(_XamlReadTlog)" />
</ItemGroup>
</Target>
</Project>

5
eng/msbuild/uwp/Microsoft.Windows.UI.Xaml.CSharp.targets

@ -0,0 +1,5 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets"/>
<Import Project="$(RedirectionTarget)\Microsoft.Windows.UI.Xaml.CSharp.targets" Condition="Exists('$(RedirectionTarget)\Microsoft.Windows.UI.Xaml.CSharp.targets')"/>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" Condition="!Exists('$(RedirectionTarget)\Microsoft.Windows.UI.Xaml.CSharp.targets')"/>
</Project>

49
eng/msbuild/uwp/Microsoft.Windows.UI.Xaml.Common.targets

@ -0,0 +1,49 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(TargetPlatformVersion)'==''">
<TargetPlatformVersion>8.0</TargetPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetPlatformIdentifier)' == 'UAP' And '$(TargetPlatformMinVersion)' != '' And '$(TargetPlatformMinVersion)' &gt; '10.0.10587.0'">
<RedirectionTarget>8.21</RedirectionTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetPlatformIdentifier)' == 'UAP' And '$(RedirectionTarget)' == ''">
<RedirectionTarget>8.2</RedirectionTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(RedirectionTarget)' == ''">
<RedirectionTarget>$(TargetPlatformVersion)</RedirectionTarget>
</PropertyGroup>
<!-- Direct 8.0 projects to 8.1 targets to enable retargeting -->
<PropertyGroup Condition="'$(RedirectionTarget)' == '8.0'">
<RedirectionTarget>8.1</RedirectionTarget>
</PropertyGroup>
<!-- UnitTest SDKs always match VS Versions -->
<PropertyGroup Condition="'$(TargetPlatformIdentifier)' == 'UAP' And '$(UnitTestPlatformVersion)' != ''">
<UnitTestPlatformVersion>$(VisualStudioVersion)</UnitTestPlatformVersion>
</PropertyGroup>
<!-- User Sets this property in csproj -->
<PropertyGroup Condition="'$(TargetPlatformIdentifier)' == 'UAP' And '$(UnitTestPlatformVersion)' == '17.0'">
<!-- Needed to drop PDB's inside Appx -->
<AppxPackageIncludePrivateSymbols Condition="'$(AppxPackageIncludePrivateSymbols)' == ''">true</AppxPackageIncludePrivateSymbols>
</PropertyGroup>
<PropertyGroup Condition="'$(UwpUnitTestSdkPkgVersion)' == ''">
<UwpUnitTestSdkPkgVersion>16.11.0</UwpUnitTestSdkPkgVersion>
</PropertyGroup>
<!-- Tpv2 needs following packages at runtime -->
<Choose>
<When Condition="'$(TargetPlatformIdentifier)' == 'UAP' And '$(UnitTestPlatformVersion)' == '17.0' And '$(RestoreProjectStyle)' == 'PackageReference' And '$(IsCppProject)' != 'True' ">
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" IsImplicitlyDefined="true">
<Version>$(UwpUnitTestSdkPkgVersion)</Version>
</PackageReference>
</ItemGroup>
</When>
</Choose>
</Project>

5
eng/msbuild/uwp/Microsoft.Windows.UI.Xaml.VisualBasic.targets

@ -0,0 +1,5 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="Microsoft.Windows.UI.Xaml.Common.targets"/>
<Import Project="$(RedirectionTarget)\Microsoft.Windows.UI.Xaml.VisualBasic.targets" Condition="Exists('$(RedirectionTarget)\Microsoft.Windows.UI.Xaml.VisualBasic.targets')"/>
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" Condition="!Exists('$(RedirectionTarget)\Microsoft.Windows.UI.Xaml.VisualBasic.targets')"/>
</Project>

1
global.json

@ -19,6 +19,7 @@
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23516.4",
"Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23516.4",
"MSBuild.Sdk.Extras": "3.0.44",
"MSBuild.SDK.SystemWeb": "4.0.88"
}
}

11
src/OpenIddict.Client.SystemIntegration/OpenIddict.Client.SystemIntegration.csproj

@ -1,11 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="MSBuild.Sdk.Extras">
<PropertyGroup>
<TargetFrameworks>
$(NetFrameworkTargetFrameworks);
$(NetCoreTargetFrameworks);
$(NetCoreWindowsTargetFrameworks);
$(NetStandardTargetFrameworks)
$(NetStandardTargetFrameworks);
$(UniversalWindowsPlatformTargetFrameworks)
</TargetFrameworks>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<EnableWindowsTargeting>true</EnableWindowsTargeting>
@ -25,15 +26,15 @@
</ItemGroup>
<ItemGroup
Condition=" ('$(TargetFrameworkIdentifier)' == '.NETCoreApp' And $([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '5.0'))) Or
Condition=" ('$(TargetFrameworkIdentifier)' == '.NETCore') Or
('$(TargetFrameworkIdentifier)' == '.NETCoreApp' And $([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '5.0'))) Or
('$(TargetFrameworkIdentifier)' == '.NETStandard') ">
<PackageReference Include="NamedPipeServerStream.NetFrameworkVersion" />
</ItemGroup>
<ItemGroup
Condition=" ('$(TargetFrameworkIdentifier)' == '.NETCoreApp' And $([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '5.0'))) Or
('$(TargetFrameworkIdentifier)' == '.NETFramework') Or
('$(TargetFrameworkIdentifier)' == '.NETStandard') ">
('$(TargetFrameworkIdentifier)' == '.NETFramework') ">
<PackageReference Include="Microsoft.Windows.SDK.Contracts" />
</ItemGroup>

2
src/OpenIddict.Client.SystemIntegration/OpenIddictClientSystemIntegrationHelpers.cs

@ -242,7 +242,7 @@ public static class OpenIddictClientSystemIntegrationHelpers
// Note: with the materialization of Project Centennial/Desktop Bridge in Windows 10 1607
// (also known as Anniversary Update), desktop applications that don't have a package
// identity are now allowed to use most of the WinRT APIs. Since OpenIddict's UWP support
// is implemented via a .NET Standard 2.0 TFM (which requires Windows 10 1809), it is assumed
// is implemented via a UAP 10.0.17763 TFM (which requires Windows 10 1809), it is assumed
// at this point that Launcher.LaunchUriAsync() can be used in both types of applications.
try

6
src/OpenIddict/OpenIddict.csproj

@ -1,11 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="MSBuild.Sdk.Extras">
<PropertyGroup>
<TargetFrameworks>
$(NetFrameworkTargetFrameworks);
$(NetCoreTargetFrameworks);
$(NetCoreWindowsTargetFrameworks);
$(NetStandardTargetFrameworks)
$(NetStandardTargetFrameworks);
$(UniversalWindowsPlatformTargetFrameworks)
</TargetFrameworks>
<IncludeBuildOutput>false</IncludeBuildOutput>
<IncludeSymbols>false</IncludeSymbols>
@ -48,6 +49,7 @@ To use these features on ASP.NET Core or OWIN/Katana/ASP.NET 4.x, reference the
<None Include="_._" Pack="true" PackagePath="lib\net8.0-windows10.0.17763\_._" />
<None Include="_._" Pack="true" PackagePath="lib\netstandard2.0\_._" />
<None Include="_._" Pack="true" PackagePath="lib\netstandard2.1\_._" />
<None Include="_._" Pack="true" PackagePath="lib\uap10.0.17763\_._" />
</ItemGroup>
</Project>

Loading…
Cancel
Save