Versatile OpenID Connect stack for ASP.NET Core and Microsoft.Owin (compatible with ASP.NET 4.6.1)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

753 lines
38 KiB

<!--
***********************************************************************************************
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>