Merge branch 'release/2.2'

This commit is contained in:
Nate McMaster 2018-10-29 16:05:19 -07:00
commit 5e4166f940
No known key found for this signature in database
GPG Key ID: A778D9601BD78810
70 changed files with 1626 additions and 1281 deletions

View File

@ -6,6 +6,8 @@ trigger:
exclude:
- release/2.0
name: $(Date:yyMMdd)-$(Rev:rr)
phases:
- phase: Windows
queue:
@ -42,6 +44,8 @@ phases:
displayName: Build NuGet packages and win-x64 runtime
- script: build.cmd -ci /p:SkipTests=true /p:Configuration=$(BuildConfiguration) /p:BuildNumber=$(Build.BuildNumber) /t:BuildSharedFx /p:SharedFxRID=win-x86
displayName: Build win-x86 runtime
- script: build.cmd -ci /p:SkipTests=true /p:Configuration=$(BuildConfiguration) /p:BuildNumber=$(Build.BuildNumber) /t:BuildSharedFx /p:SharedFxRID=win-arm
displayName: Build win-arm runtime
- powershell: >
src/Installers/Windows/clone_and_build_ancm.ps1
-GitCredential '$(dn-bot-devdiv-build-rw-code-rw)'

View File

@ -2,6 +2,9 @@ trigger:
branches:
include:
- release/2.2
paths:
include:
- src/SiteExtensions
name: $(Date:yyMMdd)-$(Rev:rr)

View File

@ -11,7 +11,7 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.{cs}]
[*.cs]
indent_size = 4
dotnet_sort_system_directives_first = true:warning

View File

@ -3,12 +3,32 @@
<PropertyGroup>
<Product>Microsoft ASP.NET Core</Product>
<Authors>Microsoft</Authors>
<Company>Microsoft Corporation.</Company>
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
<NeutralLanguage>en-US</NeutralLanguage>
<PackageLicenseUrl>https://raw.githubusercontent.com/aspnet/AspNetCore/2.0.0/LICENSE.txt</PackageLicenseUrl>
<PackageIconUrl>https://go.microsoft.com/fwlink/?LinkID=288859</PackageIconUrl>
<PackageProjectUrl>https://asp.net</PackageProjectUrl>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<Serviceable>true</Serviceable>
<RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>
<RepositoryUrl>https://github.com/aspnet/AspNetCore</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)eng\AspNetCore.snk</AssemblyOriginatorKeyFile>
<SignAssembly>true</SignAssembly>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<!-- Instructs the compiler to use SHA256 instead of SHA1 when adding file hashes to PDBs. -->
<ChecksumAlgorithm>SHA256</ChecksumAlgorithm>
<!-- Suppress the message about using a preview version of .NET Core SDK. We are okay with this and don't need the warning. -->
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
<!-- Fixes a common error in targets implementing a NoBuild mode. -->
<BuildProjectReferences Condition=" '$(NoBuild)' == 'true' ">false</BuildProjectReferences>
</PropertyGroup>
<Import Project="build\external-dependencies.props" />
@ -17,12 +37,31 @@
<PropertyGroup>
<ArtifactsDir Condition="'$(ArtifactsDir)' == ''">$(RepositoryRoot)artifacts\</ArtifactsDir>
<ArtifactsObjDir>$(ArtifactsDir)obj\</ArtifactsObjDir>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<ArtifactsConfigurationDir>$(ArtifactsDir)$(Configuration)\</ArtifactsConfigurationDir>
<ArtifactsBinDir>$(ArtifactsConfigurationDir)bin\</ArtifactsBinDir>
<PackageOutputPath>$(ArtifactsConfigurationDir)packages\</PackageOutputPath>
<InstallersOutputPath>$(ArtifactsConfigurationDir)installers\</InstallersOutputPath>
<PackageOutputPath>$(ArtifactsDir)build\</PackageOutputPath>
<!-- Defines the default RID of the platform currently running the build. -->
<HostRid Condition=" '$(HostRid)' == '' AND $([MSBuild]::IsOSPlatform('Windows'))">win-x64</HostRid>
<HostRid Condition=" '$(HostRid)' == '' AND $([MSBuild]::IsOSPlatform('OSX'))">osx-x64</HostRid>
<HostRid Condition=" '$(HostRid)' == '' AND $([MSBuild]::IsOSPlatform('Linux'))">linux-x64</HostRid>
<!-- This defines the list of RIDs supported by the ASP.NET Core shared framework. -->
<SupportedRuntimeIdentifiers>
win-x64;
win-x86;
win-arm;
osx-x64;
linux-musl-x64;
linux-x64;
linux-arm
</SupportedRuntimeIdentifiers>
</PropertyGroup>
<Import Project="eng\targets\Wix.Common.props" Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
<Import Project="eng\targets\Cpp.Common.props" Condition="'$(MSBuildProjectExtension)' == '.vcxproj'" />
<Import Project="eng\targets\SharedFx.Common.props" Condition="'$(MSBuildProjectExtension)' == '.shfxproj'" />
<Import Project="eng\targets\Wix.Common.props" Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
</Project>

View File

@ -9,6 +9,7 @@
<NETCoreAppMaximumVersion>99.9</NETCoreAppMaximumVersion>
</PropertyGroup>
<Import Project="eng\targets\Wix.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
<Import Project="eng\targets\Cpp.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.vcxproj'" />
<Import Project="eng\targets\SharedFx.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.shfxproj'" />
<Import Project="eng\targets\Wix.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
</Project>

View File

@ -1,39 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26124.0
MinimumVisualStudioVersion = 15.0.26124.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{EE2CAA71-82AA-41C0-AE87-5B4FB77D6CFE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharedFx.UnitTests", "test\SharedFx.UnitTests\SharedFx.UnitTests.csproj", "{99CC38EC-902B-4B3F-AD33-177018110199}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{99CC38EC-902B-4B3F-AD33-177018110199}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99CC38EC-902B-4B3F-AD33-177018110199}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99CC38EC-902B-4B3F-AD33-177018110199}.Debug|x64.ActiveCfg = Debug|Any CPU
{99CC38EC-902B-4B3F-AD33-177018110199}.Debug|x64.Build.0 = Debug|Any CPU
{99CC38EC-902B-4B3F-AD33-177018110199}.Debug|x86.ActiveCfg = Debug|Any CPU
{99CC38EC-902B-4B3F-AD33-177018110199}.Debug|x86.Build.0 = Debug|Any CPU
{99CC38EC-902B-4B3F-AD33-177018110199}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99CC38EC-902B-4B3F-AD33-177018110199}.Release|Any CPU.Build.0 = Release|Any CPU
{99CC38EC-902B-4B3F-AD33-177018110199}.Release|x64.ActiveCfg = Release|Any CPU
{99CC38EC-902B-4B3F-AD33-177018110199}.Release|x64.Build.0 = Release|Any CPU
{99CC38EC-902B-4B3F-AD33-177018110199}.Release|x86.ActiveCfg = Release|Any CPU
{99CC38EC-902B-4B3F-AD33-177018110199}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{99CC38EC-902B-4B3F-AD33-177018110199} = {EE2CAA71-82AA-41C0-AE87-5B4FB77D6CFE}
EndGlobalSection
EndGlobal

View File

@ -1,5 +1,9 @@
<Project>
<PropertyGroup>
<SharedFxRid Condition=" '$(SharedFxRid)' == '' AND $([MSBuild]::IsOSPlatform('Windows'))">win-x64</SharedFxRid>
<SharedFxRid Condition=" '$(SharedFxRid)' == '' AND $([MSBuild]::IsOSPlatform('OSX'))">osx-x64</SharedFxRid>
<SharedFxRid Condition=" '$(SharedFxRid)' == '' AND $([MSBuild]::IsOSPlatform('Linux'))">linux-x64</SharedFxRid>
<!-- directories -->
<_WorkRoot>$(RepositoryRoot).w\$(SharedFxRID)\</_WorkRoot>
<_WorkLayoutDir>$(_WorkRoot).l\</_WorkLayoutDir>
@ -13,17 +17,10 @@
<_SymbolsSourceDir>$(RepositoryRoot).deps\symbols\</_SymbolsSourceDir>
<_DockerRootDir>/opt/code/</_DockerRootDir>
<_InstallersOutputDir>$(ArtifactsDir)installers\</_InstallersOutputDir>
<!-- 3B = semicolon in ASCII -->
<PathSeparator Condition="'$(PathSeparator)' == ''">:</PathSeparator>
<PathSeparator Condition="$(SharedFxRID.StartsWith('win'))">%3B</PathSeparator>
<ArchiveExtension>.tar.gz</ArchiveExtension>
<ArchiveExtension Condition="$(SharedFxRID.StartsWith('win'))">.zip</ArchiveExtension>
<LibPrefix Condition="$([MSBuild]::IsOSPlatform('Linux')) OR $([MSBuild]::IsOSPlatform('OSX'))">lib</LibPrefix>
<LibExtension>.so</LibExtension>
<LibExtension Condition="$([MSBuild]::IsOSPlatform('Windows'))">.dll</LibExtension>
<LibExtension Condition="$([MSBuild]::IsOSPlatform('OSX'))">.dylib</LibExtension>
<ExeExtension Condition="$([MSBuild]::IsOSPlatform('Windows'))">.exe</ExeExtension>
<SharedFrameworkTargetFramework>netcoreapp3.0</SharedFrameworkTargetFramework>
<!-- installers -->
@ -68,7 +65,7 @@
</PropertyGroup>
<ItemGroup>
<WindowsSharedFxRIDs Include="win-x64;win-x86"/>
<WindowsSharedFxRIDs Include="win-x64;win-x86;win-arm"/>
<NonWindowsSharedFxRIDs Include="osx-x64" CrossgenSymbols="false" />
<NonWindowsSharedFxRIDs Include="linux-musl-x64" />
<NonWindowsSharedFxRIDs Include="linux-x64" />

View File

@ -2,558 +2,69 @@
<Import Project="SharedFx.props" />
<PropertyGroup>
<SharedFxOutputPath>$([MSBuild]::NormalizeDirectory($(ArtifactsDir)))runtime\</SharedFxOutputPath>
<UnitTestFxProject>$(RepositoryRoot)src\Framework\Framework.UnitTests\Framework.UnitTests.csproj</UnitTestFxProject>
<UnitTestFxProject>$([MSBuild]::NormalizePath($(UnitTestFxProject)))</UnitTestFxProject>
</PropertyGroup>
<Target Name="GetMetapackageArtifactInfo">
<ItemGroup>
<_MetapackageProject Include="$(RepositoryRoot)src\Packages\Microsoft.AspNetCore.All\Microsoft.AspNetCore.All.csproj" />
<_MetapackageProject Include="$(RepositoryRoot)src\Packages\Microsoft.AspNetCore.App\Microsoft.AspNetCore.App.csproj" />
<_MetapackageProject Include="$(RepositoryRoot)src\Packages\Microsoft.AspNetCore.Analyzers\Microsoft.AspNetCore.Analyzers.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectToBuild Include="$(RepositoryRoot)src\Framework\**\*.pkgproj" />
<ProjectToBuild Include="$(RepositoryRoot)src\Framework\**\*.shfxproj" />
<ProjectToBuild Include="$(UnitTestFxProject)" />
<ProjectToBuild Include="$(RepositoryRoot)src\Installers\Archive.Internal\*.*proj" />
<ProjectToBuild Include="$(RepositoryRoot)src\Installers\Archive.Redist\*.*proj" />
</ItemGroup>
<MSBuild Projects="@(_MetapackageProject)"
Targets="GetArtifactInfo"
Properties="PackageOutputPath=$(BuildDir);BuildNumber=$(BuildNumber);DesignTimeBuild=true;IsFinalBuild=$(IsFinalBuild)">
<Output TaskParameter="TargetOutputs" ItemName="ArtifactInfo" />
</MSBuild>
<Target Name="BuildSharedFx" DependsOnTargets="_BuildSharedFxProjects;TestSharedFx"/>
<ItemGroup>
<!-- Cartesian products in MSBuild are fun :) -->
<_SharedFrameworkSymbolsPackage Include="@(SharedFrameworkName)" Condition="'%(AllSharedFxRIDs.CrossgenSymbols)' != 'false' AND '%(AllSharedFxRIDs.Crossgen)' != 'false'">
<Rid>%(AllSharedFxRIDs.Identity)</Rid>
</_SharedFrameworkSymbolsPackage>
<_SharedFrameworkSymbolsPackage Update="@(_SharedFrameworkSymbolsPackage)" PackageId="runtime.%(Rid).%(Identity)" />
<ArtifactInfo Include="@(_SharedFrameworkSymbolsPackage->'$(BuildDir)%(PackageId).$(PackageVersion).symbols.nupkg')">
<ArtifactType>NuGetSymbolsPackage</ArtifactType>
<PackageId>%(_SharedFrameworkSymbolsPackage.PackageId)</PackageId>
<Version>$(PackageVersion)</Version>
<Category>shipoob</Category>
</ArtifactInfo>
</ItemGroup>
</Target>
<Target Name="_BuildSharedFxProjects" DependsOnTargets="GeneratePropsFiles;ResolveCommitHash">
<Target Name="_BuildMetapackage" DependsOnTargets="ResolveRepoInfo">
<PropertyGroup>
<MetapackageSource>$(_MetapackageSrcRoot)$(MetapackageName)\</MetapackageSource>
<MetapackageWorkDirectory>$(_WorkRoot)pkg\$(MetapackageName)\</MetapackageWorkDirectory>
<CommonProps />
<CommonProps>$(CommonProps);Configuration=$(Configuration)</CommonProps>
<CommonProps>$(CommonProps);DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath)</CommonProps>
<CommonProps>$(CommonProps);DotNetBuildOffline=true</CommonProps>
<CommonProps>$(CommonProps);AspNetUniverseBuildOffline=true</CommonProps>
<CommonProps>$(CommonProps);RuntimeFrameworkVersion=$(MicrosoftNETCoreApp30PackageVersion)</CommonProps>
<CommonProps>$(CommonProps);AppMetapackageVersion=$(PackageVersion)</CommonProps>
<_RestoreGraphProjectInput>@(ProjectToBuild)</_RestoreGraphProjectInput>
<SharedFxBuildProperties>
$(SolutionProperties);
SharedFxRid=$(SharedFxRid);
DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);
DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath)
</SharedFxBuildProperties>
</PropertyGroup>
<Error
Text="Source directory $(MetapackageSource) for $(MetapackageName) does not exist."
Condition="!Exists('$(MetapackageSource)')" />
<MSBuild Projects="$(MSBuildToolsPath)\NuGet.targets"
Targets="Restore"
Properties="$(SharedFxBuildProperties);RestoreGraphProjectInput=$(_RestoreGraphProjectInput);_DummyTarget=Restore" />
<ItemGroup>
<MetapackageFiles Include="$(MetapackageSource)**\*" />
</ItemGroup>
<MSBuild Projects="@(ProjectToBuild)"
Properties="$(SharedFxBuildProperties)"
BuildInParallel="true" />
<!-- Clear working directory -->
<RemoveDir Directories="$(MetapackageWorkDirectory)" />
<!-- Move to working dir -->
<Copy SourceFiles="@(MetapackageFiles)" DestinationFolder="$(MetapackageWorkDirectory)%(RecursiveDir)" />
<Copy SourceFiles="$(_MetapackageSrcRoot)Directory.Build.props" DestinationFolder="$(_WorkRoot)" />
<!-- Add references to project -->
<RepoTasks.AddMetapackageReferences
ReferencePackagePath="$(MetapackageWorkDirectory)$(MetapackageName).csproj"
MetapackageReferenceType="$(MetapackageReferenceType)"
DependencyVersionRangeType="$(MetapackageDependencyVersionRangeType)"
PackageArtifacts="@(_PackageArtifactSpec)"
ExternalDependencies="@(ExternalDependency)" />
<!-- Set _Target=Restore so the project will be re-evaluated to include Internal.AspNetCore.Sdk MSBuild properties on the next step. -->
<MSBuild Projects="$(MetapackageWorkDirectory)$(MetapackageName).csproj" Targets="Restore" Properties="$(CommonProps);_Target=Restore" />
<!-- Pack -->
<MSBuild Projects="$(MetapackageWorkDirectory)$(MetapackageName).csproj" Targets="Pack" Properties="$(CommonProps);PackageOutputPath=$(BuildDir)" />
<MSBuild Projects="@(ProjectToBuild)"
Targets="Pack"
Properties="$(SharedFxBuildProperties);NoBuild=true"
BuildInParallel="true"
SkipNonexistentTargets="true" />
</Target>
<Target Name="BuildMetapackages">
<ItemGroup>
<_MetapackageBuilderProject Include="$(MSBuildProjectFullPath)">
<AdditionalProperties>
MetapackageName=Microsoft.AspNetCore.App;
MetapackageReferenceType=AppMetapackage;
MetapackageDependencyVersionRangeType=MajorMinor
</AdditionalProperties>
</_MetapackageBuilderProject>
<_MetapackageBuilderProject Include="$(MSBuildProjectFullPath)">
<AdditionalProperties>
MetapackageName=Microsoft.AspNetCore.All;
MetapackageReferenceType=AllMetapackage;
MetapackageDependencyVersionRangeType=Minimum
</AdditionalProperties>
</_MetapackageBuilderProject>
<_MetapackageBuilderProject Include="$(MSBuildProjectFullPath)">
<AdditionalProperties>
MetapackageName=Microsoft.AspNetCore.Analyzers;
MetapackageReferenceType=Analyzer;
MetapackageDependencyVersionRangeType=Minimum
</AdditionalProperties>
</_MetapackageBuilderProject>
</ItemGroup>
<MSBuild
Projects="@(_MetapackageBuilderProject)"
Targets="_BuildMetapackage"
BuildInParallel="false" />
</Target>
<Target Name="DefineSharedFxPrerequisites" DependsOnTargets="ResolveCommitHash">
<Target Name="TestSharedFx" DependsOnTargets="GeneratePropsFiles;InstallDotNet">
<PropertyGroup>
<RIDIsAcceptable Condition="'%(AllSharedFxRIDs.Identity)' == '$(SharedFxRID)'">true</RIDIsAcceptable>
<CrossGenSharedFx>false</CrossGenSharedFx>
<CrossGenSharedFx Condition="'%(AllSharedFxRIDs.Identity)' == '$(SharedFxRID)' AND '%(AllSharedFxRIDs.Crossgen)' != 'false' ">true</CrossGenSharedFx>
<CrossGenSharedFxSymbols>false</CrossGenSharedFxSymbols>
<CrossGenSharedFxSymbols Condition="'$(CrossGenSharedFx)' != 'false' AND '%(AllSharedFxRIDs.Identity)' == '$(SharedFxRID)' AND '%(AllSharedFxRIDs.CrossgenSymbols)' != 'false' ">true</CrossGenSharedFxSymbols>
</PropertyGroup>
<Error Text="&quot;$(SharedFxRID)&quot; not acceptable as a SharedFxRID, please specify an acceptable value: {@(AllSharedFxRIDs)}." Condition="'$(RIDIsAcceptable)' != 'true'"/>
<PropertyGroup>
<AppSharedFxWorkDirectory>$(_WorkRoot)AppSharedFx\</AppSharedFxWorkDirectory>
<AllSharedFxWorkDirectory>$(_WorkRoot)AllSharedFx\</AllSharedFxWorkDirectory>
<SharedFxIntermediateOutputPath>$(_WorkRoot)Publish\</SharedFxIntermediateOutputPath>
<SharedFxCrossGenDirectory>$(_WorkRoot)CrossGen\</SharedFxCrossGenDirectory>
<SharedFxCrossGenSymbolsDirectory>$(_WorkRoot)CrossGenSymbols\</SharedFxCrossGenSymbolsDirectory>
<SharedFxCrossGenToolDirectory>$(_WorkRoot)CrossGenTool\</SharedFxCrossGenToolDirectory>
<SharedFxCrossGenRspDirectory>$(_WorkRoot)CrossGenRsp\</SharedFxCrossGenRspDirectory>
<AppSharedFxPublishDirectory>$(SharedFxIntermediateOutputPath)shared\Microsoft.AspNetCore.App\$(PackageVersion)\</AppSharedFxPublishDirectory>
<AllSharedFxPublishDirectory>$(SharedFxIntermediateOutputPath)shared\Microsoft.AspNetCore.All\$(PackageVersion)\</AllSharedFxPublishDirectory>
<SharedFxRestoreRid>$(SharedFxRID)</SharedFxRestoreRid>
<!-- 3B = semicolon in ASCII -->
<PathSeparator Condition="'$(PathSeparator)' == ''">:</PathSeparator>
<PathSeparator Condition="$(SharedFxRID.StartsWith('win'))">%3B</PathSeparator>
<CommonSharedFxProps>Configuration=$(Configuration);RuntimeIdentifier=$(SharedFxRestoreRid)</CommonSharedFxProps>
<CommonSharedFxProps>$(CommonSharedFxProps);DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath)</CommonSharedFxProps>
<CommonSharedFxProps>$(CommonSharedFxProps);DotNetBuildOffline=true</CommonSharedFxProps>
<CommonSharedFxProps>$(CommonSharedFxProps);AspNetUniverseBuildOffline=true</CommonSharedFxProps>
</PropertyGroup>
</Target>
<Target Name="_PrepareForSharedFx" DependsOnTargets="DefineSharedFxPrerequisites">
<PropertyGroup>
<RestoreProps>$(CommonSharedFxProps)</RestoreProps>
<RestoreProps>$(RestoreProps);SharedFxPackage=$(SharedFxPackage)</RestoreProps>
<RestoreProps>$(RestoreProps);SharedFxPackageVersion=$(PackageVersion)</RestoreProps>
<RestoreProps>$(RestoreProps);SharedFxBase=$(SharedFxBase)</RestoreProps>
<RestoreProps>$(RestoreProps);SharedFxBaseVersion=$(SharedFxBaseVersion)</RestoreProps>
</PropertyGroup>
<!-- Copy to working dir -->
<ItemGroup>
<SharedFxFiles Include="$(_TemplatesDir)SharedFx\**\*" />
</ItemGroup>
<Copy SourceFiles="@(SharedFxFiles)" DestinationFolder="$(SharedFxWorkDirectory)\%(RecursiveDir)" />
<!-- Set _Target=Restore so the project will be re-evaluated to include Internal.AspNetCore.Sdk MSBuild properties on the next step. -->
<MSBuild Projects="$(SharedFxWorkDirectory)SharedFx.csproj"
Targets="Restore"
Properties="$(RestoreProps);_Target=Restore;RestoreForce=true" />
</Target>
<Target Name="PrepareForSharedFx" DependsOnTargets="DefineSharedFxPrerequisites;ResolveCommitHash">
<PropertyGroup>
<AppSharedFxProps>RepositoryCommit=$(RepositoryCommit);SharedFxWorkDirectory=$(AppSharedFxWorkDirectory)</AppSharedFxProps>
<AppSharedFxProps>$(AppSharedFxProps);RuntimeFrameworkVersion=$(MicrosoftNETCoreApp30PackageVersion)</AppSharedFxProps>
<AppSharedFxProps>$(AppSharedFxProps);SharedFxPackage=Microsoft.AspNetCore.App</AppSharedFxProps>
<AllSharedFxProps>RepositoryCommit=$(RepositoryCommit);SharedFxWorkDirectory=$(AllSharedFxWorkDirectory)</AllSharedFxProps>
<AllSharedFxProps>$(AllSharedFxProps);RuntimeFrameworkVersion=$(MicrosoftNETCoreApp30PackageVersion)</AllSharedFxProps>
<AllSharedFxProps>$(AllSharedFxProps);SharedFxPackage=Microsoft.AspNetCore.All</AllSharedFxProps>
<AllSharedFxProps>$(AllSharedFxProps);SharedFxDep=Microsoft.AspNetCore.App</AllSharedFxProps>
<AllSharedFxProps>$(AllSharedFxProps);SharedFxDepVersion=$(PackageVersion)</AllSharedFxProps>
</PropertyGroup>
<!-- Clear working directory -->
<!-- <RemoveDir Directories="$(_WorkRoot)" /> -->
<Copy SourceFiles="$(_MetapackageSrcRoot)Directory.Build.props" DestinationFolder="$(_WorkRoot)" />
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_PrepareForSharedFx" Properties="$(AppSharedFxProps)" />
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_PrepareForSharedFx" Properties="$(AllSharedFxProps)" />
</Target>
<Target Name="_ResolveSharedFxFiles" DependsOnTargets="DefineSharedFxPrerequisites">
<ItemGroup>
<VersionLines Include="$(RepositoryCommit)" />
<VersionLines Include="$(PackageVersion)" />
</ItemGroup>
<!-- Publish -->
<MSBuild Projects="$(SharedFxWorkDirectory)SharedFx.csproj"
Targets="Publish"
Properties="$(CommonSharedFxProps);GenerateRuntimeConfigurationFiles=true;SelfContained=false;PublishDir=$(SharedFxPublishDirectory)" />
<!-- Clean deps.json -->
<RepoTasks.TrimDeps DepsFiles="$(SharedFxPublishDirectory)/SharedFx.deps.json" />
<!-- Clean up artifacts that publish generates which we don't need -->
<ItemGroup>
<ToDelete Include="$(SharedFxPublishDirectory)\SharedFx" />
<ToDelete Include="$(SharedFxPublishDirectory)\SharedFx.dll" />
<ToDelete Include="$(SharedFxPublishDirectory)\SharedFx.pdb" />
</ItemGroup>
<Delete Files="@(ToDelete)" />
<!-- Rename deps file -->
<Move SourceFiles="$(SharedFxPublishDirectory)\SharedFx.deps.json"
DestinationFiles="$(SharedFxPublishDirectory)\$(SharedFxPackage).deps.json" />
<!-- Rename runtimeconfig.json file -->
<Move SourceFiles="$(SharedFxPublishDirectory)\SharedFx.runtimeconfig.json"
DestinationFiles="$(SharedFxPublishDirectory)\$(SharedFxPackage).runtimeconfig.json" />
<!-- Generate Runtime Graph -->
<PropertyGroup>
<RuntimeGraphGeneratorRuntime Condition="$([MSBuild]::IsOSPlatform('Windows'))">win</RuntimeGraphGeneratorRuntime>
<RuntimeGraphGeneratorRuntime Condition="$([MSBuild]::IsOSPlatform('Linux'))">linux</RuntimeGraphGeneratorRuntime>
<RuntimeGraphGeneratorRuntime Condition="$([MSBuild]::IsOSPlatform('OSX'))">osx</RuntimeGraphGeneratorRuntime>
</PropertyGroup>
<ItemGroup>
<SharedFxAssetsFile Include="$(SharedFxWorkDirectory)**\project.assets.json" />
</ItemGroup>
<ProcessSharedFrameworkDeps
AssetsFilePath="@(SharedFxAssetsFile)"
DepsFilePath="$(SharedFxPublishDirectory)\$(SharedFxPackage).deps.json"
Runtime="$(RuntimeGraphGeneratorRuntime)" />
<!-- Generate .version file -->
<WriteLinesToFile
File="$(SharedFxPublishDirectory)\.version"
Lines="@(VersionLines)"
Overwrite="true" />
</Target>
<Target Name="ResolveSharedFxFiles" DependsOnTargets="PrepareForSharedFx">
<PropertyGroup>
<AppSharedFxProps>SharedFxPackage=Microsoft.AspNetCore.App</AppSharedFxProps>
<AppSharedFxProps>$(AppSharedFxProps);SharedFxWorkDirectory=$(AppSharedFxWorkDirectory)</AppSharedFxProps>
<AppSharedFxProps>$(AppSharedFxProps);SharedFxPublishDirectory=$(AppSharedFxPublishDirectory)</AppSharedFxProps>
<AllSharedFxProps>SharedFxPackage=Microsoft.AspNetCore.All</AllSharedFxProps>
<AllSharedFxProps>$(AllSharedFxProps);SharedFxWorkDirectory=$(AllSharedFxWorkDirectory)</AllSharedFxProps>
<AllSharedFxProps>$(AllSharedFxProps);SharedFxPublishDirectory=$(AllSharedFxPublishDirectory)</AllSharedFxProps>
</PropertyGroup>
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_ResolveSharedFxFiles" Properties="$(AppSharedFxProps)" />
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_ResolveSharedFxFiles" Properties="$(AllSharedFxProps)" />
<MakeDir Directories="$(SharedFxOutputPath)" />
</Target>
<Target Name="PrepareForCrossGen" DependsOnTargets="PrepareForSharedFx;ResolveSharedFxFiles">
<PropertyGroup>
<RuntimePackageName>Microsoft.NETCore.App</RuntimePackageName>
<CrossGenTool>crossgen</CrossGenTool>
<CrossGenTool Condition="$([MSBuild]::IsOSPlatform('Windows'))">$(CrossGenTool).exe</CrossGenTool>
</PropertyGroup>
<!-- Determine runtime location (via .App shared framework) -->
<MSBuild Projects="$(AppSharedFxWorkDirectory)SharedFx.csproj" Targets="GetPackageDefinitions" >
<Output TaskParameter="TargetOutputs" ItemName="PackageDefinitions" />
</MSBuild>
<ItemGroup>
<RuntimePackage Include="@(PackageDefinitions)" Condition="$([System.String]::new('%(PackageDefinitions.Name)').Contains('runtime')) AND $([System.String]::new('%(PackageDefinitions.Name)').Contains('$(RuntimePackageName)'))" />
<RuntimePackageFiles Include="%(RuntimePackage.ResolvedPath)\runtimes\**\*" />
<CrossGenToolFile Include="%(RuntimePackage.ResolvedPath)\**\$(CrossGenTool)" />
</ItemGroup>
<Error Text="Could not identify the runtime package for $(SharedFXRid)" Condition="@(RuntimePackage->Count()) == 0" />
<!-- Create tool directory with crossgen executable and runtime assemblies -->
<Copy SourceFiles="@(RuntimePackageFiles);@(CrossGenToolFile)" DestinationFolder="$(SharedFxCrossGenToolDirectory)"/>
<ItemGroup>
<ClrJitAssembly Include="$(SharedFxCrossGenToolDirectory)\**\$(LibPrefix)clrjit$(LibExtension)" />
</ItemGroup>
<Error Text="Expected to resolve a single runtime package but instead resolved @(RuntimePackage->Count()) with identities %(RuntimePackage.Identity)" Condition="'@(RuntimePackage->Count())' != 1" />
<Error Text="Could not find crossgen in %(RuntimePackage.ResolvedPath)" Condition="@(CrossGenToolFile->Count()) == 0" />
<Error Text="Expected to resolve a single clr jit assembly but instead resolved @(ClrJitAssembly->Count()) with identities %(ClrJitAssembly.Identity)" Condition="'@(ClrJitAssembly->Count())' != 1" />
<!-- Gather details on published assemblies -->
<MSBuild Projects="$(AppSharedFxWorkDirectory)SharedFx.csproj"
Targets="GetPublishAssemblies"
Properties="RuntimeIdentifier=$(SharedFxRestoreRid);SelfContained=false" >
<Output TaskParameter="TargetOutputs" ItemName="AppPublishAssemblies" />
</MSBuild>
<MSBuild Projects="$(AllSharedFxWorkDirectory)SharedFx.csproj"
Targets="GetPublishAssemblies"
Properties="RuntimeIdentifier=$(SharedFxRestoreRid);SelfContained=false" >
<Output TaskParameter="TargetOutputs" ItemName="AllPublishAssemblies" />
</MSBuild>
<ItemGroup>
<IgnoredAssemblies Include="@(AppPublishAssemblies);@(AllPublishAssemblies)" Condition="'%(AssetType)' == 'native' OR '%(AssetType)' == 'resources'" />
<_AppRuntimeAssemblies Include="@(AppPublishAssemblies)" Condition="'%(AssetType)' == 'runtime'">
<SymbolsPackageFilename>%(PackageName).%(PackageVersion).symbols.nupkg</SymbolsPackageFilename>
<PortablePDB>%(RootDir)%(Directory)%(Filename).pdb</PortablePDB>
</_AppRuntimeAssemblies>
<_AllRuntimeAssemblies Include="@(AllPublishAssemblies)" Exclude="@(_AppRuntimeAssemblies)" Condition="'%(AssetType)' == 'runtime'">
<SymbolsPackageFilename>%(PackageName).%(PackageVersion).symbols.nupkg</SymbolsPackageFilename>
<PortablePDB>%(RootDir)%(Directory)%(Filename).pdb</PortablePDB>
</_AllRuntimeAssemblies>
<OtherAssemblies Include="@(AppPublishAssemblies);@(AllPublishAssemblies)" Exclude="@(IgnoredAssemblies);@(_AppRuntimeAssemblies);@(_AllRuntimeAssemblies)" />
<_AssembliesToCrossgen Include="$(SharedFxIntermediateOutputPath)**\*.dll" />
</ItemGroup>
<RepoTasks.ResolveSymbolsRecursivePath Symbols="@(_AppRuntimeAssemblies)">
<Output TaskParameter="Symbols" ItemName="AppRuntimeAssemblies" />
</RepoTasks.ResolveSymbolsRecursivePath>
<RepoTasks.ResolveSymbolsRecursivePath Symbols="@(_AllRuntimeAssemblies)">
<Output TaskParameter="Symbols" ItemName="AllRuntimeAssemblies" />
</RepoTasks.ResolveSymbolsRecursivePath>
<Error Text="Unaccounted shared framework assemblies found: @(OtherAssemblies). Assemblies must be included as runtime assemblies or marked as ignored." Condition="'@(OtherAssemblies)' != ''" />
<!-- Compute the intersection of crossgen candidates and native/resources assemblies as the set of assemblies to skip crossgen -->
<CreateItem Include="@(_AssembliesToCrossgen)" Condition="'%(Filename)' != ''and '@(IgnoredAssemblies)' != ''">
<Output TaskParameter="Include" ItemName="AssembliesToRemove"/>
</CreateItem>
<!-- Resolve list of assemblies to crossgen -->
<ItemGroup>
<AssembliesToCrossgen Include="@(_AssembliesToCrossgen)">
<Source>%(FullPath)</Source>
<Rsp>$(SharedFxCrossGenRspDirectory)%(RecursiveDir)%(Filename).rsp</Rsp>
<SymbolsRsp>$(SharedFxCrossGenRspDirectory)%(RecursiveDir)%(Filename).symbols.rsp</SymbolsRsp>
<Destination>$(SharedFxCrossGenDirectory)%(RecursiveDir)%(Filename)%(Extension)</Destination>
<Symbols>$(SharedFxCrossGenDirectory)%(RecursiveDir)</Symbols>
</AssembliesToCrossgen>
<AssembliesToCrossgen Remove="@(AssembliesToRemove)" />
</ItemGroup>
<!-- Compute the intersection of runtime assemblies and assemblies to crossgen to resolve the set of portablePDBs to publish -->
<CreateItem Include="@(AppRuntimeAssemblies)" Condition="'%(Filename)' != ''and '@(AssembliesToCrossgen)' != ''">
<Output TaskParameter="Include" ItemName="AppPortablePDBsToPublish"/>
</CreateItem>
<CreateItem Include="@(AllRuntimeAssemblies)" Condition="'%(Filename)' != ''and '@(AssembliesToCrossgen)' != ''">
<Output TaskParameter="Include" ItemName="AllPortablePDBsToPublish"/>
</CreateItem>
</Target>
<Target Name="CrossGenAssemblies"
DependsOnTargets="PrepareForCrossGen"
Inputs="@(AssembliesToCrossgen)"
Outputs="%(AssembliesToCrossgen.Destination)">
<ItemGroup>
<CrossGenArgs Include="-nologo" />
<CrossGenArgs Include="-readytorun" />
<CrossGenArgs Include="-in %(AssembliesToCrossgen.Source)" />
<CrossGenArgs Include="-out %(AssembliesToCrossgen.Destination)" />
<CrossGenArgs Include="-platform_assemblies_paths $(SharedFxCrossGenToolDirectory)$(PathSeparator)$(AppSharedFxPublishDirectory)$(PathSeparator)$(AllSharedFxPublishDirectory)" />
<CrossGenArgs Include="-JITPath %(ClrJitAssembly.FullPath)" />
</ItemGroup>
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('%(AssembliesToCrossgen.Rsp)'))" />
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('%(AssembliesToCrossgen.Destination)'))" />
<WriteLinesToFile File="%(AssembliesToCrossgen.Rsp)" Lines="@(CrossGenArgs)" Overwrite="true" />
<Copy Condition="'$(CrossGenSharedFx)' == 'false'"
SourceFiles="%(AssembliesToCrossgen.Source)"
DestinationFiles="%(AssembliesToCrossgen.Destination)" />
<Exec Condition="'$(CrossGenSharedFx)' != 'false'"
Command="$(SharedFxCrossGenToolDirectory)$(CrossGenTool) @%(AssembliesToCrossgen.Rsp)"
EnvironmentVariables="COMPlus_PartialNGen=0" />
</Target>
<Target Name="CrossGenSymbols"
Condition=" '$(CrossGenSharedFxSymbols)' != 'false' "
DependsOnTargets="CrossGenAssemblies"
Inputs="@(AssembliesToCrossgen)"
Outputs="%(AssembliesToCrossgen.SymbolsRsp)">
<PropertyGroup>
<CrossGenSymbolsType>CreatePerfMap</CrossGenSymbolsType>
<CrossGenSymbolsType Condition="'$(OS)' == 'Windows_NT'">CreatePDB</CrossGenSymbolsType>
</PropertyGroup>
<ItemGroup>
<CrossGenSymbolsArgs Include="-nologo" />
<CrossGenSymbolsArgs Include="-readytorun" />
<CrossGenSymbolsArgs Include="-platform_assemblies_paths $(SharedFxCrossGenToolDirectory)$(PathSeparator)$(AppSharedFxPublishDirectory)$(PathSeparator)$(AllSharedFxPublishDirectory)" />
<CrossGenSymbolsArgs Include="-$(CrossGenSymbolsType)" />
<CrossGenSymbolsArgs Include="%(AssembliesToCrossgen.Symbols)" />
<CrossGenSymbolsArgs Include="%(AssembliesToCrossgen.Destination)" />
</ItemGroup>
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('%(AssembliesToCrossgen.Symbols)'))" />
<WriteLinesToFile File="%(AssembliesToCrossgen.SymbolsRsp)" Lines="@(CrossGenSymbolsArgs)" Overwrite="true" />
<Exec Command="$(SharedFxCrossGenToolDirectory)$(CrossGenTool) @%(AssembliesToCrossgen.SymbolsRsp)" EnvironmentVariables="COMPlus_PartialNGen=0" />
</Target>
<Target Name="_BuildSharedFxSymbols">
<PropertyGroup>
<SymbolsPackageId>runtime.$(SharedFxRID).$(SymbolsNuspecIdSuffix)</SymbolsPackageId>
</PropertyGroup>
<ItemGroup>
<_SymbolFiles Include="$(SymbolsWorkDir)**\*.pdb;$(SymbolsWorkDir)**\*.map;$(SymbolsWorkDir)**\*.dll" />
<SymbolFiles Include="@(_SymbolFiles)">
<PackagePath>%(RecursiveDir)%(Filename)%(Extension)</PackagePath>
</SymbolFiles>
</ItemGroup>
<!-- Create Layout -->
<Copy
SourceFiles="$(_TemplatesDir)SharedFxSymbols\SharedFrameworkSymbols.nuspec"
DestinationFiles="$(SymbolsWorkDir)$(SymbolsPackageId).nuspec"
OverwriteReadOnlyFiles="True" />
<!-- Produce symbols nupkg -->
<PackNuspec NuspecPath="$(SymbolsWorkDir)$(SymbolsPackageId).nuspec"
OutputPath="$([MSBuild]::NormalizeDirectory($(ArtifactsDir)))symbols\$(SymbolsPackageId).$(PackageVersion).symbols.nupkg"
Properties="version=$(PackageVersion);id=$(SymbolsPackageId);description=$(Description);Configuration=$(Configuration)"
Overwrite="true"
PackageFiles="@(SymbolFiles)"
BasePath="$(SymbolsWorkDir)" />
</Target>
<Target Name="PackSharedFx" DependsOnTargets="DefineSharedFxPrerequisites" >
<PropertyGroup>
<AppSharedFxCrossgenDirectory>$(SharedFxCrossGenDirectory)shared\Microsoft.AspNetCore.App\$(PackageVersion)\</AppSharedFxCrossgenDirectory>
<AllSharedFxCrossgenDirectory>$(SharedFxCrossGenDirectory)shared\Microsoft.AspNetCore.All\$(PackageVersion)\</AllSharedFxCrossgenDirectory>
<AppSharedFxSymbolsDirectory>$(_WorkRoot)Symbols\Microsoft.AspNetCore.App\</AppSharedFxSymbolsDirectory>
<AllSharedFxSymbolsDirectory>$(_WorkRoot)Symbols\Microsoft.AspNetCore.All\</AllSharedFxSymbolsDirectory>
</PropertyGroup>
<ItemGroup>
<AppCrossGenOutput Include="$(AppSharedFxCrossgenDirectory)**\*.dll" />
<AllCrossGenOutput Include="$(AllSharedFxCrossgenDirectory)**\*.dll" />
<AppCrossGenSymbols Include="$(AppSharedFxCrossgenDirectory)**\*" Exclude="@(AppCrossGenOutput)" />
<AllCrossGenSymbols Include="$(AllSharedFxCrossgenDirectory)**\*" Exclude="@(AllCrossGenOutput)" />
</ItemGroup>
<!-- Extract symbols package and copy over PDBs -->
<UnzipArchive
File="$(_SymbolsSourceDir)%(AppPortablePDBsToPublish.SymbolsPackageFilename)"
Destination="$(_WorkRoot)SymbolsPackages\%(AppPortablePDBsToPublish.SymbolsPackageFilename)"
Condition="Exists('$(_SymbolsSourceDir)%(AppPortablePDBsToPublish.SymbolsPackageFilename)')" />
<UnzipArchive
File="$(_SymbolsSourceDir)%(AllPortablePDBsToPublish.SymbolsPackageFilename)"
Destination="$(_WorkRoot)SymbolsPackages\%(AllPortablePDBsToPublish.SymbolsPackageFilename)"
Condition="Exists('$(_SymbolsSourceDir)%(AllPortablePDBsToPublish.SymbolsPackageFilename)')" />
<Copy
SourceFiles="$(_WorkRoot)SymbolsPackages\%(AppPortablePDBsToPublish.SymbolsPackageFilename)%(AppPortablePDBsToPublish.SymbolsRecursivePath)"
DestinationFolder="$(AppSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\$(SharedFrameworkTargetFramework)"
OverwriteReadOnlyFiles="True"
Condition="Exists('$(_WorkRoot)SymbolsPackages\%(AppPortablePDBsToPublish.SymbolsPackageFilename)\%(AppPortablePDBsToPublish.SymbolsRecursivePath)')" />
<Copy
SourceFiles="$(_WorkRoot)SymbolsPackages\%(AllPortablePDBsToPublish.SymbolsPackageFilename)%(AllPortablePDBsToPublish.SymbolsRecursivePath)"
DestinationFolder="$(AllSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\$(SharedFrameworkTargetFramework)"
OverwriteReadOnlyFiles="True"
Condition="Exists('$(_WorkRoot)SymbolsPackages\%(AllPortablePDBsToPublish.SymbolsPackageFilename)\%(AllPortablePDBsToPublish.SymbolsRecursivePath)')" />
<!-- Copy over DLLs and PDBs -->
<Copy
SourceFiles="%(AppPortablePDBsToPublish.PortablePDB)"
DestinationFolder="$(AppSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\$(SharedFrameworkTargetFramework)"
OverwriteReadOnlyFiles="True"
Condition="Exists('%(AppPortablePDBsToPublish.PortablePDB)')" />
<Copy
SourceFiles="%(AllPortablePDBsToPublish.PortablePDB)"
DestinationFolder="$(AllSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\$(SharedFrameworkTargetFramework)"
OverwriteReadOnlyFiles="True"
Condition="Exists('%(AllPortablePDBsToPublish.PortablePDB)')" />
<Copy
SourceFiles="@(AppCrossGenSymbols)"
DestinationFolder="$(AppSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\$(SharedFrameworkTargetFramework)"
OverwriteReadOnlyFiles="True" />
<Copy
SourceFiles="@(AllCrossGenSymbols)"
DestinationFolder="$(AllSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\$(SharedFrameworkTargetFramework)"
OverwriteReadOnlyFiles="True" />
<Copy
SourceFiles="$(AppSharedFxCrossgenDirectory)%(AppCrossGenOutput.RecursiveDir)%(AppCrossGenOutput.FileName)%(AppCrossGenOutput.Extension)"
DestinationFolder="$(AppSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\$(SharedFrameworkTargetFramework)"
OverwriteReadOnlyFiles="True" />
<Copy
SourceFiles="$(AllSharedFxCrossgenDirectory)%(AllCrossGenOutput.RecursiveDir)%(AllCrossGenOutput.FileName)%(AllCrossGenOutput.Extension)"
DestinationFolder="$(AllSharedFxSymbolsDirectory)runtimes\$(SharedFxRID)\lib\$(SharedFrameworkTargetFramework)"
OverwriteReadOnlyFiles="True" />
<!-- Create symbols nupkg -->
<PropertyGroup>
<AppSymbolsArguments>SymbolsWorkDir=$(AppSharedFxSymbolsDirectory)</AppSymbolsArguments>
<AppSymbolsArguments>$(AppSymbolsArguments);SymbolsNuspecIdSuffix=Microsoft.AspNetCore.App</AppSymbolsArguments>
<AppSymbolsArguments>$(AppSymbolsArguments);Description=Symbol packages for Microsoft.AspNetCore.App shared framework</AppSymbolsArguments>
<AllSymbolsArguments>SymbolsWorkDir=$(AllSharedFxSymbolsDirectory)</AllSymbolsArguments>
<AllSymbolsArguments>$(AllSymbolsArguments);SymbolsNuspecIdSuffix=Microsoft.AspNetCore.All</AllSymbolsArguments>
<AllSymbolsArguments>$(AllSymbolsArguments);Description=Symbol packages for Microsoft.AspNetCore.All shared framework</AllSymbolsArguments>
</PropertyGroup>
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_BuildSharedFxSymbols" Properties="$(AppSymbolsArguments)" />
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_BuildSharedFxSymbols" Properties="$(AllSymbolsArguments)" />
<!-- Replace assemblies with crossgen output -->
<Copy
SourceFiles="$(AppSharedFxCrossgenDirectory)%(AppCrossGenOutput.RecursiveDir)%(AppCrossGenOutput.FileName)%(AppCrossGenOutput.Extension)"
DestinationFiles="$(AppSharedFxPublishDirectory)%(AppCrossGenOutput.RecursiveDir)%(AppCrossGenOutput.FileName)%(AppCrossGenOutput.Extension)"
OverwriteReadOnlyFiles="True" />
<Copy
SourceFiles="$(AllSharedFxCrossgenDirectory)%(AllCrossGenOutput.RecursiveDir)%(AllCrossGenOutput.FileName)%(AllCrossGenOutput.Extension)"
DestinationFiles="$(AllSharedFxPublishDirectory)%(AllCrossGenOutput.RecursiveDir)%(AllCrossGenOutput.FileName)%(AllCrossGenOutput.Extension)"
OverwriteReadOnlyFiles="True" />
<ItemGroup>
<OutputZipFiles Include="$(SharedFxIntermediateOutputPath)**\*" />
</ItemGroup>
<!-- Create internal archive file -->
<Exec Condition="'$(ArchiveExtension)' == '.tar.gz'"
Command="tar -czf $(SharedFxOutputPath)$(SharedFxIntermediateArchiveBaseName)-$(PackageVersion)-$(SharedFxRID)$(ArchiveExtension) -C $(SharedFxIntermediateOutputPath) ." />
<ZipArchive Condition="'$(ArchiveExtension)' == '.zip'"
File="$(SharedFxOutputPath)$(SharedFxIntermediateArchiveBaseName)-$(PackageVersion)-$(SharedFxRID).zip"
SourceFiles="@(OutputZipFiles)"
WorkingDirectory="$(SharedFxIntermediateOutputPath)"
Overwrite="true"/>
</Target>
<Target Name="BuildSharedFx" DependsOnTargets="GeneratePropsFiles;ResolveSharedFxFiles;CrossGenAssemblies;CrossGenSymbols;PackSharedFx;TestSharedFx"/>
<Target Name="TestSharedFx" DependsOnTargets="GeneratePropsFiles;DefineSharedFxPrerequisites;ResolveCommitHash;InstallDotNet">
<PropertyGroup>
<UnitTestFxProject>$(RepositoryRoot)\test\SharedFx.UnitTests\SharedFx.UnitTests.csproj</UnitTestFxProject>
<!-- The file path to the log file, from within the container -->
<UnitTestFxTrxLogFile>$(LogOutputDir)SharedFx-UnitTests-$(Version).trx</UnitTestFxTrxLogFile>
<!-- The trx file path from the perspective of the TeamCity agent -->
<UnitTestFxTrxPhysicalFilePath>$(UnitTestFxTrxLogFile)</UnitTestFxTrxPhysicalFilePath>
<UnitTestFxTrxPhysicalFilePath Condition="'$(HostMachineRepositoryRoot)' != ''">$(HostMachineRepositoryRoot)/artifacts/logs/SharedFx-UnitTests.trx</UnitTestFxTrxPhysicalFilePath>
<UnitTestFxTestProps>
DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);
DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);
SharedFxOutputPath=$(SharedFxIntermediateOutputPath);
RepositoryCommit=$(RepositoryCommit);
VSTestLogger=$([MSBuild]::Escape('trx;LogFileName=$(UnitTestFxTrxLogFile)'));
SharedFxRuntimeIdentifier=$(SharedFXRid)
</UnitTestFxTestProps>
</PropertyGroup>
<MSBuild Projects="$(UnitTestFxProject)" Targets="Restore" Properties="_Dummy=restore;$(UnitTestFxTestProps)" />
<MSBuild Projects="$(UnitTestFxProject)" Targets="Build" Properties="$(UnitTestFxTestProps)">
<MSBuild Projects="$(UnitTestFxProject)" Targets="GetTargetPath" Properties="$(SolutionProperties)">
<Output TaskParameter="TargetOutputs" ItemName="SharedFxTestAssembly" />
</MSBuild>
<RunDotNet Arguments="vstest;
<RunDotNet
IgnoreStandardErrorWarningFormat="true"
IgnoreExitCode="true"
Arguments="vstest;
--Framework:%(TargetFrameworkIdentifier),Version=v%(TargetFrameworkVersion);
--Logger:$([MSBuild]::Escape('trx;LogFileName=$(UnitTestFxTrxLogFile)'));
%(SharedFxTestAssembly.Identity);
--;RunConfiguration.NoAutoReporters=true" IgnoreExitCode="true">
--;RunConfiguration.NoAutoReporters=true">
<Output TaskParameter="ExitCode" PropertyName="VsTestExitCode" />
</RunDotNet>

View File

@ -1,5 +1,5 @@
<Project>
<Target Name="BuildInstallers" DependsOnTargets="GenerateCumulativeArchives;GenerateRpms;GenerateDebs" />
<Target Name="BuildInstallers" DependsOnTargets="GenerateRpms;GenerateDebs" />
<Target Name="_EnsureInstallerPrerequisites">
<MakeDir Directories="$(_InstallersOutputDir)" />
@ -13,72 +13,8 @@
Text="Docker host must be using Linux containers."
Condition="'$(DockerHostOS)' != 'linux'"/>
<Error
Text="Expected archive missing at $(SharedFxIntermediateArchiveFilePrefix)-%(WindowsSharedFxRIDs.Identity).zip."
Condition="!Exists('$(SharedFxIntermediateArchiveFilePrefix)-%(WindowsSharedFxRIDs.Identity).zip')" />
<Error
Text="Expected archive missing at $(SharedFxIntermediateArchiveFilePrefix)-%(NonWindowsSharedFxRIDs.Identity).tar.gz."
Condition="!Exists('$(SharedFxIntermediateArchiveFilePrefix)-%(NonWindowsSharedFxRIDs.Identity).tar.gz')" />
</Target>
<Target Name="_DownloadInstallers">
<!-- Download dotnet installers -->
<MakeDir Directories="$(_InstallerSourceDir)" />
<DownloadFile
SourceUrl="$(RuntimeArchiveLinkPrefix)-%(WindowsSharedFxRIDs.Identity).zip$(DotNetAssetRootAccessTokenSuffix)"
DestinationFolder="$(_InstallerSourceDir)"
DestinationFileName="$(DotnetRuntimeFileNamePrefix)-%(WindowsSharedFxRIDs.Identity).zip"
Condition="!Exists('$(_InstallerSourceDir)$(DotnetRuntimeFileNamePrefix)-%(WindowsSharedFxRIDs.Identity).zip')" />
<DownloadFile
SourceUrl="$(RuntimeArchiveLinkPrefix)-%(NonWindowsSharedFxRIDs.Identity).tar.gz$(DotNetAssetRootAccessTokenSuffix)"
DestinationFolder="$(_InstallerSourceDir)"
DestinationFileName="$(DotnetRuntimeFileNamePrefix)-%(NonWindowsSharedFxRIDs.Identity).tar.gz"
Condition="!Exists('$(_InstallerSourceDir)$(DotnetRuntimeFileNamePrefix)-%(NonWindowsSharedFxRIDs.Identity).tar.gz')" />
</Target>
<Target Name="_GenerateCumulativeArchive">
<PropertyGroup>
<ArchiveExtension>.tar.gz</ArchiveExtension>
<ArchiveExtension Condition="$(SharedFxPlatform.StartsWith('win'))">.zip</ArchiveExtension>
</PropertyGroup>
<!-- Clear working directory -->
<RemoveDir Directories="$(_WorkRoot)" />
<MakeDir Directories="$(_WorkRoot)" />
<!-- Create layout: Aspnet Runtime -->
<Exec
Command="tar -xzf $(SharedFxIntermediateArchiveFilePrefix)-$(SharedFxPlatform)$(ArchiveExtension) -C $(_WorkRoot)"
Condition="'$(ArchiveExtension)' == '.tar.gz'"/>
<Exec
Command="tar -xzf $(_InstallerSourceDir)$(DotnetRuntimeFileNamePrefix)-$(SharedFxPlatform)$(ArchiveExtension) -C $(_WorkRoot)"
Condition="'$(ArchiveExtension)' == '.tar.gz'"/>
<UnzipArchive
File="$(SharedFxIntermediateArchiveFilePrefix)-$(SharedFxPlatform)$(ArchiveExtension)"
Destination="$(_WorkRoot)"
Condition="'$(ArchiveExtension)' == '.zip'" />
<UnzipArchive
File="$(_InstallerSourceDir)$(DotnetRuntimeFileNamePrefix)-$(SharedFxPlatform)$(ArchiveExtension)"
Destination="$(_WorkRoot)"
Condition="'$(ArchiveExtension)' == '.zip'" />
<ItemGroup>
<SharedFxArchiveFiles Include="$(_WorkRoot)**\*" />
</ItemGroup>
<!-- Create Aspnet Runtime archive -->
<Exec
Command="tar -czf $(_InstallersOutputDir)$(SharedFxInstallerName)-$(PackageVersion)-$(SharedFxPlatform)$(ArchiveExtension) -C $(_WorkRoot) ."
Condition="'$(ArchiveExtension)' == '.tar.gz'"/>
<ZipArchive
File="$(_InstallersOutputDir)$(SharedFxInstallerName)-$(PackageVersion)-$(SharedFxPlatform)$(ArchiveExtension)"
SourceFiles="@(SharedFxArchiveFiles)"
WorkingDirectory="$(_WorkRoot)"
Overwrite="true"
Condition="'$(ArchiveExtension)' == '.zip'"/>
</Target>
<Target Name="GenerateCumulativeArchives" DependsOnTargets="_EnsureInstallerPrerequisites;_DownloadInstallers">
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GenerateCumulativeArchive" Properties="SharedFxPlatform=%(AllSharedFxRIDs.Identity)" />
Text="Expected archive missing at $(SharedFxIntermediateArchiveFilePrefix)-linux-x64.tar.gz."
Condition="!Exists('$(SharedFxIntermediateArchiveFilePrefix)-linux-x64.tar.gz')" />
</Target>
<Target Name="_BuildDockerImage">
@ -113,7 +49,7 @@
<!-- Retry added due to fpm/docker race where .w/package_root directory cannot be resolved -->
<Run
FileName="docker"
Command="run --rm -v $(RepositoryRoot):$(_DockerRootDir) docker-image-$(Image) fpm --verbose -s dir -t rpm -n $(RpmName)-$(RpmIdVersion) -p $(_DockerRootDir)artifacts/installers/$(RpmName)-$(RpmFileVersion)-$(RpmFileSuffix) -v $(RpmPackageVersion) --iteration $(RpmRevision) -a amd64 $(RpmArguments) --rpm-changelog $(_DockerRootDir).w/templates/changelog --rpm-summary &quot;$(RpmMSummary)&quot; --description &quot;$(RpmDescription)&quot; --maintainer &quot;$(RpmMaintainerName) &lt;$(RpmMaintainerEmail)&gt;&quot; --vendor &quot;$(RpmVendor)&quot; --license &quot;$(RpmLicense)&quot; --url &quot;$(RpmHomepage)&quot; $(_DockerRootDir).w/package_root/=&quot;$(RpmInstallRoot)/&quot;"
Command="run --rm -v $(RepositoryRoot):$(_DockerRootDir) docker-image-$(Image) fpm --verbose -s dir -t rpm -n $(RpmName)-$(RpmIdVersion) -p $(_DockerRootDir)artifacts/installers/$(RpmName)-$(RpmFileVersion)-$(RpmFileSuffix) -v $(RpmPackageVersion) --iteration $(RpmRevision) -a amd64 $(RpmArguments) --rpm-changelog $(_DockerRootDir).w/$(SharedFxRid)/templates/changelog --rpm-summary &quot;$(RpmMSummary)&quot; --description &quot;$(RpmDescription)&quot; --maintainer &quot;$(RpmMaintainerName) &lt;$(RpmMaintainerEmail)&gt;&quot; --vendor &quot;$(RpmVendor)&quot; --license &quot;$(RpmLicense)&quot; --url &quot;$(RpmHomepage)&quot; $(_DockerRootDir).w/$(SharedFxRid)/package_root/=&quot;$(RpmInstallRoot)/&quot;"
MaxRetries="5"/>
</Target>

View File

@ -2,18 +2,13 @@
<ItemDefinitionGroup>
<PackageArtifact>
<!-- When true, this dependency will be included in the Microsoft.AspNetCore.App metapackage. -->
<AppMetapackage>false</AppMetapackage>
<!-- When true, this dependency will be included in the Microsoft.AspNetCore.All metapackage. -->
<AllMetapackage>false</AllMetapackage>
<!-- When true, this dependency will be included in the Microsoft.AspNetCore.Analyzers metapackage. -->
<Analyzer>false</Analyzer>
<!--
Other known package types:
Dependency = for packages that are installed via PackageReference
DotnetCliTool = for packages that are installed via DotNetCliToolReference
<!-- Defines how and where the package ships.
ship = nuget.org
shipoob = some other mechanism
noship = for transporting internal bits only
-->
<PackageType>Dependency</PackageType>
<Category></Category>
</PackageArtifact>
</ItemDefinitionGroup>
@ -23,73 +18,74 @@
<PackageArtifact Include="dotnet-sql-cache" Category="ship" />
<PackageArtifact Include="dotnet-user-secrets" Category="ship" />
<PackageArtifact Include="dotnet-watch" Category="ship" />
<PackageArtifact Include="Internal.AspNetCore.Universe.Lineup" Category="noship" PackageType="Lineup" />
<PackageArtifact Include="Internal.AspNetCore.Universe.Lineup" Category="noship" />
<PackageArtifact Include="Internal.WebHostBuilderFactory.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.AspNet.Identity.AspNetCoreCompat" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.All" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Analyzers" Category="shipoob" />
<PackageArtifact Include="Microsoft.AspNetCore.Antiforgery" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.App" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.ApplicationInsights.HostingStartup" Category="ship" AllMetapackage="true" />
<PackageArtifact Include="runtime.$(SharedFxRid).Microsoft.AspNetCore.All" Category="noship" />
<PackageArtifact Include="runtime.$(SharedFxRid).Microsoft.AspNetCore.App" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Antiforgery" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.ApplicationInsights.HostingStartup" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.AspNetCoreModule" Category="noship" Condition=" '$(OS)' == 'Windows_NT' " />
<PackageArtifact Include="Microsoft.AspNetCore.AspNetCoreModuleV2" Category="noship" Condition=" '$(OS)' == 'Windows_NT' " />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Cookies" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Core" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Facebook" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Google" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.JwtBearer" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.OAuth" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Twitter" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.WsFederation" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authorization.Policy" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authorization" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Category="ship" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Category="ship" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Cookies" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Core" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Facebook" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Google" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.JwtBearer" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.OAuth" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.Twitter" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication.WsFederation" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authentication" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authorization.Policy" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Authorization" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Buffering" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.ChunkingCookieManager.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Connections.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.AspNetCore.CookiePolicy" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Cors" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Cryptography.Internal" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault" Category="ship" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection.AzureStorage" Category="ship" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Connections.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.CookiePolicy" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Cors" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Cryptography.Internal" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection.AzureStorage" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection.Extensions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection.Extensions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection.SystemWeb" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.DataProtection" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.DeveloperCertificates.XPlat" Category="shipoob" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.Elm" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics.Identity.Service" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.HostFiltering" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Hosting.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Diagnostics" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.HostFiltering" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Hosting.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Hosting.WindowsServices" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Hosting" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Html.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Http.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Hosting" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Html.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Http.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Http.Connections.Client" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Http.Connections.Common" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Http.Connections" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Http.Extensions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Http.Features" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Http" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.HttpOverrides" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.HttpsPolicy" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Http.Connections.Common" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Http.Connections" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Http.Extensions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Http.Features" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Http" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.HttpOverrides" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.HttpsPolicy" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.HttpSys.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Identity.Service.Abstractions" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Identity.Service.AzureKeyVault" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Identity.Service.Core" Category="noship" />
@ -99,160 +95,160 @@
<PackageArtifact Include="Microsoft.AspNetCore.Identity.Service.Specification.Tests" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Identity.Service" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Identity.Specification.Tests" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Identity.UI" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Identity" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.JsonPatch" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Localization.Routing" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Localization" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.MiddlewareAnalysis" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Analyzers" Category="ship" Analyzer="true" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Api.Analyzers" Category="ship" Analyzer="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.ApiExplorer" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Core" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Cors" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Localization" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Identity.UI" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Identity" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.JsonPatch" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Localization.Routing" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Localization" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.MiddlewareAnalysis" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Analyzers" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Api.Analyzers" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.ApiExplorer" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Core" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Cors" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Localization" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X" Category="shipoob" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Razor" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.RazorPages" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.TagHelpers" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Razor" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.RazorPages" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.TagHelpers" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Testing" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.WebApiCompatShim" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.NodeServices.Sockets" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.NodeServices" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Owin" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.NodeServices" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Owin" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.RangeHelper.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Razor.Design" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Razor.Language" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Razor.Runtime" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Razor.Design" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Razor.Language" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Razor.Runtime" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Razor.TagHelpers.Testing.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Razor" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.ResponseCaching" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.ResponseCompression" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Rewrite" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Routing.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Razor" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.ResponseCaching" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.ResponseCompression" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Rewrite" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Routing.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Routing.DecisionTree.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Routing" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Server.HttpSys" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Server.IIS" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.IISIntegration" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Routing" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.HttpSys" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.IIS" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.IISIntegration" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.IntegrationTesting" Category="noship" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Core" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Https" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Category="ship" AppMetapackage="false" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Session" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Core" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Https" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Server.Kestrel" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.Session" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Client.Core" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Client" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Common" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Core" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Common" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Core" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Redis" Category="ship" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Redis" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR.Specification.Tests" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SignalR" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.SpaServices.Extensions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.SpaServices" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.StaticFiles" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.SignalR" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SpaServices.Extensions" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.SpaServices" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.StaticFiles" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.TestHost" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebSockets" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.WebUtilities" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.WebSockets" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.WebUtilities" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore" Category="ship" />
<PackageArtifact Include="Microsoft.CodeAnalysis.Razor.Workspaces" Category="shipoob" />
<PackageArtifact Include="Microsoft.CodeAnalysis.Razor" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.CodeAnalysis.Razor" Category="ship" />
<PackageArtifact Include="Microsoft.CodeAnalysis.Remote.Razor" Category="shipoob" />
<PackageArtifact Include="Microsoft.Data.Sqlite.Core" Category="ship" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Data.Sqlite" Category="ship" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Data.Sqlite.Core" Category="ship" />
<PackageArtifact Include="Microsoft.Data.Sqlite" Category="ship" />
<PackageArtifact Include="Microsoft.DotNet.Web.Client.ItemTemplates" Category="ship" />
<PackageArtifact Include="Microsoft.DotNet.Web.ItemTemplates" Category="ship" />
<PackageArtifact Include="Microsoft.DotNet.Web.ProjectTemplates.3.0" Category="ship" />
<PackageArtifact Include="Microsoft.DotNet.Web.Spa.ProjectTemplates" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Analyzers" Category="ship" Analyzer="true" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Cosmos" Category="noship"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Design" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.InMemory" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Proxies" Category="ship"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Analyzers" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Cosmos" Category="noship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Design" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.InMemory" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Proxies" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Relational.Specification.Tests" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Relational" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Relational" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Specification.Tests" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Category="ship" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Sqlite" Category="ship" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite" Category="ship"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.SqlServer" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite" Category="ship"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Tools" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore" Category="ship" AppMetapackage="true" AllMetapackage="true"/>
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Sqlite" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.SqlServer" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore.Tools" Category="ship" />
<PackageArtifact Include="Microsoft.EntityFrameworkCore" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.ActivatorUtilities.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.Extensions.ApiDescription.Design" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.ApplicationModelDetection" Category="noship" />
<PackageArtifact Include="Microsoft.Extensions.Buffers.MemoryPool.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.Extensions.Buffers.Testing.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.Extensions.Caching.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Caching.Memory" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Caching.Redis" Category="ship" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Caching.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Caching.Memory" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Caching.Redis" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Caching.StackExchangeRedis" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Caching.SqlServer" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.AzureKeyVault" Category="ship" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.Binder" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.CommandLine" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.FileExtensions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.Ini" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.Json" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.KeyPerFile" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.UserSecrets" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.Xml" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Configuration" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.DependencyInjection.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Caching.SqlServer" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.AzureKeyVault" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.Binder" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.CommandLine" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.FileExtensions" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.Ini" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.Json" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.KeyPerFile" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.UserSecrets" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration.Xml" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Configuration" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.DependencyInjection.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.DependencyInjection.Specification.Tests" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.DependencyInjection" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.DiagnosticAdapter" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Category="ship" AppMetapackage="false" AllMetapackage="false" />
<PackageArtifact Include="Microsoft.Extensions.Diagnostics.HealthChecks" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.FileProviders.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.FileProviders.Composite" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.FileProviders.Embedded" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.FileProviders.Physical" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.FileSystemGlobbing" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Hosting.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Hosting" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Http.Polly" Category="ship" AppMetapackage="false" AllMetapackage="false" />
<PackageArtifact Include="Microsoft.Extensions.Http" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Identity.Core" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Identity.Stores" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Localization.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Localization" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Abstractions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Analyzers" Category="shipoob" Analyzer="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.AzureAppServices" Category="ship" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Configuration" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Console" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Debug" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.DependencyInjection" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.DiagnosticAdapter" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Diagnostics.HealthChecks" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.FileProviders.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.FileProviders.Composite" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.FileProviders.Embedded" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.FileProviders.Physical" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.FileSystemGlobbing" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Hosting.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Hosting" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Http.Polly" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Http" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Identity.Core" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Identity.Stores" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Localization.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Localization" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Abstractions" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Analyzers" Category="shipoob" />
<PackageArtifact Include="Microsoft.Extensions.Logging.AzureAppServices" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Configuration" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Console" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Debug" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Logging.EventLog" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Logging.EventSource" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.EventSource" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Testing" Category="noship" />
<PackageArtifact Include="Microsoft.Extensions.Logging.TraceSource" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Options.ConfigurationExtensions" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Options.DataAnnotations" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Options" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.TraceSource" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Logging" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Options.ConfigurationExtensions" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Options.DataAnnotations" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.Options" Category="ship" />
<PackageArtifact Include="Microsoft.Extensions.ParameterDefaultValue.Sources" Category="noship" />
<PackageArtifact Include="Microsoft.Extensions.WebEncoders" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Net.Http.Headers" Category="ship" AppMetapackage="true" AllMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.WebEncoders" Category="ship" />
<PackageArtifact Include="Microsoft.Net.Http.Headers" Category="ship" />
<PackageArtifact Include="Microsoft.NET.Sdk.Razor" Category="ship" />
<PackageArtifact Include="Microsoft.Owin.Security.Interop" Category="ship" />
<PackageArtifact Include="Microsoft.VisualStudio.Editor.Razor" Category="shipoob" />

View File

@ -1,4 +1,4 @@
<Project>
<Project>
<!-- These package versions may be overridden or updated by automation. -->
<PropertyGroup Label="Package Versions: Auto" Condition=" '$(DotNetPackageVersionPropsPath)' == '' ">
<MicrosoftCSharpPackageVersion>4.6.0-preview1-26907-04</MicrosoftCSharpPackageVersion>
@ -60,6 +60,8 @@
<PropertyGroup>
<!-- Assign this variable last because it may be updated from DotNetPackageVersionPropsPath as MicrosoftNETCoreAppPackageVersion. -->
<MicrosoftNETCoreApp30PackageVersion Condition="'$(MicrosoftNETCoreAppPackageVersion)' != ''">$(MicrosoftNETCoreAppPackageVersion)</MicrosoftNETCoreApp30PackageVersion>
<!-- Assign this variable to ensure they are consistent. -->
<MicrosoftNETCoreAppPackageVersion>$(MicrosoftNETCoreApp30PackageVersion)</MicrosoftNETCoreAppPackageVersion>
<!-- Determined by build tools -->
<MicrosoftAspNetCoreBuildToolsApiCheckPackageVersion>$(KoreBuildVersion)</MicrosoftAspNetCoreBuildToolsApiCheckPackageVersion>

View File

@ -5,54 +5,37 @@
<ExternalDependency>
<!-- The NuGet package version. Floating versions not allowed. -->
<Version></Version>
<!-- When true, this dependency will be included in the Microsoft.AspNetCore.App metapackage. -->
<AppMetapackage>false</AppMetapackage>
<!-- When true, this dependency will be included in the Microsoft.AspNetCore.All metapackage. -->
<AllMetapackage>false</AllMetapackage>
</ExternalDependency>
<!-- For dependencies from aspnet/Extensions -->
<ExtensionsDependency>
<!-- The NuGet package version. Floating versions not allowed. -->
<Version></Version>
<!-- When true, this dependency will be included in the Microsoft.AspNetCore.App metapackage. -->
<AppMetapackage>false</AppMetapackage>
<!-- When true, this dependency will be included in the Microsoft.AspNetCore.All metapackage. -->
<AllMetapackage>false</AllMetapackage>
<IsExtensionsPackage>true</IsExtensionsPackage>
</ExtensionsDependency>
</ItemDefinitionGroup>
<ItemGroup>
<!-- Packages from aspnet/Extensions -->
<ExtensionsDependency Include="Internal.AspNetCore.Analyzers" Version="$(InternalAspNetCoreAnalyzersPackageVersion)" />
<ExtensionsDependency Include="Microsoft.AspNetCore.Analyzer.Testing" Version="$(MicrosoftAspNetCoreAnalyzerTestingPackageVersion)" />
<ExtensionsDependency Include="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="$(MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.AspNetCore.Certificates.Generation.Sources" Version="$(MicrosoftAspNetCoreCertificatesGenerationSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.ClosedGenericMatcher.Sources" Version="$(MicrosoftExtensionsClosedGenericMatcherSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.ClosedGenericMatcher.Sources" Version="$(MicrosoftExtensionsClosedGenericMatcherSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.CommandLineUtils.Sources" Version="$(MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.CopyOnWriteDictionary.Sources" Version="$(MicrosoftExtensionsCopyOnWriteDictionarySourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.HashCodeCombiner.Sources" Version="$(MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.NonCapturingTimer.Sources" Version="$(MicrosoftExtensionsNonCapturingTimerSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.ObjectMethodExecutor.Sources" Version="$(MicrosoftExtensionsObjectMethodExecutorSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.ObjectPool" Version="$(MicrosoftExtensionsObjectPoolPackageVersion)" AllMetapackage="true" AppMetapackage="true" />
<ExtensionsDependency Include="Microsoft.Extensions.Primitives" Version="$(MicrosoftExtensionsPrimitivesPackageVersion)" AllMetapackage="true" AppMetapackage="true" />
<ExtensionsDependency Include="Microsoft.Extensions.Process.Sources" Version="$(MicrosoftExtensionsProcessSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.PropertyActivator.Sources" Version="$(MicrosoftExtensionsPropertyActivatorSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.PropertyHelper.Sources" Version="$(MicrosoftExtensionsPropertyHelperSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.RazorViews.Sources" Version="$(MicrosoftExtensionsRazorViewsSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.SecurityHelper.Sources" Version="$(MicrosoftExtensionsSecurityHelperSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.StackTrace.Sources" Version="$(MicrosoftExtensionsStackTraceSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.TypeNameHelper.Sources" Version="$(MicrosoftExtensionsTypeNameHelperSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.ValueStopwatch.Sources" Version="$(MicrosoftExtensionsValueStopwatchSourcesPackageVersion)" />
<ExtensionsDependency Include="Microsoft.Extensions.WebEncoders.Sources" Version="$(MicrosoftExtensionsWebEncodersSourcesPackageVersion)" />
<ExternalDependency Include="Internal.AspNetCore.Analyzers" Version="$(InternalAspNetCoreAnalyzersPackageVersion)" />
<ExternalDependency Include="Microsoft.AspNetCore.Analyzer.Testing" Version="$(MicrosoftAspNetCoreAnalyzerTestingPackageVersion)" />
<ExternalDependency Include="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="$(MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.AspNetCore.Certificates.Generation.Sources" Version="$(MicrosoftAspNetCoreCertificatesGenerationSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.ClosedGenericMatcher.Sources" Version="$(MicrosoftExtensionsClosedGenericMatcherSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.ClosedGenericMatcher.Sources" Version="$(MicrosoftExtensionsClosedGenericMatcherSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.CommandLineUtils.Sources" Version="$(MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.CopyOnWriteDictionary.Sources" Version="$(MicrosoftExtensionsCopyOnWriteDictionarySourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.HashCodeCombiner.Sources" Version="$(MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.NonCapturingTimer.Sources" Version="$(MicrosoftExtensionsNonCapturingTimerSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.ObjectMethodExecutor.Sources" Version="$(MicrosoftExtensionsObjectMethodExecutorSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.ObjectPool" Version="$(MicrosoftExtensionsObjectPoolPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.Primitives" Version="$(MicrosoftExtensionsPrimitivesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.Process.Sources" Version="$(MicrosoftExtensionsProcessSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.PropertyActivator.Sources" Version="$(MicrosoftExtensionsPropertyActivatorSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.PropertyHelper.Sources" Version="$(MicrosoftExtensionsPropertyHelperSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.RazorViews.Sources" Version="$(MicrosoftExtensionsRazorViewsSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.SecurityHelper.Sources" Version="$(MicrosoftExtensionsSecurityHelperSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.StackTrace.Sources" Version="$(MicrosoftExtensionsStackTraceSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.TypeNameHelper.Sources" Version="$(MicrosoftExtensionsTypeNameHelperSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.ValueStopwatch.Sources" Version="$(MicrosoftExtensionsValueStopwatchSourcesPackageVersion)" />
<ExternalDependency Include="Microsoft.Extensions.WebEncoders.Sources" Version="$(MicrosoftExtensionsWebEncodersSourcesPackageVersion)" />
</ItemGroup>
<ItemGroup>
<ExternalDependency Include="@(ExtensionsDependency)" />
<ExternalDependency Include="AngleSharp" Version="$(AngleSharpPackageVersion)" />
<ExternalDependency Include="BenchmarkDotNet" Version="$(BenchmarkDotNetPackageVersion)" />
<ExternalDependency Include="Castle.Core" Version="$(CastleCorePackageVersion)" />
@ -64,7 +47,7 @@
<ExternalDependency Include="Libuv" Version="$(LibuvPackageVersion)" />
<ExternalDependency Include="Microsoft.ApplicationInsights.AspNetCore" Version="$(MicrosoftApplicationInsightsAspNetCorePackageVersion)" />
<ExternalDependency Include="Microsoft.AspNet.Identity.EntityFramework" Version="$(MicrosoftAspNetIdentityEntityFrameworkPackageVersion)" />
<ExternalDependency Include="Microsoft.AspNet.WebApi.Client" Version="$(MicrosoftAspNetWebApiClientPackageVersion)" AppMetapackage="true" AllMetapackage="true"/>
<ExternalDependency Include="Microsoft.AspNet.WebApi.Client" Version="$(MicrosoftAspNetWebApiClientPackageVersion)" />
<ExternalDependency Include="Microsoft.Azure.DocumentDB.Core" Version="$(MicrosoftAzureDocumentDBCorePackageVersion)" />
<ExternalDependency Include="Microsoft.Azure.KeyVault" Version="$(MicrosoftAzureKeyVaultPackageVersion)" />
<ExternalDependency Include="Microsoft.Azure.Management.Fluent" Version="$(MicrosoftAzureManagementFluentPackageVersion)" />
@ -117,6 +100,8 @@
<ExternalDependency Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp21PackageVersion)" VariableName="MicrosoftNETCoreApp21PackageVersion" />
<ExternalDependency Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp22PackageVersion)" VariableName="MicrosoftNETCoreApp22PackageVersion" />
<ExternalDependency Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreApp30PackageVersion)" VariableName="MicrosoftNETCoreApp30PackageVersion" />
<!-- This variable should be used for anything that needs "latest" netcoreapp. -->
<ExternalDependency Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" VariableName="MicrosoftNETCoreAppPackageVersion" />
<!-- Microsoft.NetCore.DotNetAppHost for global tools-->
<ExternalDependency Include="Microsoft.NETCore.DotNetAppHost" Version="$(MicrosoftNETCoreDotNetAppHost21PackageVersion)" VariableName="MicrosoftNETCoreDotNetAppHost21PackageVersion" />
@ -196,7 +181,7 @@
<ExternalDependency Include="System.Diagnostics.EventLog" Version="$(SystemDiagnosticsEventLogPackageVersion)" />
<ExternalDependency Include="System.IdentityModel.Tokens.Jwt" Version="$(SystemIdentityModelTokensJwtPackageVersion)" />
<ExternalDependency Include="System.Interactive.Async" Version="$(SystemInteractiveAsyncPackageVersion)" />
<ExternalDependency Include="System.IO.Pipelines" Version="$(SystemIOPipelinesPackageVersion)" AppMetapackage="true" AllMetapackage="true" MetapackageVersionRangeType="Minimum" />
<ExternalDependency Include="System.IO.Pipelines" Version="$(SystemIOPipelinesPackageVersion)" />
<ExternalDependency Include="System.Memory" Version="$(SystemMemoryPackageVersion)" />
<ExternalDependency Include="System.Net.Http.WinHttpHandler" Version="$(SystemNetHttpWinHttpHandlerPackageVersion)" />
<ExternalDependency Include="System.Net.Http" Version="$(SystemNetHttpPackageVersion)" />

View File

@ -1,10 +0,0 @@
<Project>
<PropertyGroup>
<!--
This ensures the build number is a time-based number for local builds.
This is important for local builds of ASP.NET Core which need to ensure repo-to-repo
builds are using new articacts, not ones from the global cache.
-->
<IncrementalVersion>true</IncrementalVersion>
</PropertyGroup>
</Project>

View File

@ -18,6 +18,7 @@
<IntermediateInstaller Include="win-x86" FileExt=".wixlib" />
<IntermediateInstaller Include="win-x64" FileExt=".zip" />
<IntermediateInstaller Include="win-x64" FileExt=".wixlib" />
<IntermediateInstaller Include="win-arm" FileExt=".zip" />
<IntermediateInstaller Include="osx-x64" FileExt=".tar.gz" />
<IntermediateInstaller Include="linux-x64" FileExt=".tar.gz" />
<IntermediateInstaller Include="linux-arm" FileExt=".tar.gz" />
@ -28,6 +29,7 @@
<NativeInstaller Include="win-x86" FileExt=".zip" />
<NativeInstaller Include="win-x64" FileExt=".exe" />
<NativeInstaller Include="win-x64" FileExt=".zip" />
<NativeInstaller Include="win-arm" FileExt=".zip" />
<NativeInstaller Include="osx-x64" FileExt=".tar.gz" />
<NativeInstaller Include="linux-x64" FileExt=".tar.gz" />
<NativeInstaller Include="linux-arm" FileExt=".tar.gz" />

View File

@ -15,8 +15,8 @@
<PrepareDependsOn>SetTeamCityBuildNumberToVersion;$(PrepareDependsOn);VerifyPackageArtifactConfig;VerifyExternalDependencyConfig;PrepareOutputPaths</PrepareDependsOn>
<CleanDependsOn>$(CleanDependsOn);CleanArtifacts;CleanRepoArtifacts</CleanDependsOn>
<RestoreDependsOn>$(RestoreDependsOn);InstallDotNet</RestoreDependsOn>
<CompileDependsOn>$(CompileDependsOn);BuildRepositories</CompileDependsOn>
<PackageDependsOn Condition="'$(TestOnly)' != 'true'">$(PackageDependsOn);BuildMetapackages;CheckExpectedPackagesExist</PackageDependsOn>
<CompileDependsOn>$(CompileDependsOn);BuildRepositories;BuildSharedFx</CompileDependsOn>
<PackageDependsOn Condition="'$(TestOnly)' != 'true'">$(PackageDependsOn);CheckExpectedPackagesExist</PackageDependsOn>
<TestDependsOn>$(TestDependsOn);_TestRepositories</TestDependsOn>
<GetArtifactInfoDependsOn>$(GetArtifactInfoDependsOn);ResolveRepoInfo</GetArtifactInfoDependsOn>
</PropertyGroup>
@ -25,7 +25,7 @@
<MakeDir Directories="$(ArtifactsDir);$(BuildDir)" />
</Target>
<Target Name="ResolveRepoInfo" DependsOnTargets="_PrepareRepositories;GetMetapackageArtifactInfo;GetLineupPackageInfo">
<Target Name="ResolveRepoInfo" DependsOnTargets="_PrepareRepositories;GetLineupPackageInfo">
<!-- We need to pass the NETCoreApp package versions to msbuild so that it doesn't complain about us using a different one than it was restored against. -->
<PropertyGroup>
<DesignTimeBuildProps>MicrosoftNETCoreAppPackageVersion=$(MicrosoftNETCoreAppPackageVersion);</DesignTimeBuildProps>
@ -43,6 +43,14 @@
<Output TaskParameter="TargetOutputs" ItemName="ArtifactInfo" />
</MSBuild>
<MSBuild Projects="@(ProjectToBuild)"
Targets="GetArtifactInfo"
Properties="$(DesignTimeBuildProps);Configuration=$(Configuration);BuildNumber=$(BuildNumber);DesignTimeBuild=true"
SkipNonexistentTargets="true"
Condition="'@(ProjectToBuild)' != ''">
<Output TaskParameter="TargetOutputs" ItemName="ArtifactInfo" />
</MSBuild>
<MSBuild Projects="$(MSBuildProjectFullPath)"
Targets="ResolveSolutions"
Properties="RepositoryRoot=%(Repository.RootPath);Configuration=$(Configuration);BuildNumber=$(BuildNumber)"
@ -239,18 +247,6 @@
<Target Name="VerifyPackageArtifactConfig">
<Error Text="Invalid configuration of %(PackageArtifact.Identity). PackageArtifact must have the 'Category' metadata."
Condition="'%(PackageArtifact.Category)' == '' " />
<Error Text="Invalid configuration of %(PackageArtifact.Identity). Packages marked as LZMA='true' must be Category='ship'."
Condition="'%(PackageArtifact.Category)' != 'ship' AND '%(PackageArtifact.LZMA)' == 'true' " />
<Error Text="Invalid configuration of %(PackageArtifact.Identity). Packages marked as AppMetapackage='true' must be Category='ship'."
Condition="'%(PackageArtifact.Category)' != 'ship' AND '%(PackageArtifact.AppMetapackage)' == 'true' " />
<Error Text="Invalid configuration of %(PackageArtifact.Identity). Packages marked as AllMetapackage='true' must be Category='ship'."
Condition="'%(PackageArtifact.Category)' != 'ship' AND '%(PackageArtifact.AllMetapackage)' == 'true' " />
<Error Text="Invalid configuration of %(PackageArtifact.Identity). Packages marked as AppMetapackage='true' must also be marked as AllMetapackage='true'."
Condition="'%(PackageArtifact.AppMetapackage)' == 'true' AND '%(PackageArtifact.AllMetapackage)' != 'true' " />
</Target>
<Target Name="VerifyExternalDependencyConfig">

View File

@ -28,5 +28,10 @@
$(RestoreSources);
https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json;
</RestoreSources>
<PublicCoreFeedPrefix>https://dotnetcli.blob.core.windows.net/dotnet/</PublicCoreFeedPrefix>
<!-- In an orchestrated build, this may be overriden to other Azure feeds. -->
<DotNetAssetRootUrl Condition="'$(DotNetAssetRootUrl)'==''">$(PublicCoreFeedPrefix)</DotNetAssetRootUrl>
</PropertyGroup>
</Project>

View File

@ -1,134 +0,0 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Linq;
using System.Xml;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using NuGet.Versioning;
using RepoTasks.Utilities;
namespace RepoTasks
{
public class AddMetapackageReferences : Task
{
[Required]
public string ReferencePackagePath { get; set; }
[Required]
public string MetapackageReferenceType { get; set; }
[Required]
public string DependencyVersionRangeType { get; set; }
// MSBuild doesn't allow binding to enums directly.
private enum VersionRangeType
{
Minimum, // [1.1.1, )
MajorMinor, // [1.1.1, 1.2.0)
}
[Required]
public ITaskItem[] PackageArtifacts { get; set; }
[Required]
public ITaskItem[] ExternalDependencies { get; set; }
public override bool Execute()
{
if (!Enum.TryParse<VersionRangeType>(DependencyVersionRangeType, out var dependencyVersionType))
{
Log.LogError("Unexpected value {0} for DependencyVersionRangeType", DependencyVersionRangeType);
return false;
}
// Parse input
var metapackageArtifacts = PackageArtifacts.Where(p => p.GetMetadata(MetapackageReferenceType) == "true");
var externalArtifacts = ExternalDependencies.Where(p => p.GetMetadata(MetapackageReferenceType) == "true");
var xmlDoc = new XmlDocument();
xmlDoc.Load(ReferencePackagePath);
// Project
var projectElement = xmlDoc.FirstChild;
// Items
var itemGroupElement = xmlDoc.CreateElement("ItemGroup");
Log.LogMessage(MessageImportance.High, $"{MetapackageReferenceType} will include the following packages");
foreach (var package in metapackageArtifacts)
{
var packageName = package.ItemSpec;
var packageVersion = package.GetMetadata("Version");
if (string.IsNullOrEmpty(packageVersion))
{
Log.LogError("Missing version information for package {0}", packageName);
continue;
}
var packageVersionValue = GetDependencyVersion(dependencyVersionType, packageName, packageVersion);
Log.LogMessage(MessageImportance.High, $" - Package: {packageName} Version: {packageVersionValue}");
var packageReferenceElement = xmlDoc.CreateElement("PackageReference");
packageReferenceElement.SetAttribute("Include", packageName);
packageReferenceElement.SetAttribute("Version", packageVersionValue);
packageReferenceElement.SetAttribute("PrivateAssets", "None");
itemGroupElement.AppendChild(packageReferenceElement);
}
foreach (var package in externalArtifacts)
{
var packageName = package.ItemSpec;
var packageVersion = package.GetMetadata("Version");
if (string.IsNullOrEmpty(packageVersion))
{
Log.LogError("Missing version information for package {0}", packageName);
continue;
}
var packageVersionValue =
Enum.TryParse<VersionRangeType>(package.GetMetadata("MetapackageVersionRangeType"), out var packageVersionType)
? GetDependencyVersion(packageVersionType, packageName, packageVersion)
: GetDependencyVersion(dependencyVersionType, packageName, packageVersion);
Log.LogMessage(MessageImportance.High, $" - Package: {packageName} Version: {packageVersionValue}");
var packageReferenceElement = xmlDoc.CreateElement("PackageReference");
packageReferenceElement.SetAttribute("Include", packageName);
packageReferenceElement.SetAttribute("Version", packageVersionValue);
packageReferenceElement.SetAttribute("PrivateAssets", "None");
itemGroupElement.AppendChild(packageReferenceElement);
}
projectElement.AppendChild(itemGroupElement);
// Save updated file
xmlDoc.AppendChild(projectElement);
xmlDoc.Save(ReferencePackagePath);
return !Log.HasLoggedErrors;
}
private string GetDependencyVersion(VersionRangeType dependencyVersionType, string packageName, string packageVersion)
{
switch (dependencyVersionType)
{
case VersionRangeType.MajorMinor:
if (!NuGetVersion.TryParse(packageVersion, out var nugetVersion))
{
Log.LogError("Invalid NuGet version '{0}' for package {1}", packageVersion, packageName);
return null;
}
return $"[{packageVersion}, {nugetVersion.Major}.{nugetVersion.Minor + 1}.0)";
case VersionRangeType.Minimum:
return packageVersion;
default:
throw new NotImplementedException();
}
}
}
}

View File

@ -24,7 +24,7 @@ namespace RepoTasks
var versionOverrides = ProjectRootElement.Open(DotNetPackageVersionPropsPath);
var dependencies = ProjectRootElement.Open(DependenciesFile);
var pinnedVersions = dependencies.PropertyGroups
.Where(p => !string.Equals("Package Versions: Auto", p.Label))
.Where(p => string.Equals("Package Versions: Pinned", p.Label))
.SelectMany(p => p.Properties)
.ToDictionary(p => p.Name, p => p.Value, StringComparer.OrdinalIgnoreCase);

View File

@ -3,8 +3,10 @@
// Sourced from https://github.com/dotnet/core-setup/tree/be8d8e3486b2bf598ed69d39b1629a24caaba45e/tools-local/tasks, needs to be kept in sync
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using Microsoft.Extensions.DependencyModel;
@ -14,7 +16,7 @@ using RepoTasks.Utilities;
namespace RepoTasks
{
public partial class ProcessSharedFrameworkDeps : Task
public class ProcessSharedFrameworkDeps : Task
{
[Required]
public string AssetsFilePath { get; set; }
@ -22,6 +24,15 @@ namespace RepoTasks
[Required]
public string DepsFilePath { get; set; }
[Required]
public string OutputPath { get; set; }
[Required]
public string FrameworkName { get; set; }
// When generating the .deps.json file, these files are used to replace "project" libraries with "packages".
public ITaskItem[] ResolvedPackageProjectReferences { get; set; }
public string[] PackagesToRemove { get; set; }
[Required]
@ -42,7 +53,7 @@ namespace RepoTasks
context = new DependencyContextJsonReader().Read(depsStream);
}
LockFile lockFile = LockFileUtilities.GetLockFile(AssetsFilePath, NullLogger.Instance);
var lockFile = LockFileUtilities.GetLockFile(AssetsFilePath, NullLogger.Instance);
if (lockFile == null)
{
throw new ArgumentException($"Could not load a LockFile at '{AssetsFilePath}'.", nameof(AssetsFilePath));
@ -52,25 +63,66 @@ namespace RepoTasks
var graph = manager.Collect(lockFile);
var expandedGraph = manager.Expand(graph, Runtime);
var trimmedRuntimeLibraries = context.RuntimeLibraries;
// Remove the runtime entry for the project which generates the original deps.json. For example, there is no Microsoft.AspNetCore.App.dll.
var trimmedRuntimeLibraries = RuntimeReference.RemoveSharedFxRuntimeEntry(context.RuntimeLibraries, FrameworkName);
trimmedRuntimeLibraries = ResolveProjectsAsPackages(ResolvedPackageProjectReferences, trimmedRuntimeLibraries);
if (PackagesToRemove != null && PackagesToRemove.Any())
{
trimmedRuntimeLibraries = RuntimeReference.RemoveReferences(context.RuntimeLibraries, PackagesToRemove);
trimmedRuntimeLibraries = RuntimeReference.RemoveReferences(trimmedRuntimeLibraries, PackagesToRemove);
}
context = new DependencyContext(
context.Target,
context.CompilationOptions,
context.CompileLibraries,
CompilationOptions.Default,
Array.Empty<CompilationLibrary>(),
trimmedRuntimeLibraries,
expandedGraph
);
using (var depsStream = File.Create(DepsFilePath))
using (var depsStream = File.Create(OutputPath))
{
new DependencyContextWriter().Write(context, depsStream);
}
}
private IEnumerable<RuntimeLibrary> ResolveProjectsAsPackages(ITaskItem[] resolvedProjects, IEnumerable<RuntimeLibrary> compilationLibraries)
{
var projects = resolvedProjects.ToDictionary(k => k.GetMetadata("PackageId"), k => k, StringComparer.OrdinalIgnoreCase);
foreach (var library in compilationLibraries)
{
if (projects.TryGetValue(library.Name, out var project))
{
Log.LogMessage("Replacing the library entry for {0}", library.Name);
var packagePath = project.ItemSpec;
var packageId = library.Name;
var version = library.Version;
string packageHash;
using (var sha512 = SHA512.Create())
{
packageHash = "sha512-" + sha512.ComputeHashAsBase64(File.OpenRead(packagePath), leaveStreamOpen: false);
}
yield return new RuntimeLibrary("package",
library.Name,
library.Version,
packageHash,
library.RuntimeAssemblyGroups,
library.NativeLibraryGroups,
library.ResourceAssemblies,
library.Dependencies,
serviceable: true,
path: $"{library.Name}/{library.Version}".ToLowerInvariant(),
hashPath: $"{library.Name}.{library.Version}.nupkg.sha512".ToLowerInvariant());
}
else
{
yield return library;
}
}
}
}
}
}

View File

@ -3,7 +3,6 @@
<_RepoTaskAssembly>$(MSBuildThisFileDirectory)bin\publish\RepoTasks.dll</_RepoTaskAssembly>
</PropertyGroup>
<UsingTask TaskName="RepoTasks.AddMetapackageReferences" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.CheckExpectedPackagesExist" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.CheckVersionOverrides" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.CreateLzma" AssemblyFile="$(_RepoTaskAssembly)" />
@ -12,9 +11,8 @@
<UsingTask TaskName="RepoTasks.JoinItems" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.OrderBy" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.ProcessSharedFrameworkDeps" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.ResolveVersionRange" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.PublishToAzureBlob" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.ResolveSymbolsRecursivePath" AssemblyFile="$(_RepoTaskAssembly)" />
<UsingTask TaskName="RepoTasks.TrimDeps" AssemblyFile="$(_RepoTaskAssembly)" />
<!-- tools from dotnet-buildtools -->
<PropertyGroup>

View File

@ -1,29 +0,0 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.IO;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using RepoTasks.Utilities;
namespace RepoTasks
{
public class ResolveSymbolsRecursivePath : Task
{
[Required]
[Output]
public ITaskItem[] Symbols { get; set; }
public override bool Execute()
{
foreach (var symbol in Symbols)
{
var fullPath = symbol.GetMetadata("PortablePDB");
symbol.SetMetadata("SymbolsRecursivePath", fullPath.Substring(fullPath.IndexOf($"{Path.DirectorySeparatorChar}lib{Path.DirectorySeparatorChar}")));
}
return true;
}
}
}

View File

@ -0,0 +1,68 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using NuGet.Versioning;
using RepoTasks.Utilities;
namespace RepoTasks
{
public class ResolveVersionRange : Task
{
[Required]
[Output]
public ITaskItem[] Items { get; set; }
[Required]
public string Version { get; set; }
[Required]
public string RangeType { get; set; }
// MSBuild doesn't allow binding to enums directly.
private enum VersionRangeType
{
Minimum, // [1.1.1, )
MajorMinor, // [1.1.1, 1.2.0)
}
public override bool Execute()
{
if (!Enum.TryParse<VersionRangeType>(RangeType, out var rangeType))
{
Log.LogError("Unexpected value {0} for RangeType", RangeType);
return false;
}
var versionRange = GetVersionRange(rangeType, Version);
foreach (var item in Items)
{
item.SetMetadata("_OriginalVersion", Version);
item.SetMetadata("Version", versionRange);
}
return !Log.HasLoggedErrors;
}
private string GetVersionRange(VersionRangeType rangeType, string packageVersion)
{
switch (rangeType)
{
case VersionRangeType.MajorMinor:
if (!NuGetVersion.TryParse(packageVersion, out var nugetVersion))
{
Log.LogError("Invalid NuGet version '{0}'", packageVersion);
return null;
}
return $"[{packageVersion}, {nugetVersion.Major}.{nugetVersion.Minor + 1}.0)";
case VersionRangeType.Minimum:
return packageVersion;
default:
throw new NotImplementedException();
}
}
}
}

View File

@ -1,60 +0,0 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.IO;
using System.Linq;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace RepoTasks
{
public class TrimDeps : Task
{
[Required]
public ITaskItem[] DepsFiles { get; set; }
public override bool Execute()
{
foreach (var depsFile in DepsFiles)
{
ChangeEntryPointLibraryName(depsFile.GetMetadata("Identity"));
}
// Parse input
return true;
}
private void ChangeEntryPointLibraryName(string depsFile)
{
JToken deps;
using (var file = File.OpenText(depsFile))
using (JsonTextReader reader = new JsonTextReader(file))
{
deps = JObject.ReadFrom(reader);
}
foreach (JProperty target in deps["targets"])
{
var targetLibrary = target.Value.Children<JProperty>().FirstOrDefault();
if (targetLibrary == null)
{
continue;
}
targetLibrary.Remove();
}
var library = deps["libraries"].Children<JProperty>().First();
library.Remove();
using (var file = File.CreateText(depsFile))
using (var writer = new JsonTextWriter(file) { Formatting = Formatting.Indented })
{
deps.WriteTo(writer);
}
}
}
}

View File

@ -11,7 +11,30 @@ namespace RepoTasks.Utilities
{
internal class RuntimeReference
{
public static List<RuntimeLibrary> RemoveReferences(IReadOnlyList<RuntimeLibrary> runtimeLibraries, IEnumerable<string> packages)
public static IEnumerable<RuntimeLibrary> RemoveSharedFxRuntimeEntry(IEnumerable<RuntimeLibrary> runtimeLibraries, string fxName)
{
foreach (var runtimeLib in runtimeLibraries)
{
if (string.Equals(runtimeLib.Name, fxName, StringComparison.OrdinalIgnoreCase))
{
yield return new RuntimeLibrary(runtimeLib.Type,
runtimeLib.Name,
runtimeLib.Version,
runtimeLib.Hash,
Array.Empty<RuntimeAssetGroup>(), // runtimeLib.RuntimeAssemblyGroups,
runtimeLib.NativeLibraryGroups,
runtimeLib.ResourceAssemblies,
runtimeLib.Dependencies,
runtimeLib.Serviceable);
}
else
{
yield return runtimeLib;
}
}
}
public static List<RuntimeLibrary> RemoveReferences(IEnumerable<RuntimeLibrary> runtimeLibraries, IEnumerable<string> packages)
{
List<RuntimeLibrary> result = new List<RuntimeLibrary>();
@ -60,4 +83,4 @@ namespace RepoTasks.Utilities
return result;
}
}
}
}

View File

@ -1,35 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk" >
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="$(SharedFxPackage)" Version="$(SharedFxPackageVersion)" ExcludeAssets="Build" />
<PackageReference Include="$(SharedFxDep)" Version="$(SharedFxDepVersion)" Condition="'$(SharedFxDep)' != ''"/>
<PackageReference Include="Microsoft.NETCore.App" Version="$(RuntimeFrameworkVersion)" ExcludeAssets="Native"/>
</ItemGroup>
<Target Name="GetPackageDefinitions" Returns="@(_PackageDefinitions)">
<ResolvePackageDependencies ProjectPath="$(MSBuildThisFileFullPath)" ProjectAssetsFile="$(ProjectAssetsFile)">
<Output TaskParameter="PackageDefinitions" ItemName="_PackageDefinitions" />
</ResolvePackageDependencies>
</Target>
<Target Name="GetPublishAssemblies" Returns="@(_PublishAssemblies)">
<ResolvePublishAssemblies
ProjectPath="$(MSBuildProjectFullPath)"
AssetsFilePath="$(ProjectAssetsFile)"
TargetFramework="$(TargetFramework)"
RuntimeIdentifier="$(RuntimeIdentifier)"
PlatformLibraryName="Microsoft.NETCore.App"
ExcludeFromPublishPackageReferences="@(_ExcludeFromPublishPackageReference)"
IsSelfContained="$(SelfContained)">
<Output
TaskParameter="AssembliesToPublish"
ItemName="_PublishAssemblies" />
</ResolvePublishAssemblies>
</Target>
</Project>

View File

@ -1,18 +0,0 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>$ID$</id>
<version>$VERSION$</version>
<description>$DESCRIPTION$</description>
<authors>Microsoft</authors>
<owners>Microsoft</owners>
<copyright>Copyright © Microsoft Corporation</copyright>
<licenseUrl>https://raw.githubusercontent.com/aspnet/Home/2.0.0/LICENSE.txt</licenseUrl>
<iconUrl>https://go.microsoft.com/fwlink/?LinkID=288859</iconUrl>
<projectUrl>https://asp.net</projectUrl>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<serviceable Condition="'$(Configuration)' == 'Release'">true</serviceable>
<tags>aspnetcore</tags>
</metadata>
<files />
</package>

View File

@ -0,0 +1,36 @@
<!--
This file defines properties for building a shared framework.
This targets file should only be imported by .shfxproj files.
-->
<Project>
<PropertyGroup>
<!-- shfxproj must be explicit about its dependencies. -->
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
<RuntimeIdentifier Condition="'$(RuntimeIdentifier)' == ''">$(SharedFxRID)</RuntimeIdentifier>
<RuntimeIdentifier Condition="'$(RuntimeIdentifier)' == ''">$(HostRid)</RuntimeIdentifier>
<SharedFxRid Condition="'$(SharedFxRid)' == ''">$(RuntimeIdentifier)</SharedFxRid>
<!-- Optimize the framework using the crossgen tool -->
<CrossgenOutput>true</CrossgenOutput>
<!-- Produce crossgen symbols when running the crossgen tool -->
<CrossgenSymbolsOutput>true</CrossgenSymbolsOutput>
<!-- Always generated, even though output type == Library -->
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<!-- Even though RuntimeIdentifier is set, shared framework projects are not self-contained projects -->
<SelfContained>false</SelfContained>
<!-- Don't add TFM to the project output path of shared framework projects -->
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<!-- The project representing the shared framework doesn't produce a .NET assembly or symbols -->
<DebugType>none</DebugType>
<CopyBuildOutputToPublishDirectory>false</CopyBuildOutputToPublishDirectory>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<IncludeMainProjectInDepsFile>false</IncludeMainProjectInDepsFile>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,335 @@
<!--
This file defines targets for building a shared framework.
This targets file should only be imported by .shfxproj files.
-->
<Project>
<Import Project="..\..\build\tasks\RepoTasks.tasks" />
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<CoreBuildDependsOn>
BuildOnlySettings;
PrepareForBuild;
PreBuildEvent;
ResolveReferences;
GenerateSharedFxVersionsFile;
PrepareForPublish;
ComputeAndCopyFilesToPublishDirectory;
GeneratePublishDependencyFile;
GenerateSharedFxDependencyFile;
GeneratePublishRuntimeConfigurationFile;
CopySharedFxToOutput;
CollectSharedFxOutput;
PostBuildEvent;
GetTargetPath;
</CoreBuildDependsOn>
<CollectOutputSharedFxDependsOn Condition=" '$(CrossGenOutput)' != 'false' ">
PrepareForCrossGen;
CrossGenAssemblies;
</CollectOutputSharedFxDependsOn>
<CollectOutputSharedFxDependsOn Condition=" '$(CrossgenSymbolsOutput)' != 'false' ">
$(CollectOutputSharedFxDependsOn);
CrossGenSymbols;
</CollectOutputSharedFxDependsOn>
<PrepareForBuildDependsOn>
PrepareOutputPaths;
</PrepareForBuildDependsOn>
<ResolveReferencesDependsOn>
BeforeResolveReferences;
AssignProjectConfiguration;
ResolveProjectReferences;
FindInvalidProjectReferences;
AfterResolveReferences
</ResolveReferencesDependsOn>
<!-- The name of the shared framework. -->
<SharedFxName Condition=" '$(SharedFxName)' == '' ">$(MSBuildProjectName)</SharedFxName>
<!--
Defines the base RID for a vertical of related runtimes, e.g. Windows, macOS, Linux.
This is used during runtime graph generation to determine which RIDs to include in the .deps.json file.
-->
<BaseSharedFxRid Condition="$(SharedFxRid.StartsWith('win'))">win</BaseSharedFxRid>
<BaseSharedFxRid Condition="$(SharedFxRid.StartsWith('osx'))">osx</BaseSharedFxRid>
<BaseSharedFxRid Condition="$(SharedFxRid.StartsWith('linux')) AND ! $(SharedFxRid.StartsWith('linux-musl')) ">linux</BaseSharedFxRid>
<BaseSharedFxRid Condition="$(SharedFxRid.StartsWith('linux-musl'))">linux-musl</BaseSharedFxRid>
<BaseSharedFxRid Condition="'$(BaseSharedFxRid)' == '' ">unix</BaseSharedFxRid>
<LibPrefix Condition=" '$(BaseSharedFxRid)' != 'win' ">lib</LibPrefix>
<LibExtension>.so</LibExtension>
<LibExtension Condition=" '$(BaseSharedFxRid)' == 'win' ">.dll</LibExtension>
<LibExtension Condition=" '$(BaseSharedFxRid)' == 'osx' ">.dylib</LibExtension>
<ExeExtension Condition=" '$(BaseSharedFxRid)' == 'win' ">.exe</ExeExtension>
<!-- 3B = semicolon in ASCII -->
<PathSeparator Condition="'$(PathSeparator)' == ''">:</PathSeparator>
<PathSeparator Condition=" '$(BaseSharedFxRid)' == 'win' ">%3B</PathSeparator>
<IntermediateOutputPath>$(IntermediateOutputPath)$(SharedFxRid)\</IntermediateOutputPath>
<!-- Override the SDK Default for this location for copying published output. -->
<PublishDir>$(IntermediateOutputPath)u\</PublishDir>
<!-- If symbols generation is disabled, there is no use in producing a symbols.nupkg files. -->
<IncludeSymbols Condition="'$(CrossgenSymbolsOutput)' == 'false'">false</IncludeSymbols>
<MetadataOutputPath Condition="'$(MetadataOutputPath)' == ''">$(OutputPath)files\</MetadataOutputPath>
<SymbolsOutputPath Condition="'$(SymbolsOutputPath)' == ''">$(OutputPath)symbols\</SymbolsOutputPath>
<NativeAssetsOutputPath Condition="'$(NativeAssetsOutputPath)' == ''">$(OutputPath)native\</NativeAssetsOutputPath>
<RuntimeAssetsOutputPath Condition="'$(RuntimeAssetsOutputPath)' == ''">$(OutputPath)lib\$(TargetFramework)\</RuntimeAssetsOutputPath>
<CrossGenToolDir>$(IntermediateOutputPath)crossgen\</CrossGenToolDir>
<!-- Map BaseSharedFrameworkName into properties used by the SDK to determine publish output trimming and deps.json generation -->
<MicrosoftNETPlatformLibrary>$(BaseSharedFrameworkName)</MicrosoftNETPlatformLibrary>
<!-- Prevents runtimeconfig.dev.json from ending up in publish output. -->
<ProjectRuntimeConfigDevFilePath>$(IntermediateOutputPath)$(SharedFxName).runtimeconfig.dev.json</ProjectRuntimeConfigDevFilePath>
<!-- Redirects the output of GeneratePublishDependencyFile into obj/ because we need to do post-processing on the .deps.json file -->
<ProjectDepsFilePath>$(IntermediateOutputPath)$(SharedFxName).project.deps.json</ProjectDepsFilePath>
<PublishDepsFilePath>$(IntermediateOutputPath)$(SharedFxName).publish.deps.json</PublishDepsFilePath>
<!-- The output path of generated files -->
<ProjectRuntimeConfigFilePath>$(MetadataOutputPath)$(SharedFxName).runtimeconfig.json</ProjectRuntimeConfigFilePath>
<SharedFxDepsFilePath>$(MetadataOutputPath)$(SharedFxName).deps.json</SharedFxDepsFilePath>
<VersionFileOutputPath>$(MetadataOutputPath).version</VersionFileOutputPath>
</PropertyGroup>
<ItemDefinitionGroup>
<!-- Defines different types of project references. -->
<FrameworkProjectReference>
<OutputItemType>_ResolvedFrameworkProjectReferencePaths</OutputItemType>
</FrameworkProjectReference>
<PackageProjectReference>
<OutputItemType>_ResolvedPackageProjectReferencePaths</OutputItemType>
</PackageProjectReference>
<TargetPathWithTargetPlatformMoniker>
<!--
This lists all folders of assets which should be collected into the same folder in a shared framework installer.
This is set on this item group so it flows across project references into installer projects.
-->
<InstallerAssetPaths>
$(MetadataOutputPath);
$(RuntimeAssetsOutputPath);
$(NativeAssetsOutputPath);
</InstallerAssetPaths>
<MetadataOutputPath>$(MetadataOutputPath)</MetadataOutputPath>
<RuntimeAssetsOutputPath>$(RuntimeAssetsOutputPath)</RuntimeAssetsOutputPath>
<NativeAssetsOutputPath>$(NativeAssetsOutputPath)</NativeAssetsOutputPath>
<SharedFxName>$(SharedFxName)</SharedFxName>
<PackageId>$(PackageId)</PackageId>
</TargetPathWithTargetPlatformMoniker>
</ItemDefinitionGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.App" Version="$(RuntimeFrameworkVersion)">
<IsImplicitlyDefined>true</IsImplicitlyDefined>
<Publish>true</Publish>
<PrivateAssets>All</PrivateAssets>
<ExcludeAssets>Native</ExcludeAssets>
<AllowExplicitVersion>true</AllowExplicitVersion>
</PackageReference>
<PackageReference Include="@(Dependency)">
<IncludeAssets>Runtime;Native</IncludeAssets>
</PackageReference>
<ProjectReference Include="@(FrameworkProjectReference)" />
<ProjectReference Include="@(PackageProjectReference)" />
</ItemGroup>
<!-- Check some required properties before building a shared framework/ -->
<Target Name="_CheckForRequiredFxProperties" BeforeTargets="_CheckForInvalidConfigurationAndPlatform">
<Error Condition=" '$(BaseSharedFrameworkName)' == '' "
Text="Missing required property: BaseSharedFrameworkName. Shared frameworks must specify which framework is used at the base." />
<Error Condition=" '$(SharedFxRid)' == '' "
Text="Missing required property: SharedFxRid. Shared frameworks are rid-specific, so this must be set." />
<ItemGroup>
<_UnknownRid Remove="@(_UnknownRid)" />
<_UnknownRid Include="$(SharedFxRid)" Exclude="$(SupportedRuntimeIdentifiers)" />
</ItemGroup>
<Error Condition=" '@(_UnknownRid)' != '' "
Text="&quot;$(SharedFxRid)&quot; not acceptable runtime identifier. Please specify an acceptable value: {$(SupportedRuntimeIdentifiers)}." />
<Message Importance="High" Text="Building $(SharedFxName) (fx: $(SharedFxRid))" />
</Target>
<Target Name="PrepareOutputPaths">
<MakeDir Directories="$(MetadataOutputPath);$(SymbolsOutputPath);$(NativeAssetsOutputPath);$(RuntimeAssetsOutputPath)" />
</Target>
<!-- Generates the .version file in the shared framework -->
<Target Name="GenerateSharedFxVersionsFile">
<ItemGroup>
<VersionLines Include="$(RepositoryCommit)" />
<VersionLines Include="$(PackageVersion)" />
</ItemGroup>
<WriteLinesToFile
File="$(VersionFileOutputPath)"
Lines="@(VersionLines)"
Overwrite="true" />
</Target>
<!-- Generates the .deps.json file for a shared framework. -->
<Target Name="GenerateSharedFxDependencyFile"
Inputs="$(PublishDepsFilePath);$(ProjectAssetsFile);$(MSBuildAllProjects)"
Outputs="$(SharedFxDepsFilePath)">
<ProcessSharedFrameworkDeps
FrameworkName="$(SharedFxName)"
AssetsFilePath="$(ProjectAssetsFile)"
DepsFilePath="$(PublishDepsFilePath)"
OutputPath="$(SharedFxDepsFilePath)"
PackagesToRemove="@(_ResolvedFrameworkProjectReferencePaths->'%(PackageId)')"
ResolvedPackageProjectReferences="@(_ResolvedPackageProjectReferencePaths)"
Runtime="$(BaseSharedFxRid)" />
</Target>
<!-- Optimizes shared framework output -->
<Target Name="CollectSharedFxOutput" DependsOnTargets="$(CollectOutputSharedFxDependsOn)">
<Message Importance="High" Text="$(SharedFxName) (fx: $(SharedFxRid)) -> $(OutputPath)" />
</Target>
<!-- Prepare the project to run crossgen. -->
<Target Name="CopySharedFxToOutput" DependsOnTargets="RunResolvePackageDependencies;RunResolvePublishAssemblies">
<ItemGroup>
<NativeAssetsToPublish Include="@(ResolvedAssembliesToPublish)" Condition="'%(AssetType)' == 'native' " />
<ResourceAssetsToPublish Include="@(ResolvedAssembliesToPublish)" Condition="'%(AssetType)' == 'resources'" />
<RuntimeAssetsToPublish Include="@(ResolvedAssembliesToPublish)" Condition="'%(AssetType)' == 'runtime'" />
<OtherAssemblies Include="@(ResolvedAssembliesToPublish)" Exclude="@(NativeAssetsToPublish);@(ResourceAssetsToPublish);@(RuntimeAssetsToPublish)" />
</ItemGroup>
<Error Text="Unaccounted shared framework assemblies found: @(OtherAssemblies). These files have an unknown asset type." Condition="'@(OtherAssemblies)' != ''" />
<Copy Condition=" '$(CrossGenOutput)' != 'true' "
SourceFiles="@(RuntimeAssetsToPublish)" DestinationFiles="@(RuntimeAssetsToPublish->'$(RuntimeAssetsOutputPath)%(DestinationSubPath)')" />
<Copy SourceFiles="@(NativeAssetsToPublish)" DestinationFiles="@(NativeAssetsToPublish->'$(NativeAssetsOutputPath)%(DestinationSubPath)')" />
<Copy SourceFiles="@(ResourceAssetsToPublish)" DestinationFiles="@(ResourceAssetsToPublish->'$(RuntimeAssetsOutputPath)%(DestinationSubPath)')" />
</Target>
<Target Name="PrepareForCrossGen" DependsOnTargets="RunResolvePackageDependencies;RunResolvePublishAssemblies">
<MakeDir Directories="$(CrossGenToolDir)" />
<PropertyGroup>
<RuntimePackageName>Microsoft.NETCore.App</RuntimePackageName>
<CrossGenTool>crossgen</CrossGenTool>
<CrossGenTool Condition="$([MSBuild]::IsOSPlatform('Windows'))">$(CrossGenTool).exe</CrossGenTool>
</PropertyGroup>
<ItemGroup>
<RuntimePackage Include="@(PackageDefinitions)" Condition="$([System.String]::new('%(PackageDefinitions.Name)').Contains('runtime')) AND $([System.String]::new('%(PackageDefinitions.Name)').Contains('$(RuntimePackageName)'))" />
</ItemGroup>
<Error Text="Could not identify the crossgen package for $(SharedFxRid)" Condition="@(RuntimePackage->Count()) == 0" />
<ItemGroup>
<RuntimePackageFiles Include="%(RuntimePackage.ResolvedPath)\runtimes\**\*" />
<CrossGenToolFile Include="%(RuntimePackage.ResolvedPath)\**\$(CrossGenTool)" />
</ItemGroup>
<!-- Create tool directory with crossgen executable and runtime assemblies -->
<Copy SourceFiles="@(RuntimePackageFiles);@(CrossGenToolFile)" DestinationFolder="$(CrossGenToolDir)"/>
<ItemGroup>
<ClrJitAssembly Include="$(CrossGenToolDir)\**\$(LibPrefix)clrjit$(LibExtension)" />
</ItemGroup>
<Error Text="Expected to resolve a single runtime package but instead resolved @(RuntimePackage->Count()) with identities %(RuntimePackage.Identity)" Condition="'@(RuntimePackage->Count())' != 1" />
<Error Text="Could not find crossgen in %(RuntimePackage.ResolvedPath)" Condition="@(CrossGenToolFile->Count()) == 0" />
<Error Text="Expected to resolve a single clr jit assembly but instead resolved @(ClrJitAssembly->Count()) with identities %(ClrJitAssembly.Identity)" Condition="'@(ClrJitAssembly->Count())' != 1" />
<!-- Resolve list of assemblies to crossgen -->
<ItemGroup>
<AssembliesToCrossgen Include="@(RuntimeAssetsToPublish)">
<Source>%(FullPath)</Source>
<Rsp>$(IntermediateOutputPath)%(RecursiveDir)%(Filename).rsp</Rsp>
<SymbolsRsp>$(IntermediateOutputPath)%(RecursiveDir)%(Filename).symbols.rsp</SymbolsRsp>
<SymbolsOutputPath>$(SymbolsOutputPath)%(RecursiveDir)%(Filename).ni.pdb</SymbolsOutputPath>
<Destination>$(RuntimeAssetsOutputPath)%(RecursiveDir)%(Filename)%(Extension)</Destination>
<Symbols>$(SymbolsOutputPath)%(RecursiveDir)</Symbols>
</AssembliesToCrossgen>
</ItemGroup>
</Target>
<!--
Run the crossgen tool.
This uses .rsp files to get around OS limitations in the maximum number of characters that can be passed in on command-line.
-->
<Target Name="CrossGenAssemblies"
DependsOnTargets="CopySharedFxToOutput;ResolveReferences"
Inputs="@(AssembliesToCrossgen)"
Outputs="%(AssembliesToCrossgen.Destination)">
<ItemGroup>
<!-- These are the paths used by crossgen to find assemblies that are expected to exist at runtime in the shared frameworks. -->
<_PlatformAssemblyPaths Remove="@(_PlatformAssemblyPaths)" />
<_PlatformAssemblyPaths Include="$(CrossGenToolDir)" />
<_PlatformAssemblyPaths Include="$(PublishDir)" />
<_PlatformAssemblyPaths Include="%(_ResolvedFrameworkProjectReferencePaths.RuntimeAssetsOutputPath)" Condition="'%(_ResolvedFrameworkProjectReferencePaths.RuntimeAssetsOutputPath)' != ''" />
</ItemGroup>
<PropertyGroup>
<PlatformAssemblyPaths>@(_PlatformAssemblyPaths->Distinct(), '$(PathSeparator)')</PlatformAssemblyPaths>
</PropertyGroup>
<ItemGroup>
<CrossGenArgs Include="-nologo" />
<CrossGenArgs Include="-readytorun" />
<CrossGenArgs Include="-in %(AssembliesToCrossgen.Source)" />
<CrossGenArgs Include="-out %(AssembliesToCrossgen.Destination)" />
<CrossGenArgs Include="-platform_assemblies_paths $(PlatformAssemblyPaths)" />
<CrossGenArgs Include="-JITPath %(ClrJitAssembly.FullPath)" />
</ItemGroup>
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('%(AssembliesToCrossgen.Rsp)'))" />
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('%(AssembliesToCrossgen.Destination)'))" />
<WriteLinesToFile File="%(AssembliesToCrossgen.Rsp)" Lines="@(CrossGenArgs)" Overwrite="true" />
<Copy Condition="'$(CrossGenSharedFx)' == 'false'"
SourceFiles="%(AssembliesToCrossgen.Source)"
DestinationFiles="%(AssembliesToCrossgen.Destination)" />
<Exec Condition="'$(CrossGenSharedFx)' != 'false'"
Command="$(CrossGenToolDir)$(CrossGenTool) @%(AssembliesToCrossgen.Rsp)"
EnvironmentVariables="COMPlus_PartialNGen=0"
IgnoreStandardErrorWarningFormat="true"
StandardOutputImportance="Normal" />
</Target>
<Target Name="CrossGenSymbols"
DependsOnTargets="CrossGenAssemblies"
Inputs="@(AssembliesToCrossgen)"
Outputs="%(AssembliesToCrossgen.SymbolsOutputPath)">
<PropertyGroup>
<CrossGenSymbolsType>CreatePerfMap</CrossGenSymbolsType>
<CrossGenSymbolsType Condition="'$(OS)' == 'Windows_NT'">CreatePDB</CrossGenSymbolsType>
</PropertyGroup>
<ItemGroup>
<CrossGenSymbolsArgs Include="-nologo" />
<CrossGenSymbolsArgs Include="-readytorun" />
<CrossGenSymbolsArgs Include="-platform_assemblies_paths $(PlatformAssemblyPaths)" />
<CrossGenSymbolsArgs Include="-$(CrossGenSymbolsType)" />
<CrossGenSymbolsArgs Include="%(AssembliesToCrossgen.Symbols)" />
<CrossGenSymbolsArgs Include="%(AssembliesToCrossgen.Destination)" />
</ItemGroup>
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('%(AssembliesToCrossgen.Symbols)'))" />
<WriteLinesToFile File="%(AssembliesToCrossgen.SymbolsRsp)" Lines="@(CrossGenSymbolsArgs)" Overwrite="true" />
<Exec Command="$(CrossGenToolDir)$(CrossGenTool) @%(AssembliesToCrossgen.SymbolsRsp)"
EnvironmentVariables="COMPlus_PartialNGen=0"
IgnoreStandardErrorWarningFormat="true"
StandardOutputImportance="Normal" />
</Target>
<Target Name="CreateManifestResourceNames" />
</Project>

View File

@ -0,0 +1,31 @@
<Project>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
<PropertyGroup Condition=" '$(MSBuildProjectExtension)' == '.pkgproj' ">
<IsPackable Condition=" '$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))' == 'pkg'">true</IsPackable>
<BaseIntermediateOutputPath>$(RepositoryRoot)obj\pkg\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
</PropertyGroup>
<!--
Currently, the shared framework builds by using PackageReference to internally generate the deps.json files and move bits between projects.
For local builds, this import is required to point to packages which actually exists. Run "build.cmd /t:GeneratePropsFiles /p:BuildNumber=xyz" to
build the shared framework against a particular set of packages.
-->
<Import Condition="Exists('..\..\obj\dependencies.g.props') AND '$(DotNetPackageVersionPropsPath)' == ''" Project="..\..\obj\dependencies.g.props" />
<PropertyGroup Condition=" '$(MSBuildProjectExtension)' == '.shfxproj' ">
<OutputPath>$(ArtifactsConfigurationDir)$(SharedFxRid)\$(MSBuildProjectName)\</OutputPath>
<BaseIntermediateOutputPath>$(RepositoryRoot)obj\fx\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<CrossgenOutput Condition="'$(SharedFxRid)' == 'linux-arm'">false</CrossgenOutput>
<CrossgenSymbolsOutput Condition=" '$(CrossgenOutput)' == 'false' OR '$(SharedFxRid)' == 'osx-x64'">false</CrossgenSymbolsOutput>
<IncludeSymbols>true</IncludeSymbols>
<NuspecFile>$(MSBuildThisFileDirectory)runtime.fx.nuspec</NuspecFile>
<PackageTags>aspnetcore;shared-framework</PackageTags>
<!-- Workaround for invalid NU5109 error when packing on macOS. -->
<NoPackageAnalysis>true</NoPackageAnalysis>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,39 @@
<Project>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.targets))\Directory.Build.targets" />
<Import Condition=" '$(MSBuildProjectExtension)' == '.pkgproj' " Project="Metapackage.targets" />
<Target Name="PopulateNuspec" BeforeTargets="GenerateNuspec" Condition=" '$(MSBuildProjectExtension)' == '.shfxproj' ">
<PropertyGroup>
<NuspecProperties>
id=$(PackageId);
version=$(PackageVersion);
authors=$(Authors);
rid=$(SharedFxRid);
description=$(PackageDescription);
tags=$(PackageTags.Replace(';', ' '));
licenseUrl=$(PackageLicenseUrl);
projectUrl=$(PackageProjectUrl);
iconUrl=$(PackageIconUrl);
repositoryUrl=$(RepositoryUrl);
repositoryCommit=$(RepositoryCommit);
copyright=$(Copyright);
targetFramework=$(TargetFramework);
symbolsAssets=$([MSBuild]::NormalizeDirectory($(SymbolsOutputPath)));
nativeAssets=$([MSBuild]::NormalizeDirectory($(NativeAssetsOutputPath)));
runtimeAssets=$([MSBuild]::NormalizeDirectory($(RuntimeAssetsOutputPath)));
</NuspecProperties>
</PropertyGroup>
</Target>
<Target Name="GetArtifactInfo" Returns="@(ArtifactInfo)">
<ItemGroup Condition=" '$(IsPackable)' == 'true' AND '$(PackageId)' != '' ">
<ArtifactInfo Include="$(TargetPath)">
<ArtifactType>NuGetPackage</ArtifactType>
<PackageId>$(PackageId)</PackageId>
<Version>$(PackageVersion)</Version>
</ArtifactInfo>
</ItemGroup>
</Target>
</Project>

View File

@ -3,6 +3,7 @@
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Microsoft.AspNetCore</RootNamespace>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
@ -11,12 +12,8 @@
<_Parameter2>$(PackageVersion)</_Parameter2>
</AssemblyAttribute>
<AssemblyAttribute Include="Microsoft.AspNetCore.TestData">
<_Parameter1>DotNetRoot</_Parameter1>
<_Parameter2>$(SharedFxOutputPath)</_Parameter2>
</AssemblyAttribute>
<AssemblyAttribute Include="Microsoft.AspNetCore.TestData">
<_Parameter1>SharedFxRuntimeIdentifier</_Parameter1>
<_Parameter2>$(SharedFxRuntimeIdentifier)</_Parameter2>
<_Parameter1>SharedFxRid</_Parameter1>
<_Parameter2>$(SharedFxRid)</_Parameter2>
</AssemblyAttribute>
<AssemblyAttribute Include="Microsoft.AspNetCore.TestData">
<_Parameter1>RepositoryCommit</_Parameter1>
@ -36,4 +33,20 @@
<PackageReference Include="xunit.runner.visualstudio" Version="$(XunitRunnerVisualstudioPackageVersion)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\**\*.shfxproj">
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<OutputItemType>_ResolvedFrameworkReference</OutputItemType>
</ProjectReference>
</ItemGroup>
<Target Name="GenerateTestData" BeforeTargets="GetAssemblyAttributes" DependsOnTargets="ResolveProjectReferences">
<ItemGroup>
<AssemblyAttribute Include="Microsoft.AspNetCore.TestData" Condition="'%(_ResolvedFrameworkReference.Identity)' != ''">
<_Parameter1>SharedFxMetadataOutput:%(_ResolvedFrameworkReference.SharedFxName)</_Parameter1>
<_Parameter2>%(_ResolvedFrameworkReference.MetadataOutputPath)</_Parameter2>
</AssemblyAttribute>
</ItemGroup>
</Target>
</Project>

View File

@ -13,12 +13,10 @@ namespace Microsoft.AspNetCore
[MemberData(nameof(GetSharedFxConfig))]
public void ItContainsValidRuntimeConfigFile(SharedFxConfig config)
{
var root = TestData.GetDotNetRoot();
var dir = Path.Combine(root, "shared", config.Name, config.Version);
var runtimeConfigFilePath = Path.Combine(dir, config.Name + ".runtimeconfig.json");
var runtimeConfigFilePath = Path.Combine(config.MetadataOutput, config.Name + ".runtimeconfig.json");
AssertEx.FileExists(runtimeConfigFilePath);
AssertEx.FileDoesNotExists(Path.Combine(dir, config.Name + ".runtimeconfig.dev.json"));
AssertEx.FileDoesNotExists(Path.Combine(config.MetadataOutput, config.Name + ".runtimeconfig.dev.json"));
var runtimeConfig = JObject.Parse(File.ReadAllText(runtimeConfigFilePath));
@ -32,9 +30,7 @@ namespace Microsoft.AspNetCore
[MemberData(nameof(GetSharedFxConfig))]
public void ItContainsValidDepsJson(SharedFxConfig config)
{
var root = TestData.GetDotNetRoot();
var dir = Path.Combine(root, "shared", config.Name, config.Version);
var depsFilePath = Path.Combine(dir, config.Name + ".deps.json");
var depsFilePath = Path.Combine(config.MetadataOutput, config.Name + ".deps.json");
var target = $".NETCoreApp,Version=v{config.Version.Substring(0, 3)}/{config.RuntimeIdentifier}";
@ -47,14 +43,20 @@ namespace Microsoft.AspNetCore
Assert.NotNull(depsFile["compilationOptions"]);
Assert.Empty(depsFile["compilationOptions"]);
Assert.NotEmpty(depsFile["runtimes"][config.RuntimeIdentifier]);
Assert.All(depsFile["libraries"], item =>
{
var prop = Assert.IsType<JProperty>(item);
var lib = Assert.IsType<JObject>(prop.Value);
Assert.Equal("package", lib["type"].Value<string>());
Assert.StartsWith("sha512-", lib["sha512"].Value<string>());
});
}
[Theory]
[MemberData(nameof(GetSharedFxConfig))]
public void ItContainsVersionFile(SharedFxConfig config)
{
var root = TestData.GetDotNetRoot();
var versionFile = Path.Combine(root, "shared", config.Name, config.Version, ".version");
var versionFile = Path.Combine(config.MetadataOutput, ".version");
AssertEx.FileExists(versionFile);
var lines = File.ReadAllLines(versionFile);
Assert.Equal(2, lines.Length);
@ -62,7 +64,6 @@ namespace Microsoft.AspNetCore
Assert.Equal(config.Version, lines[1]);
}
public static TheoryData<SharedFxConfig> GetSharedFxConfig()
=> new TheoryData<SharedFxConfig>
{
@ -74,6 +75,7 @@ namespace Microsoft.AspNetCore
BaseSharedFxVersion = TestData.GetPackageVersion(),
BaseSharedFxName = "Microsoft.AspNetCore.App",
RuntimeIdentifier = TestData.GetSharedFxRuntimeIdentifier(),
MetadataOutput = TestData.GetTestDataValue("SharedFxMetadataOutput:Microsoft.AspNetCore.All")
},
new SharedFxConfig
{
@ -82,6 +84,7 @@ namespace Microsoft.AspNetCore
BaseSharedFxName = "Microsoft.NETCore.App",
BaseSharedFxVersion = TestData.GetMicrosoftNETCoreAppPackageVersion(),
RuntimeIdentifier = TestData.GetSharedFxRuntimeIdentifier(),
MetadataOutput = TestData.GetTestDataValue("SharedFxMetadataOutput:Microsoft.AspNetCore.App")
},
};
@ -92,6 +95,7 @@ namespace Microsoft.AspNetCore
public string BaseSharedFxName { get; set; }
public string BaseSharedFxVersion { get; set; }
public string RuntimeIdentifier { get; set; }
public string MetadataOutput { get; set; }
}
}
}

View File

@ -12,13 +12,11 @@ namespace Microsoft.AspNetCore
public static string GetMicrosoftNETCoreAppPackageVersion() => GetTestDataValue("MicrosoftNETCoreAppPackageVersion");
public static string GetDotNetRoot() => GetTestDataValue("DotNetRoot");
public static string GetRepositoryCommit() => GetTestDataValue("RepositoryCommit");
public static string GetSharedFxRuntimeIdentifier() => GetTestDataValue("SharedFxRuntimeIdentifier");
public static string GetSharedFxRuntimeIdentifier() => GetTestDataValue("SharedFxRid");
private static string GetTestDataValue(string key)
public static string GetTestDataValue(string key)
=> typeof(TestData).Assembly.GetCustomAttributes<TestDataAttribute>().Single(d => d.Key == key).Value;
}
}

View File

@ -0,0 +1,49 @@
<Project>
<PropertyGroup>
<!-- There is no build output -->
<IncludeBuildOutput>false</IncludeBuildOutput>
<!-- There are no symbols. -->
<IncludeSymbols>false</IncludeSymbols>
<!-- There is no API to check -->
<EnableApiCheck>false</EnableApiCheck>
<!-- Manually control dependencies -->
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
<!-- The only build output of a pkgproj is the project -->
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageId>$(MSBuildProjectName)</PackageId>
<TargetPath>$(PackageOutputPath)$(PackageId).$(PackageVersion).nupkg</TargetPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" PrivateAssets="All" Publish="false" />
</ItemGroup>
<ItemDefinitionGroup>
<TargetPathWithTargetPlatformMoniker>
<PackageId>$(PackageId)</PackageId>
</TargetPathWithTargetPlatformMoniker>
</ItemDefinitionGroup>
<Import Project="$(RepositoryRoot)build\tasks\RepoTasks.tasks" />
<Target Name="ResolveDependenciesToPackageReferences" BeforeTargets="CollectPackageReferences">
<RepoTasks.ResolveVersionRange
Items="@(Dependency)"
Version="%(Version)"
RangeType="%(VersionRangeType)">
<Output TaskParameter="Items" ItemName="_CustomPackageReference" />
</RepoTasks.ResolveVersionRange>
<ItemGroup>
<PackageReference Include="@(_CustomPackageReference)">
<!-- Ensure that the metapackage does not exclude build or analyzer assets. -->
<PrivateAssets>None</PrivateAssets>
</PackageReference>
</ItemGroup>
</Target>
<Target Name="CopyFilesToOutputDirectory" />
<Target Name="CoreCompile" />
<Target Name="CreateManifestResourceNames" />
</Project>

View File

@ -0,0 +1,44 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<PackageTags>aspnetcore</PackageTags>
<PackageDescription>Provides a default set of APIs for building an ASP.NET Core application, and also includes API for third-party integrations with ASP.NET Core.
This package requires the ASP.NET Core runtime. This runtime is installed by the .NET Core SDK, or can be acquired separately using installers available at https://aka.ms/dotnet-download.
</PackageDescription>
</PropertyGroup>
<ItemGroup>
<Content Include="build\$(TargetFramework)\*.props" PackagePath="%(Identity)" />
<Content Include="build\$(TargetFramework)\*.targets" PackagePath="%(Identity)" />
<Content Include="lib\$(TargetFramework)\_._" PackagePath="%(Identity)" />
</ItemGroup>
<ItemDefinitionGroup>
<Dependency>
<VersionRangeType>Minimum</VersionRangeType>
</Dependency>
</ItemDefinitionGroup>
<Import Project="..\..\Microsoft.AspNetCore.App\Microsoft.AspNetCore.App.props" />
<ItemGroup>
<Dependency Include="Microsoft.AspNetCore.ApplicationInsights.HostingStartup" Version="$(MicrosoftAspNetCoreApplicationInsightsHostingStartupPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.AzureAppServices.HostingStartup" Version="$(MicrosoftAspNetCoreAzureAppServicesHostingStartupPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.AzureAppServicesIntegration" Version="$(MicrosoftAspNetCoreAzureAppServicesIntegrationPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault" Version="$(MicrosoftAspNetCoreDataProtectionAzureKeyVaultPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.DataProtection.AzureStorage" Version="$(MicrosoftAspNetCoreDataProtectionAzureStoragePackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" Version="$(MicrosoftAspNetCoreServerKestrelTransportLibuvPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.SignalR.Redis" Version="$(MicrosoftAspNetCoreSignalRRedisPackageVersion)" />
<Dependency Include="Microsoft.Data.Sqlite.Core" Version="$(MicrosoftDataSqliteCorePackageVersion)" />
<Dependency Include="Microsoft.Data.Sqlite" Version="$(MicrosoftDataSqlitePackageVersion)" />
<Dependency Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="$(MicrosoftEntityFrameworkCoreSqliteCorePackageVersion)" />
<Dependency Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(MicrosoftEntityFrameworkCoreSqlitePackageVersion)" />
<Dependency Include="Microsoft.Extensions.Caching.Redis" Version="$(MicrosoftExtensionsCachingRedisPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="$(MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Logging.AzureAppServices" Version="$(MicrosoftExtensionsLoggingAzureAppServicesPackageVersion)" />
<Dependency Include="Microsoft.VisualStudio.Web.BrowserLink" Version="$(MicrosoftVisualStudioWebBrowserLinkPackageVersion)" />
</ItemGroup>
</Project>

View File

@ -12,7 +12,7 @@
<Target Name="EnsureTFMCompatibility" BeforeTargets="_CheckForInvalidConfigurationAndPlatform">
<Error
Text="This version of Microsoft.AspNetCore.All is only compatible with the netcoreapp3.0 target framework. Please target netcoreapp3.0 or choose a version of Microsoft.AspNetCore.All compatible with $(TargetFramework)."
Condition="'$(TargetFramework)' != 'netcoreapp3.0'"/>
Text="This version of Microsoft.AspNetCore.All is only compatible with the netcoreapp2.2 target framework. Please target netcoreapp2.2 or choose a version of Microsoft.AspNetCore.All compatible with $(TargetFramework)."
Condition="'$(TargetFramework)' != 'netcoreapp2.2'"/>
</Target>
</Project>

View File

@ -0,0 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<BaseSharedFrameworkName>Microsoft.AspNetCore.App</BaseSharedFrameworkName>
<RuntimeFrameworkVersion>$(MicrosoftNETCoreAppPackageVersion)</RuntimeFrameworkVersion>
<!-- The runtime Package ID is for self-contained assets. -->
<PackageId>runtime.$(SharedFxRid).$(MSBuildProjectName)</PackageId>
<PackageDescription>This package provides assets used for self-contained deployments of an ASP.NET Core application. It is an internal implementation package not meant for direct consumption. Please do not reference directly.
$(MSBuildProjectName) provides a default set of APIs for building an ASP.NET Core application, and also includes API for third-party integrations with ASP.NET Core.
</PackageDescription>
</PropertyGroup>
<ItemGroup>
<PackageProjectReference Include="..\pkg\Microsoft.AspNetCore.All.pkgproj" />
<FrameworkProjectReference Include="..\..\Microsoft.AspNetCore.App\src\Microsoft.AspNetCore.App.shfxproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,159 @@
<!--
This lists all assemblies which are part of the Microsoft.AspNetCore.App metapackage and shared framework.
-->
<Project>
<ItemGroup>
<Dependency Include="Microsoft.AspNet.WebApi.Client" Version="$(MicrosoftAspNetWebApiClientPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Antiforgery" Version="$(MicrosoftAspNetCoreAntiforgeryPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication.Abstractions" Version="$(MicrosoftAspNetCoreAuthenticationAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication.Cookies" Version="$(MicrosoftAspNetCoreAuthenticationCookiesPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication.Core" Version="$(MicrosoftAspNetCoreAuthenticationCorePackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication.Facebook" Version="$(MicrosoftAspNetCoreAuthenticationFacebookPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication.Google" Version="$(MicrosoftAspNetCoreAuthenticationGooglePackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="$(MicrosoftAspNetCoreAuthenticationJwtBearerPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="$(MicrosoftAspNetCoreAuthenticationMicrosoftAccountPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication.OAuth" Version="$(MicrosoftAspNetCoreAuthenticationOAuthPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="$(MicrosoftAspNetCoreAuthenticationOpenIdConnectPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication.Twitter" Version="$(MicrosoftAspNetCoreAuthenticationTwitterPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication.WsFederation" Version="$(MicrosoftAspNetCoreAuthenticationWsFederationPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authentication" Version="$(MicrosoftAspNetCoreAuthenticationPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authorization.Policy" Version="$(MicrosoftAspNetCoreAuthorizationPolicyPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Authorization" Version="$(MicrosoftAspNetCoreAuthorizationPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Connections.Abstractions" Version="$(MicrosoftAspNetCoreConnectionsAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.CookiePolicy" Version="$(MicrosoftAspNetCoreCookiePolicyPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Cors" Version="$(MicrosoftAspNetCoreCorsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Cryptography.Internal" Version="$(MicrosoftAspNetCoreCryptographyInternalPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="$(MicrosoftAspNetCoreCryptographyKeyDerivationPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="$(MicrosoftAspNetCoreDataProtectionAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.DataProtection.Extensions" Version="$(MicrosoftAspNetCoreDataProtectionExtensionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.DataProtection" Version="$(MicrosoftAspNetCoreDataProtectionPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Diagnostics.Abstractions" Version="$(MicrosoftAspNetCoreDiagnosticsAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="$(MicrosoftAspNetCoreDiagnosticsEntityFrameworkCorePackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Version="$(MicrosoftAspNetCoreDiagnosticsHealthChecksPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Diagnostics" Version="$(MicrosoftAspNetCoreDiagnosticsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.HostFiltering" Version="$(MicrosoftAspNetCoreHostFilteringPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="$(MicrosoftAspNetCoreHostingAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" Version="$(MicrosoftAspNetCoreHostingServerAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Hosting" Version="$(MicrosoftAspNetCoreHostingPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Html.Abstractions" Version="$(MicrosoftAspNetCoreHtmlAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Http.Abstractions" Version="$(MicrosoftAspNetCoreHttpAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Http.Connections.Common" Version="$(MicrosoftAspNetCoreHttpConnectionsCommonPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Http.Connections" Version="$(MicrosoftAspNetCoreHttpConnectionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Http.Extensions" Version="$(MicrosoftAspNetCoreHttpExtensionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Http.Features" Version="$(MicrosoftAspNetCoreHttpFeaturesPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Http" Version="$(MicrosoftAspNetCoreHttpPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.HttpOverrides" Version="$(MicrosoftAspNetCoreHttpOverridesPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.HttpsPolicy" Version="$(MicrosoftAspNetCoreHttpsPolicyPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="$(MicrosoftAspNetCoreIdentityEntityFrameworkCorePackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Identity.UI" Version="$(MicrosoftAspNetCoreIdentityUIPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Identity" Version="$(MicrosoftAspNetCoreIdentityPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.JsonPatch" Version="$(MicrosoftAspNetCoreJsonPatchPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Localization.Routing" Version="$(MicrosoftAspNetCoreLocalizationRoutingPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Localization" Version="$(MicrosoftAspNetCoreLocalizationPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.MiddlewareAnalysis" Version="$(MicrosoftAspNetCoreMiddlewareAnalysisPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="$(MicrosoftAspNetCoreMvcAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.Analyzers" Version="$(MicrosoftAspNetCoreMvcAnalyzersPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.ApiExplorer" Version="$(MicrosoftAspNetCoreMvcApiExplorerPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.Core" Version="$(MicrosoftAspNetCoreMvcCorePackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.Cors" Version="$(MicrosoftAspNetCoreMvcCorsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="$(MicrosoftAspNetCoreMvcDataAnnotationsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Version="$(MicrosoftAspNetCoreMvcFormattersJsonPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" Version="$(MicrosoftAspNetCoreMvcFormattersXmlPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.Localization" Version="$(MicrosoftAspNetCoreMvcLocalizationPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="$(MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="$(MicrosoftAspNetCoreMvcRazorViewCompilationPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.Razor" Version="$(MicrosoftAspNetCoreMvcRazorPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.RazorPages" Version="$(MicrosoftAspNetCoreMvcRazorPagesPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.TagHelpers" Version="$(MicrosoftAspNetCoreMvcTagHelpersPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Version="$(MicrosoftAspNetCoreMvcViewFeaturesPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Mvc" Version="$(MicrosoftAspNetCoreMvcPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.NodeServices" Version="$(MicrosoftAspNetCoreNodeServicesPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Owin" Version="$(MicrosoftAspNetCoreOwinPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Razor.Design" Version="$(MicrosoftAspNetCoreRazorDesignPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Razor.Language" Version="$(MicrosoftAspNetCoreRazorLanguagePackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Razor.Runtime" Version="$(MicrosoftAspNetCoreRazorRuntimePackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Razor" Version="$(MicrosoftAspNetCoreRazorPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.ResponseCaching.Abstractions" Version="$(MicrosoftAspNetCoreResponseCachingAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.ResponseCaching" Version="$(MicrosoftAspNetCoreResponseCachingPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.ResponseCompression" Version="$(MicrosoftAspNetCoreResponseCompressionPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Rewrite" Version="$(MicrosoftAspNetCoreRewritePackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Routing.Abstractions" Version="$(MicrosoftAspNetCoreRoutingAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Routing" Version="$(MicrosoftAspNetCoreRoutingPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Server.HttpSys" Version="$(MicrosoftAspNetCoreServerHttpSysPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Server.IIS" Version="$(MicrosoftAspNetCoreServerIISPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Server.IISIntegration" Version="$(MicrosoftAspNetCoreServerIISIntegrationPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Server.Kestrel.Core" Version="$(MicrosoftAspNetCoreServerKestrelCorePackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Server.Kestrel.Https" Version="$(MicrosoftAspNetCoreServerKestrelHttpsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions" Version="$(MicrosoftAspNetCoreServerKestrelTransportAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" Version="$(MicrosoftAspNetCoreServerKestrelTransportSocketsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.Session" Version="$(MicrosoftAspNetCoreSessionPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.SignalR.Common" Version="$(MicrosoftAspNetCoreSignalRCommonPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.SignalR.Core" Version="$(MicrosoftAspNetCoreSignalRCorePackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.SignalR.Protocols.Json" Version="$(MicrosoftAspNetCoreSignalRProtocolsJsonPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.SignalR" Version="$(MicrosoftAspNetCoreSignalRPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="$(MicrosoftAspNetCoreSpaServicesExtensionsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.SpaServices" Version="$(MicrosoftAspNetCoreSpaServicesPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.StaticFiles" Version="$(MicrosoftAspNetCoreStaticFilesPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.WebSockets" Version="$(MicrosoftAspNetCoreWebSocketsPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore.WebUtilities" Version="$(MicrosoftAspNetCoreWebUtilitiesPackageVersion)" />
<Dependency Include="Microsoft.AspNetCore" Version="$(MicrosoftAspNetCorePackageVersion)" />
<Dependency Include="Microsoft.CodeAnalysis.Razor" Version="$(MicrosoftCodeAnalysisRazorPackageVersion)" />
<Dependency Include="Microsoft.EntityFrameworkCore.Abstractions" Version="$(MicrosoftEntityFrameworkCoreAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.EntityFrameworkCore.Analyzers" Version="$(MicrosoftEntityFrameworkCoreAnalyzersPackageVersion)" />
<Dependency Include="Microsoft.EntityFrameworkCore.Design" Version="$(MicrosoftEntityFrameworkCoreDesignPackageVersion)" />
<Dependency Include="Microsoft.EntityFrameworkCore.InMemory" Version="$(MicrosoftEntityFrameworkCoreInMemoryPackageVersion)" />
<Dependency Include="Microsoft.EntityFrameworkCore.Relational" Version="$(MicrosoftEntityFrameworkCoreRelationalPackageVersion)" />
<Dependency Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(MicrosoftEntityFrameworkCoreSqlServerPackageVersion)" />
<Dependency Include="Microsoft.EntityFrameworkCore.Tools" Version="$(MicrosoftEntityFrameworkCoreToolsPackageVersion)" />
<Dependency Include="Microsoft.EntityFrameworkCore" Version="$(MicrosoftEntityFrameworkCorePackageVersion)" />
<Dependency Include="Microsoft.Extensions.Caching.Abstractions" Version="$(MicrosoftExtensionsCachingAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Caching.Memory" Version="$(MicrosoftExtensionsCachingMemoryPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Caching.SqlServer" Version="$(MicrosoftExtensionsCachingSqlServerPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration.Abstractions" Version="$(MicrosoftExtensionsConfigurationAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration.Binder" Version="$(MicrosoftExtensionsConfigurationBinderPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration.CommandLine" Version="$(MicrosoftExtensionsConfigurationCommandLinePackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="$(MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration.FileExtensions" Version="$(MicrosoftExtensionsConfigurationFileExtensionsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration.Ini" Version="$(MicrosoftExtensionsConfigurationIniPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration.Json" Version="$(MicrosoftExtensionsConfigurationJsonPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration.KeyPerFile" Version="$(MicrosoftExtensionsConfigurationKeyPerFilePackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration.UserSecrets" Version="$(MicrosoftExtensionsConfigurationUserSecretsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration.Xml" Version="$(MicrosoftExtensionsConfigurationXmlPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Configuration" Version="$(MicrosoftExtensionsConfigurationPackageVersion)" />
<Dependency Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="$(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftExtensionsDependencyInjectionPackageVersion)" />
<Dependency Include="Microsoft.Extensions.DiagnosticAdapter" Version="$(MicrosoftExtensionsDiagnosticAdapterPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion)" />
<Dependency Include="Microsoft.Extensions.FileProviders.Abstractions" Version="$(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.FileProviders.Composite" Version="$(MicrosoftExtensionsFileProvidersCompositePackageVersion)" />
<Dependency Include="Microsoft.Extensions.FileProviders.Embedded" Version="$(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion)" />
<Dependency Include="Microsoft.Extensions.FileProviders.Physical" Version="$(MicrosoftExtensionsFileProvidersPhysicalPackageVersion)" />
<Dependency Include="Microsoft.Extensions.FileSystemGlobbing" Version="$(MicrosoftExtensionsFileSystemGlobbingPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(MicrosoftExtensionsHostingAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsHostingPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Http" Version="$(MicrosoftExtensionsHttpPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Identity.Core" Version="$(MicrosoftExtensionsIdentityCorePackageVersion)" />
<Dependency Include="Microsoft.Extensions.Identity.Stores" Version="$(MicrosoftExtensionsIdentityStoresPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Localization.Abstractions" Version="$(MicrosoftExtensionsLocalizationAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Localization" Version="$(MicrosoftExtensionsLocalizationPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsLoggingAbstractionsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Logging.Configuration" Version="$(MicrosoftExtensionsLoggingConfigurationPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
<Dependency Include="Microsoft.Extensions.Logging.Debug" Version="$(MicrosoftExtensionsLoggingDebugPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Logging.EventSource" Version="$(MicrosoftExtensionsLoggingEventSourcePackageVersion)" />
<Dependency Include="Microsoft.Extensions.Logging.TraceSource" Version="$(MicrosoftExtensionsLoggingTraceSourcePackageVersion)" />
<Dependency Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionsLoggingPackageVersion)" />
<Dependency Include="Microsoft.Extensions.ObjectPool" Version="$(MicrosoftExtensionsObjectPoolPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="$(MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Options.DataAnnotations" Version="$(MicrosoftExtensionsOptionsDataAnnotationsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
<Dependency Include="Microsoft.Extensions.Primitives" Version="$(MicrosoftExtensionsPrimitivesPackageVersion)" />
<Dependency Include="Microsoft.Extensions.WebEncoders" Version="$(MicrosoftExtensionsWebEncodersPackageVersion)" />
<Dependency Include="Microsoft.Net.Http.Headers" Version="$(MicrosoftNetHttpHeadersPackageVersion)" />
<Dependency Include="System.IO.Pipelines" Version="$(SystemIOPipelinesPackageVersion)" VersionRangeType="Minimum" />
</ItemGroup>
</Project>

View File

@ -1,11 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<IncludeBuildOutput>false</IncludeBuildOutput>
<IncludeSymbols>false</IncludeSymbols>
<TargetFramework>netcoreapp3.0</TargetFramework>
<PackageTags>aspnetcore</PackageTags>
<EnableApiCheck>false</EnableApiCheck>
<PackageDescription>Provides a default set of APIs for building an ASP.NET Core application.
This package requires the ASP.NET Core runtime. This runtime is installed by the .NET Core SDK, or can be acquired separately using installers available at https://aka.ms/dotnet-download.
@ -18,4 +15,12 @@ This package requires the ASP.NET Core runtime. This runtime is installed by the
<Content Include="lib\$(TargetFramework)\_._" PackagePath="%(Identity)" />
</ItemGroup>
<ItemDefinitionGroup>
<Dependency>
<VersionRangeType>MajorMinor</VersionRangeType>
</Dependency>
</ItemDefinitionGroup>
<Import Project="..\Microsoft.AspNetCore.App.props" />
</Project>

View File

@ -12,7 +12,7 @@
<Target Name="EnsureTFMCompatibility" BeforeTargets="_CheckForInvalidConfigurationAndPlatform">
<Error
Text="This version of Microsoft.AspNetCore.App is only compatible with the netcoreapp3.0 target framework. Please target netcoreapp3.0 or choose a version of Microsoft.AspNetCore.App compatible with $(TargetFramework)."
Condition="'$(TargetFramework)' != 'netcoreapp3.0'"/>
Text="This version of Microsoft.AspNetCore.App is only compatible with the netcoreapp2.2 target framework. Please target netcoreapp2.2 or choose a version of Microsoft.AspNetCore.App compatible with $(TargetFramework)."
Condition="'$(TargetFramework)' != 'netcoreapp2.2'"/>
</Target>
</Project>

View File

@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<BaseSharedFrameworkName>Microsoft.NETCore.App</BaseSharedFrameworkName>
<RuntimeFrameworkVersion>$(MicrosoftNETCoreAppPackageVersion)</RuntimeFrameworkVersion>
<!-- The runtime Package ID is for self-contained assets. -->
<PackageId>runtime.$(SharedFxRid).$(MSBuildProjectName)</PackageId>
<PackageDescription>This package provides assets used for self-contained deployments of an ASP.NET Core application. It is an internal implementation package not meant for direct consumption. Please do not reference directly.
$(MSBuildProjectName) provides a default set of APIs for building an ASP.NET Core application.
</PackageDescription>
</PropertyGroup>
<ItemGroup>
<PackageProjectReference Include="..\pkg\Microsoft.AspNetCore.App.pkgproj" />
</ItemGroup>
</Project>

0
src/Framework/_._ Normal file
View File

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/01/nuspec.xsd">
<metadata minClientVersion="2.12">
<id>$id$</id>
<version>$version$</version>
<authors>$authors$</authors>
<licenseUrl>$licenseUrl$</licenseUrl>
<projectUrl>$projectUrl$</projectUrl>
<iconUrl>$iconUrl$</iconUrl>
<description>$description$</description>
<copyright>$copyright$</copyright>
<tags>$tags$</tags>
<repository type="git" url="$repositoryUrl$" commit="$repositoryCommit$" />
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<serviceable>true</serviceable>
</metadata>
<files>
<file src="$symbolsAssets$" target="runtimes/$rid$/lib/$targetFramework$/" />
<file src="$runtimeAssets$" target="runtimes/$rid$/lib/$targetFramework$/" />
<file src="$nativeAssets$" target="runtimes/$rid$/native/" />
<!-- This is a dummy reference which prevents NuGet from adding any compilation references when this package is imported. -->
<file src="_._" target="ref/netstandard/" />
</files>
</package>

View File

@ -0,0 +1,49 @@
<!--
This archive should only contain the ASP.NET Core shared runtime and is intended for internal-use only.
For example, this .zip is used to handoff bits to partner teams who then incorporate our shared frameworks
into their installers or redist's.
-->
<Project>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
<PropertyGroup>
<!-- Use a short folder name to avoid MAX_PATH issues on Windows -->
<IntermediateOutputPath>$(RepositoryRoot)obj\ai\$(SharedFxRid)\</IntermediateOutputPath>
<OutputFileName>$(InternalInstallerBaseName)-$(PackageVersion)-$(SharedFxRid)$(ArchiveExtension)</OutputFileName>
<OutputPath>$(InstallersOutputPath)</OutputPath>
<TargetPath>$(InstallersOutputPath)$(OutputFileName)</TargetPath>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\Framework\*\src\*.shfxproj">
<SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
<OutputItemType>_ResolvedFxProjects</OutputItemType>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" />
<Target Name="GetTargetPath" Returns="$(TargetPath)" />
<Target Name="Build" DependsOnTargets="ResolveProjectReferences;GetTargetPath">
<MakeDir Directories="$(OutputPath);$(IntermediateOutputPath)" />
<ItemGroup>
<SharedFxAssetFolder Include="%(_ResolvedFxProjects.InstallerAssetPaths)" SharedFxName="%(_ResolvedFxProjects.SharedFxName)" />
<FileToZip Include="%(SharedFxAssetFolder.Identity)\**\*">
<DestinationDir>$(IntermediateOutputPath)shared\%(SharedFxAssetFolder.SharedFxName)\$(PackageVersion)\</DestinationDir>
</FileToZip>
</ItemGroup>
<Copy SourceFiles="@(FileToZip)" DestinationFiles="@(FileToZip->'%(DestinationDir)%(RecursiveDir)%(FileName)%(Extension)')" />
<Exec Condition="'$(ArchiveExtension)' == '.tar.gz'"
Command="tar -czf $(TargetPath) -C $(IntermediateOutputPath) ." />
<ZipDirectory Condition="'$(ArchiveExtension)' == '.zip'"
DestinationFile="$(TargetPath)"
SourceDirectory="$(IntermediateOutputPath)"
Overwrite="true" />
</Target>
</Project>

View File

@ -0,0 +1,68 @@
<!--
This archive contains everything necessary to use the ASP.NET Core shared runtime,
including binaries from the base .NET Core runtime and the dotnet.exe muxer.
-->
<Project>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
<PropertyGroup>
<!-- Use a short folder name to avoid MAX_PATH issues on Windows -->
<BaseIntermediateOutputPath>$(RepositoryRoot)obj\ar\</BaseIntermediateOutputPath>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)$(SharedFxRid)\</IntermediateOutputPath>
<OutputFileName>$(RuntimeInstallerBaseName)-$(PackageVersion)-$(SharedFxRid)$(ArchiveExtension)</OutputFileName>
<OutputPath>$(InstallersOutputPath)</OutputPath>
<TargetPath>$(InstallersOutputPath)$(OutputFileName)</TargetPath>
<DotNetRuntimeArchiveFileName>dotnet-runtime-$(MicrosoftNETCoreAppPackageVersion)-$(SharedFxRid)$(ArchiveExtension)</DotNetRuntimeArchiveFileName>
<DotNetRuntimeDownloadUrl>$(DotNetAssetRootUrl)Runtime/$(MicrosoftNETCoreAppPackageVersion)/$(DotNetRuntimeArchiveFileName)</DotNetRuntimeDownloadUrl>
<DotNetRuntimeArchive>$(BaseIntermediateOutputPath)$(DotNetRuntimeArchiveFileName)</DotNetRuntimeArchive>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\Framework\*\src\*.shfxproj">
<SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
<OutputItemType>_ResolvedFxProjects</OutputItemType>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" />
<Target Name="GetTargetPath" Returns="$(TargetPath)" />
<Target Name="Build" DependsOnTargets="ResolveProjectReferences;GetTargetPath">
<MakeDir Directories="$(OutputPath);$(IntermediateOutputPath)" />
<DownloadFile Condition=" ! Exists('$(DotNetRuntimeArchive)')"
SourceUrl="$(DotNetRuntimeDownloadUrl)$(DotNetAssetRootAccessTokenSuffix)"
DestinationFolder="$(BaseIntermediateOutputPath)"
DestinationFileName="$(DotNetRuntimeArchiveFileName)" />
<ItemGroup>
<SharedFxAssetFolder Include="%(_ResolvedFxProjects.InstallerAssetPaths)" SharedFxName="%(_ResolvedFxProjects.SharedFxName)" />
<FileToZip Include="%(SharedFxAssetFolder.Identity)\**\*">
<DestinationDir>$(IntermediateOutputPath)shared\%(SharedFxAssetFolder.SharedFxName)\$(PackageVersion)\</DestinationDir>
</FileToZip>
</ItemGroup>
<!-- Extract the dotnet-runtime archive -->
<Exec Condition="'$(ArchiveExtension)' == '.tar.gz'"
Command="tar -xzf $(DotNetRuntimeArchive) -C $(IntermediateOutputPath)" />
<Unzip Condition="'$(ArchiveExtension)' == '.zip'"
SourceFiles="$(DotNetRuntimeArchive)"
DestinationFolder="$(IntermediateOutputPath)"
OverwriteReadOnlyFiles="true" />
<Copy SourceFiles="@(FileToZip)" DestinationFiles="@(FileToZip->'%(DestinationDir)%(RecursiveDir)%(FileName)%(Extension)')" />
<!-- Zip up all contents of the archive. -->
<Exec Condition="'$(ArchiveExtension)' == '.tar.gz'"
Command="tar -czf $(TargetPath) -C $(IntermediateOutputPath) ." />
<ZipDirectory Condition="'$(ArchiveExtension)' == '.zip'"
DestinationFile="$(TargetPath)"
SourceDirectory="$(IntermediateOutputPath)"
Overwrite="true" />
</Target>
</Project>

View File

@ -0,0 +1,14 @@
<Project>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
<PropertyGroup>
<RuntimeInstallerBaseName>aspnetcore-runtime</RuntimeInstallerBaseName>
<!-- Name = aspnet-runtime-internal for files are only produced so we can hand them off to the dotnet/cli repo. -->
<InternalInstallerBaseName>$(RuntimeInstallerBaseName)-internal</InternalInstallerBaseName>
<ArchiveExtension>.tar.gz</ArchiveExtension>
<ArchiveExtension Condition="$(SharedFxRid.StartsWith('win'))">.zip</ArchiveExtension>
</PropertyGroup>
</Project>

View File

@ -8,10 +8,6 @@
<BaseIntermediateOutputPath>$(RootOutputPath)obj/$(MSBuildProjectName)/</BaseIntermediateOutputPath>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)/</IntermediateOutputPath>
<IntermediateOutputPath Condition=" '$(Platform)' != '' AND '$(Platform)' != 'AnyCPU' ">$(IntermediateOutputPath)$(Platform)/</IntermediateOutputPath>
<RuntimeInstallerBaseName>aspnetcore-runtime</RuntimeInstallerBaseName>
<!-- Name = aspnet-runtime-internal because .wixlib files are only produced so we can hand them off to the dotnet/cli repo. -->
<WixlibBaseFileName>$(RuntimeInstallerBaseName)-internal</WixlibBaseFileName>
</PropertyGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />

View File

@ -4,7 +4,8 @@
<PropertyGroup>
<Name>AspNetCoreSharedFrameworkLib$(Platform)</Name>
<OutputName>$(WixlibBaseFileName)-$(PackageVersion)-win-$(Platform)</OutputName>
<!-- Use the internal installer name because .wixlib files are only produced so we can hand them off to the dotnet/cli repo. -->
<OutputName>$(InternalInstallerBaseName)-$(PackageVersion)-win-$(Platform)</OutputName>
<OutputType>Library</OutputType>
<LibBindFiles>true</LibBindFiles>
<NamespaceGuid>$(SharedFrameworkNamespaceGuid)</NamespaceGuid>

View File

@ -1,7 +0,0 @@
<Project>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
<ItemGroup>
<PackageReference Include="Internal.AspNetCore.Sdk" Version="$(InternalAspNetCoreSdkPackageVersion)" PrivateAssets="All" />
</ItemGroup>
</Project>

View File

@ -1,11 +0,0 @@
<Project>
<Target Name="GetArtifactInfo" Returns="@(ArtifactInfo)">
<ItemGroup>
<ArtifactInfo Include="$(PackageOutputPath)$(PackageId).$(PackageVersion).nupkg">
<ArtifactType>NuGetPackage</ArtifactType>
<PackageId>$(PackageId)</PackageId>
<Version>$(PackageVersion)</Version>
</ArtifactInfo>
</ItemGroup>
</Target>
</Project>

View File

@ -1,21 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<IncludeBuildOutput>false</IncludeBuildOutput>
<IncludeSymbols>false</IncludeSymbols>
<TargetFramework>netcoreapp3.0</TargetFramework>
<PackageTags>aspnetcore</PackageTags>
<EnableApiCheck>false</EnableApiCheck>
<PackageDescription>Provides a default set of APIs for building an ASP.NET Core application, and also includes API for third-party integrations with ASP.NET Core.
This package requires the ASP.NET Core runtime. This runtime is installed by the .NET Core SDK, or can be acquired separately using installers available at https://aka.ms/dotnet-download.
</PackageDescription>
</PropertyGroup>
<ItemGroup>
<Content Include="build\$(TargetFramework)\*.props" PackagePath="%(Identity)" />
<Content Include="build\$(TargetFramework)\*.targets" PackagePath="%(Identity)" />
<Content Include="lib\$(TargetFramework)\_._" PackagePath="%(Identity)" />
</ItemGroup>
</Project>

View File

@ -1,18 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<IncludeBuildOutput>false</IncludeBuildOutput>
<IncludeSymbols>false</IncludeSymbols>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageTags>aspnetcore</PackageTags>
<Description>Microsoft.AspNetCore.Analyzers</Description>
<VersionPrefix>$(ExperimentalVersionPrefix)</VersionPrefix>
<VersionSuffix>$(ExperimentalVersionSuffix)</VersionSuffix>
<PackageVersion>$(ExperimentalPackageVersion)</PackageVersion>
<VerifyVersion>false</VerifyVersion>
<EnableApiCheck>false</EnableApiCheck>
</PropertyGroup>
</Project>

View File

@ -5,9 +5,13 @@ VisualStudioVersion = 15.0.26124.0
MinimumVisualStudioVersion = 15.0.26124.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0ED05384-4F64-44BA-A4AA-47519DA26E8C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.AzureAppServices.SiteExtension", "src\Microsoft.AspNetCore.AzureAppServices.SiteExtension\Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj", "{69E22952-302D-4C56-B2BE-7C086EB05C79}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.AzureAppServices.SiteExtension", "src\Microsoft.AspNetCore.AzureAppServices.SiteExtension\Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj", "{69E22952-302D-4C56-B2BE-7C086EB05C79}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Web.Xdt.Extensions", "src\Microsoft.Web.Xdt.Extensions\Microsoft.Web.Xdt.Extensions.csproj", "{637E1D65-7F1C-476B-AD0A-30B295DF5414}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Web.Xdt.Extensions", "src\Microsoft.Web.Xdt.Extensions\Microsoft.Web.Xdt.Extensions.csproj", "{637E1D65-7F1C-476B-AD0A-30B295DF5414}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{6C71D9CD-271C-41CB-ACCD-9EABED6C9E80}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.AzureAppServices.SiteExtension.Tests", "test\Microsoft.AspNetCore.AzureAppServices.SiteExtension.Tests\Microsoft.AspNetCore.AzureAppServices.SiteExtension.Tests.csproj", "{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -18,9 +22,6 @@ Global
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{69E22952-302D-4C56-B2BE-7C086EB05C79}.Debug|Any CPU.Build.0 = Debug|Any CPU
@ -46,9 +47,28 @@ Global
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Release|x64.Build.0 = Release|Any CPU
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Release|x86.ActiveCfg = Release|Any CPU
{637E1D65-7F1C-476B-AD0A-30B295DF5414}.Release|x86.Build.0 = Release|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Debug|x64.ActiveCfg = Debug|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Debug|x64.Build.0 = Debug|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Debug|x86.ActiveCfg = Debug|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Debug|x86.Build.0 = Debug|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Release|Any CPU.Build.0 = Release|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Release|x64.ActiveCfg = Release|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Release|x64.Build.0 = Release|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Release|x86.ActiveCfg = Release|Any CPU
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{69E22952-302D-4C56-B2BE-7C086EB05C79} = {0ED05384-4F64-44BA-A4AA-47519DA26E8C}
{637E1D65-7F1C-476B-AD0A-30B295DF5414} = {0ED05384-4F64-44BA-A4AA-47519DA26E8C}
{A0798DB8-7681-4F00-94EC-CC966F4F3CD0} = {6C71D9CD-271C-41CB-ACCD-9EABED6C9E80}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {7ACE43EF-2C19-4D80-B7DB-0169D9302623}
EndGlobalSection
EndGlobal

View File

@ -7,7 +7,10 @@
<InternalAspNetCoreSdkPackageVersion>2.2.0-preview2-20181004.6</InternalAspNetCoreSdkPackageVersion>
<MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>2.1.1-rtm-31076</MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>
<MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>2.2.0-rtm-35515</MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>
<MicrosoftNETTestSdkPackageVersion>15.6.1</MicrosoftNETTestSdkPackageVersion>
<MicrosoftWebXdtPackageVersion>1.4.0</MicrosoftWebXdtPackageVersion>
<XunitPackageVersion>2.4.0</XunitPackageVersion>
<XunitRunnerVisualStudioPackageVersion>2.4.0</XunitRunnerVisualStudioPackageVersion>
</PropertyGroup>
</Project>

View File

@ -1,6 +1,6 @@
{
"sdk": {
"version": "2.2.100-preview2-009404"
"version": "2.2.100-preview3-009430"
},
"msbuild-sdks": {
"Internal.AspNetCore.Sdk": "3.0.0-alpha1-20181018.6"

View File

@ -0,0 +1,18 @@
<Project>
<Import Project="..\Directory.Build.props" />
<PropertyGroup>
<DeveloperBuildTestTfms>netcoreapp2.2</DeveloperBuildTestTfms>
<StandardTestTfms>$(DeveloperBuildTestTfms)</StandardTestTfms>
<StandardTestTfms Condition=" '$(DeveloperBuild)' != 'true' AND '$(OS)' == 'Windows_NT' ">$(StandardTestTfms);net461</StandardTestTfms>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Internal.AspNetCore.Sdk" PrivateAssets="All" Version="$(InternalAspNetCoreSdkPackageVersion)" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
<PackageReference Include="xunit.runner.visualstudio" Version="$(XunitRunnerVisualStudioPackageVersion)" />
<PackageReference Include="xunit" Version="$(XunitPackageVersion)" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Content Include="..\..\src\Microsoft.AspNetCore.AzureAppServices.SiteExtension\applicationHost.xdt" Link="applicationHost.xdt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="config_empty.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="config_existingemptyvalue.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="config_existingline.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="config_existingvalue.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Microsoft.Web.Xdt.Extensions\Microsoft.Web.Xdt.Extensions.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,93 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.IO;
using System.Xml;
using Microsoft.Web.XmlTransform;
using Xunit;
namespace Microsoft.AspNetCore.AzureAppServices.SiteExtension
{
public class TransformTest
{
private static readonly string XdtExtensionPath = AppDomain.CurrentDomain.BaseDirectory;
[Theory]
[InlineData("config_empty.xml")]
[InlineData("config_existingline.xml")]
[InlineData("config_existingEmptyValue.xml")]
public void Transform_EmptyConfig_Added(string configFile)
{
var doc = LoadDocAndRunTransform(configFile);
Assert.Equal(2, doc.ChildNodes.Count);
var envNode = doc["configuration"]?["system.webServer"]?["runtime"]?["environmentVariables"];
Assert.NotNull(envNode);
Assert.Equal(3, envNode.ChildNodes.Count);
var depsElement = envNode.FirstChild;
Assert.Equal("add", depsElement.Name);
Assert.Equal("DOTNET_ADDITIONAL_DEPS", depsElement.Attributes["name"].Value);
Assert.Equal($@"{XdtExtensionPath}\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\;" +
@"%ProgramFiles%\dotnet\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\",
depsElement.Attributes["value"].Value);
var sharedStoreElement = depsElement.NextSibling;
Assert.Equal("add", sharedStoreElement.Name);
Assert.Equal("DOTNET_SHARED_STORE", sharedStoreElement.Attributes["name"].Value);
Assert.Equal($@"{XdtExtensionPath}\store", sharedStoreElement.Attributes["value"].Value);
var startupAssembliesElement = sharedStoreElement.NextSibling;
Assert.Equal("add", startupAssembliesElement.Name);
Assert.Equal("ASPNETCORE_HOSTINGSTARTUPASSEMBLIES", startupAssembliesElement.Attributes["name"].Value);
Assert.Equal("Microsoft.AspNetCore.AzureAppServices.HostingStartup", startupAssembliesElement.Attributes["value"].Value);
}
[Fact]
public void Transform_ExistingValue_AppendsValue()
{
var doc = LoadDocAndRunTransform("config_existingvalue.xml");
Assert.Equal(2, doc.ChildNodes.Count);
var envNode = doc["configuration"]?["system.webServer"]?["runtime"]?["environmentVariables"];
Assert.NotNull(envNode);
Assert.Equal(3, envNode.ChildNodes.Count);
var depsElement = envNode.FirstChild;
Assert.Equal("add", depsElement.Name);
Assert.Equal("DOTNET_ADDITIONAL_DEPS", depsElement.Attributes["name"].Value);
Assert.Equal(@"ExistingValue1;"+
$@"{XdtExtensionPath}\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\;" +
@"%ProgramFiles%\dotnet\additionalDeps\Microsoft.AspNetCore.AzureAppServices.HostingStartup\",
depsElement.Attributes["value"].Value);
var sharedStoreElement = depsElement.NextSibling;
Assert.Equal("add", sharedStoreElement.Name);
Assert.Equal("DOTNET_SHARED_STORE", sharedStoreElement.Attributes["name"].Value);
Assert.Equal($@"ExistingValue3;{XdtExtensionPath}\store", sharedStoreElement.Attributes["value"].Value);
var startupAssembliesElement = sharedStoreElement.NextSibling;
Assert.Equal("add", startupAssembliesElement.Name);
Assert.Equal("ASPNETCORE_HOSTINGSTARTUPASSEMBLIES", startupAssembliesElement.Attributes["name"].Value);
Assert.Equal("ExistingValue2;Microsoft.AspNetCore.AzureAppServices.HostingStartup", startupAssembliesElement.Attributes["value"].Value);
}
private static XmlDocument LoadDocAndRunTransform(string docName)
{
// Microsoft.Web.Hosting.Transformers.ApplicationHost.SiteExtensionDefinition.Transform
// (See Microsoft.Web.Hosting, Version=7.1.0.0) replaces variables for you in Azure.
var transformFile = File.ReadAllText("applicationHost.xdt");
transformFile = transformFile.Replace("%XDT_EXTENSIONPATH%", XdtExtensionPath);
var transform = new XmlTransformation(transformFile, isTransformAFile: false, logger: null);
var doc = new XmlDocument();
doc.Load(docName);
Assert.True(transform.Apply(doc));
return doc;
}
}
}

View File

@ -0,0 +1,3 @@
<?xml version="1.0"?>
<configuration>
</configuration>

View File

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<configuration>
<system.webServer>
<runtime>
<environmentVariables>
<add name="DOTNET_ADDITIONAL_DEPS" value="" />
<add name="DOTNET_SHARED_STORE" value="" />
<add name="ASPNETCORE_HOSTINGSTARTUPASSEMBLIES" value="" />
</environmentVariables>
</runtime>
</system.webServer>
</configuration>

View File

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<configuration>
<system.webServer>
<runtime>
<environmentVariables>
<add name="DOTNET_ADDITIONAL_DEPS" />
<add name="DOTNET_SHARED_STORE" />
<add name="ASPNETCORE_HOSTINGSTARTUPASSEMBLIES" />
</environmentVariables>
</runtime>
</system.webServer>
</configuration>

View File

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<configuration>
<system.webServer>
<runtime>
<environmentVariables>
<add name="DOTNET_ADDITIONAL_DEPS" value="ExistingValue1" />
<add name="DOTNET_SHARED_STORE" value="ExistingValue3" />
<add name="ASPNETCORE_HOSTINGSTARTUPASSEMBLIES" value="ExistingValue2" />
</environmentVariables>
</runtime>
</system.webServer>
</configuration>

View File

@ -190,6 +190,7 @@ namespace Cli.FunctionalTests.Templates
"Microsoft.Extensions.Options.dll",
"Microsoft.Extensions.Primitives.dll",
"Microsoft.Extensions.WebEncoders.dll",
"Microsoft.IdentityModel.JsonWebTokens.dll",
"Microsoft.IdentityModel.Logging.dll",
"Microsoft.IdentityModel.Protocols.dll",
"Microsoft.IdentityModel.Protocols.OpenIdConnect.dll",

View File

@ -5,7 +5,7 @@
<AspNetCorePatchVersion>0</AspNetCorePatchVersion>
<PreReleaseLabel>alpha1</PreReleaseLabel>
<PreReleaseBrandingLabel>Alpha 1</PreReleaseBrandingLabel>
<BuildNumber Condition="'$(BuildNumber)' == ''">t000</BuildNumber>
<BuildNumber Condition="'$(BuildNumber)' == '' OR '$(UsingLocalBuildNumber)' == 'true'">$([System.DateTime]::Now.ToString('yyMMdd'))-99</BuildNumber>
<VersionPrefix>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion)</VersionPrefix>
<ExperimentalVersionPrefix>0.3.$(AspNetCorePatchVersion)</ExperimentalVersionPrefix>
<VersionSuffix>$(PreReleaseLabel)-$(BuildNumber)</VersionSuffix>