diff --git a/build/AzureIntegration.targets b/build/AzureIntegration.targets
deleted file mode 100644
index 8df9536eb7..0000000000
--- a/build/AzureIntegration.targets
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
- $(MSBuildThisFileDirectory)..\modules\AzureIntegration\
-
-
-
-
-
- AspNetUniverseBuildOffline=true;
- RepositoryRoot=$(AzureIntegrationProjectRoot);
- DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);
- DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);
- BuildNumber=$(BuildNumber);
- Configuration=$(Configuration);
- IsFinalBuild=$(IsFinalBuild);
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build/SharedFx.targets b/build/SharedFx.targets
index d3119fbc21..5bcaee5578 100644
--- a/build/SharedFx.targets
+++ b/build/SharedFx.targets
@@ -41,6 +41,28 @@
+
+
+
+ AspNetUniverseBuildOffline=true;
+ DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);
+ DotNetPackageVersionPropsPath=$(GeneratedPackageVersionPropsPath);
+ BuildNumber=$(BuildNumber);
+ Configuration=$(Configuration);
+ IsFinalBuild=$(IsFinalBuild);
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/artifacts.props b/build/artifacts.props
index bf170648c2..a903fad96d 100644
--- a/build/artifacts.props
+++ b/build/artifacts.props
@@ -44,6 +44,7 @@
+
diff --git a/build/repo.props b/build/repo.props
index 4b5ea56161..5763e9eea3 100644
--- a/build/repo.props
+++ b/build/repo.props
@@ -17,6 +17,9 @@
$(RepositoryRoot).deps\Signed\Packages\
$(RepositoryRoot)eng\signcheck.exclusions.txt
$(RepositoryRoot)src\Shared\
+ $(SharedFxRid.Substring($([MSBuild]::Add($(SharedFxRid.LastIndexOf('-')), 1))))
+ false
+ false
diff --git a/build/repo.targets b/build/repo.targets
index 78d2deaee5..481313975f 100644
--- a/build/repo.targets
+++ b/build/repo.targets
@@ -1,7 +1,6 @@
-
@@ -22,7 +21,7 @@
$(CompileDependsOn);BuildProjects;PackSharedSources
$(CompileDependsOn);PackProjects;BuildRepositories;BuildSharedFx
$(PackageDependsOn);PackProjects
- $(PackageDependsOn);CheckExpectedPackagesExist
+ $(PackageDependsOn);BuildSiteExtension;CheckExpectedPackagesExist
$(PackageDependsOn);CodeSign
$(TestDependsOn);TestProjects
$(TestDependsOn);_TestRepositories
@@ -73,7 +72,7 @@
-
+
$(BuildProperties);MicrosoftNETCoreAppPackageVersion=$(MicrosoftNETCoreAppPackageVersion);
diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props
index f8377e8ebf..229a1c4e2f 100644
--- a/eng/PatchConfig.props
+++ b/eng/PatchConfig.props
@@ -28,6 +28,7 @@ Later on, this will be checked using this condition:
@aspnet/signalr;
+ Microsoft.AspNetCore.Authentication.Google;
diff --git a/src/Razor/Razor.Design/test/IntegrationTests/Microsoft.AspNetCore.Razor.Design.Test.csproj b/src/Razor/Razor.Design/test/IntegrationTests/Microsoft.AspNetCore.Razor.Design.Test.csproj
index 60492728e4..45639dc66b 100644
--- a/src/Razor/Razor.Design/test/IntegrationTests/Microsoft.AspNetCore.Razor.Design.Test.csproj
+++ b/src/Razor/Razor.Design/test/IntegrationTests/Microsoft.AspNetCore.Razor.Design.Test.csproj
@@ -13,12 +13,10 @@
true
$(MSBuildProjectDirectory)\obj\BuildVariables.generated.cs
- EnsureBuildVariablesGeneratedFile;$(CompileDependsOn)
-
@@ -43,8 +41,31 @@
-
-
+
+
+
+
+
+// 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.
+
+namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
+{
+ internal static partial class BuildVariables
+ {
+ static partial void InitializeVariables()
+ {
+ _msBuildPath = @"$(MSBuildBinPath)\MSBuild.exe"%3B
+ }
+ }
+}
+
+
+
+
+
+
diff --git a/src/Security/Authentication/Google/src/GoogleDefaults.cs b/src/Security/Authentication/Google/src/GoogleDefaults.cs
index 26b3b8f01c..105a801d7b 100644
--- a/src/Security/Authentication/Google/src/GoogleDefaults.cs
+++ b/src/Security/Authentication/Google/src/GoogleDefaults.cs
@@ -1,6 +1,8 @@
// 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;
+
namespace Microsoft.AspNetCore.Authentication.Google
{
///
@@ -17,7 +19,23 @@ namespace Microsoft.AspNetCore.Authentication.Google
public static readonly string TokenEndpoint = "https://www.googleapis.com/oauth2/v4/token";
- // https://developers.google.com/+/web/people/
- public static readonly string UserInformationEndpoint = "https://www.googleapis.com/plus/v1/people/me";
+ public static readonly string UserInformationEndpoint;
+
+ private const string UseGooglePlusSwitch = "Switch.Microsoft.AspNetCore.Authentication.Google.UsePlus";
+
+ internal static readonly bool UseGooglePlus;
+
+ static GoogleDefaults()
+ {
+ if (AppContext.TryGetSwitch(UseGooglePlusSwitch, out UseGooglePlus) && UseGooglePlus)
+ {
+ // https://developers.google.com/+/web/people/
+ UserInformationEndpoint = "https://www.googleapis.com/plus/v1/people/me";
+ }
+ else
+ {
+ UserInformationEndpoint = "https://www.googleapis.com/oauth2/v2/userinfo";
+ }
+ }
}
}
diff --git a/src/Security/Authentication/Google/src/GoogleOptions.cs b/src/Security/Authentication/Google/src/GoogleOptions.cs
index 34028bc52b..03abaeaada 100644
--- a/src/Security/Authentication/Google/src/GoogleOptions.cs
+++ b/src/Security/Authentication/Google/src/GoogleOptions.cs
@@ -2,7 +2,6 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Security.Claims;
-using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.OAuth;
using Microsoft.AspNetCore.Http;
@@ -27,11 +26,22 @@ namespace Microsoft.AspNetCore.Authentication.Google
Scope.Add("email");
ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
- ClaimActions.MapJsonKey(ClaimTypes.Name, "displayName");
- ClaimActions.MapJsonSubKey(ClaimTypes.GivenName, "name", "givenName");
- ClaimActions.MapJsonSubKey(ClaimTypes.Surname, "name", "familyName");
- ClaimActions.MapJsonKey("urn:google:profile", "url");
- ClaimActions.MapCustomJson(ClaimTypes.Email, GoogleHelper.GetEmail);
+ if (GoogleDefaults.UseGooglePlus)
+ {
+ ClaimActions.MapJsonKey(ClaimTypes.Name, "displayName");
+ ClaimActions.MapJsonSubKey(ClaimTypes.GivenName, "name", "givenName");
+ ClaimActions.MapJsonSubKey(ClaimTypes.Surname, "name", "familyName");
+ ClaimActions.MapJsonKey("urn:google:profile", "url");
+ ClaimActions.MapCustomJson(ClaimTypes.Email, GoogleHelper.GetEmail);
+ }
+ else
+ {
+ ClaimActions.MapJsonKey(ClaimTypes.Name, "name");
+ ClaimActions.MapJsonKey(ClaimTypes.GivenName, "given_name");
+ ClaimActions.MapJsonKey(ClaimTypes.Surname, "family_name");
+ ClaimActions.MapJsonKey("urn:google:profile", "link");
+ ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
+ }
}
///
@@ -39,4 +49,4 @@ namespace Microsoft.AspNetCore.Authentication.Google
///
public string AccessType { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/src/Security/Authentication/test/GoogleTests.cs b/src/Security/Authentication/test/GoogleTests.cs
index 511a658ff4..cba74a4bd9 100644
--- a/src/Security/Authentication/test/GoogleTests.cs
+++ b/src/Security/Authentication/test/GoogleTests.cs
@@ -809,45 +809,7 @@ namespace Microsoft.AspNetCore.Authentication.Google
{
o.ClaimsIssuer = claimsIssuer;
}
- o.BackchannelHttpHandler = new TestHttpMessageHandler
- {
- Sender = req =>
- {
- if (req.RequestUri.AbsoluteUri == "https://www.googleapis.com/oauth2/v4/token")
- {
- return ReturnJsonResponse(new
- {
- access_token = "Test Access Token",
- expires_in = 3600,
- token_type = "Bearer"
- });
- }
- else if (req.RequestUri.GetComponents(UriComponents.SchemeAndServer | UriComponents.Path, UriFormat.UriEscaped) == "https://www.googleapis.com/plus/v1/people/me")
- {
- return ReturnJsonResponse(new
- {
- id = "Test User ID",
- displayName = "Test Name",
- name = new
- {
- familyName = "Test Family Name",
- givenName = "Test Given Name"
- },
- url = "Profile link",
- emails = new[]
- {
- new
- {
- value = "Test email",
- type = "account"
- }
- }
- });
- }
-
- throw new NotImplementedException(req.RequestUri.AbsoluteUri);
- }
- };
+ o.BackchannelHttpHandler = CreateBackchannel();
});
var properties = new AuthenticationProperties();
@@ -999,46 +961,7 @@ namespace Microsoft.AspNetCore.Authentication.Google
o.ClientId = "Test Id";
o.ClientSecret = "Test Secret";
o.StateDataFormat = stateFormat;
- o.BackchannelHttpHandler = new TestHttpMessageHandler
- {
- Sender = req =>
- {
- if (req.RequestUri.AbsoluteUri == "https://www.googleapis.com/oauth2/v4/token")
- {
- return ReturnJsonResponse(new
- {
- access_token = "Test Access Token",
- expires_in = 3600,
- token_type = "Bearer",
- refresh_token = "Test Refresh Token"
- });
- }
- else if (req.RequestUri.GetComponents(UriComponents.SchemeAndServer | UriComponents.Path, UriFormat.UriEscaped) == "https://www.googleapis.com/plus/v1/people/me")
- {
- return ReturnJsonResponse(new
- {
- id = "Test User ID",
- displayName = "Test Name",
- name = new
- {
- familyName = "Test Family Name",
- givenName = "Test Given Name"
- },
- url = "Profile link",
- emails = new[]
- {
- new
- {
- value = "Test email",
- type = "account"
- }
- }
- });
- }
-
- throw new NotImplementedException(req.RequestUri.AbsoluteUri);
- }
- };
+ o.BackchannelHttpHandler = CreateBackchannel();
o.Events = new OAuthEvents
{
OnCreatingTicket = context =>
@@ -1079,46 +1002,7 @@ namespace Microsoft.AspNetCore.Authentication.Google
o.ClientId = "Test Id";
o.ClientSecret = "Test Secret";
o.StateDataFormat = stateFormat;
- o.BackchannelHttpHandler = new TestHttpMessageHandler
- {
- Sender = req =>
- {
- if (req.RequestUri.AbsoluteUri == "https://www.googleapis.com/oauth2/v4/token")
- {
- return ReturnJsonResponse(new
- {
- access_token = "Test Access Token",
- expires_in = 3600,
- token_type = "Bearer",
- refresh_token = "Test Refresh Token"
- });
- }
- else if (req.RequestUri.GetComponents(UriComponents.SchemeAndServer | UriComponents.Path, UriFormat.UriEscaped) == "https://www.googleapis.com/plus/v1/people/me")
- {
- return ReturnJsonResponse(new
- {
- id = "Test User ID",
- displayName = "Test Name",
- name = new
- {
- familyName = "Test Family Name",
- givenName = "Test Given Name"
- },
- url = "Profile link",
- emails = new[]
- {
- new
- {
- value = "Test email",
- type = "account"
- }
- }
- });
- }
-
- throw new NotImplementedException(req.RequestUri.AbsoluteUri);
- }
- };
+ o.BackchannelHttpHandler = CreateBackchannel();
o.Events = new OAuthEvents
{
OnTicketReceived = context =>
@@ -1169,46 +1053,7 @@ namespace Microsoft.AspNetCore.Authentication.Google
return Task.FromResult(0);
}
};
- o.BackchannelHttpHandler = new TestHttpMessageHandler
- {
- Sender = req =>
- {
- if (req.RequestUri.AbsoluteUri == "https://www.googleapis.com/oauth2/v4/token")
- {
- return ReturnJsonResponse(new
- {
- access_token = "Test Access Token",
- expires_in = 3600,
- token_type = "Bearer",
- refresh_token = "Test Refresh Token"
- });
- }
- else if (req.RequestUri.GetComponents(UriComponents.SchemeAndServer | UriComponents.Path, UriFormat.UriEscaped) == "https://www.googleapis.com/plus/v1/people/me")
- {
- return ReturnJsonResponse(new
- {
- id = "Test User ID",
- displayName = "Test Name",
- name = new
- {
- familyName = "Test Family Name",
- givenName = "Test Given Name"
- },
- url = "Profile link",
- emails = new[]
- {
- new
- {
- value = "Test email",
- type = "account"
- }
- }
- });
- }
-
- throw new NotImplementedException(req.RequestUri.AbsoluteUri);
- }
- };
+ o.BackchannelHttpHandler = CreateBackchannel();
});
var properties = new AuthenticationProperties();
@@ -1439,29 +1284,20 @@ namespace Microsoft.AspNetCore.Authentication.Google
{
access_token = "Test Access Token",
expires_in = 3600,
- token_type = "Bearer"
+ token_type = "Bearer",
+ refresh_token = "Test Refresh Token"
});
}
- else if (req.RequestUri.GetComponents(UriComponents.SchemeAndServer | UriComponents.Path, UriFormat.UriEscaped) == "https://www.googleapis.com/plus/v1/people/me")
+ else if (req.RequestUri.GetComponents(UriComponents.SchemeAndServer | UriComponents.Path, UriFormat.UriEscaped) == "https://www.googleapis.com/oauth2/v2/userinfo")
{
return ReturnJsonResponse(new
{
id = "Test User ID",
- displayName = "Test Name",
- name = new
- {
- familyName = "Test Family Name",
- givenName = "Test Given Name"
- },
- url = "Profile link",
- emails = new[]
- {
- new
- {
- value = "Test email",
- type = "account"
- }
- }
+ name = "Test Name",
+ given_name = "Test Given Name",
+ family_name = "Test Family Name",
+ link = "Profile link",
+ email = "Test email",
});
}
diff --git a/src/Security/Security.sln b/src/Security/Security.sln
index b8aa6968a4..3d36597db9 100644
--- a/src/Security/Security.sln
+++ b/src/Security/Security.sln
@@ -96,12 +96,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Diagno
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.StaticFiles", "..\Middleware\StaticFiles\src\Microsoft.AspNetCore.StaticFiles.csproj", "{6FFBD7CD-2B7D-4EC9-8D18-54E53F852B04}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration", "..\Servers\IIS\IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj", "{43AF597A-FCB8-41A5-8279-345FEE9A61AD}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.Kestrel", "..\Servers\Kestrel\Kestrel\src\Microsoft.AspNetCore.Server.Kestrel.csproj", "{707CBFB4-4D35-479E-9BAF-39B4DA9782DE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.Kestrel.Https", "..\Servers\Kestrel\Https\src\Microsoft.AspNetCore.Server.Kestrel.Https.csproj", "{AFE880E8-2E9E-46FD-BE87-DFC8192E7B2D}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration", "..\Servers\IIS\IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj", "{81D0E81F-4711-4C7B-BBD4-E168102D0D7D}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -236,10 +236,6 @@ Global
{6FFBD7CD-2B7D-4EC9-8D18-54E53F852B04}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6FFBD7CD-2B7D-4EC9-8D18-54E53F852B04}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6FFBD7CD-2B7D-4EC9-8D18-54E53F852B04}.Release|Any CPU.Build.0 = Release|Any CPU
- {43AF597A-FCB8-41A5-8279-345FEE9A61AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {43AF597A-FCB8-41A5-8279-345FEE9A61AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {43AF597A-FCB8-41A5-8279-345FEE9A61AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {43AF597A-FCB8-41A5-8279-345FEE9A61AD}.Release|Any CPU.Build.0 = Release|Any CPU
{707CBFB4-4D35-479E-9BAF-39B4DA9782DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{707CBFB4-4D35-479E-9BAF-39B4DA9782DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{707CBFB4-4D35-479E-9BAF-39B4DA9782DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -248,6 +244,10 @@ Global
{AFE880E8-2E9E-46FD-BE87-DFC8192E7B2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AFE880E8-2E9E-46FD-BE87-DFC8192E7B2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AFE880E8-2E9E-46FD-BE87-DFC8192E7B2D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {81D0E81F-4711-4C7B-BBD4-E168102D0D7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {81D0E81F-4711-4C7B-BBD4-E168102D0D7D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {81D0E81F-4711-4C7B-BBD4-E168102D0D7D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {81D0E81F-4711-4C7B-BBD4-E168102D0D7D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -295,9 +295,9 @@ Global
{B6CA96E4-674A-4616-9A38-DED07BE458E1} = {A3766414-EB5C-40F7-B031-121804ED5D0A}
{54CBBAED-36D5-4855-BB4E-D1AE3523AA23} = {A3766414-EB5C-40F7-B031-121804ED5D0A}
{6FFBD7CD-2B7D-4EC9-8D18-54E53F852B04} = {A3766414-EB5C-40F7-B031-121804ED5D0A}
- {43AF597A-FCB8-41A5-8279-345FEE9A61AD} = {A3766414-EB5C-40F7-B031-121804ED5D0A}
{707CBFB4-4D35-479E-9BAF-39B4DA9782DE} = {A3766414-EB5C-40F7-B031-121804ED5D0A}
{AFE880E8-2E9E-46FD-BE87-DFC8192E7B2D} = {A3766414-EB5C-40F7-B031-121804ED5D0A}
+ {81D0E81F-4711-4C7B-BBD4-E168102D0D7D} = {A3766414-EB5C-40F7-B031-121804ED5D0A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {ABF8089E-43D0-4010-84A7-7A9DCFE49357}
diff --git a/src/SiteExtensions/LoggingBranch/Directory.Build.targets b/src/SiteExtensions/LoggingBranch/Directory.Build.targets
new file mode 100644
index 0000000000..df33ae31f1
--- /dev/null
+++ b/src/SiteExtensions/LoggingBranch/Directory.Build.targets
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+ false
+
+ false
+
+ false
+
+ true
+
+ false
+
+ false
+ false
+
+
+
+
+
+ NuGetPackage
+ $(PackageId)
+ $(PackageVersion)
+
+
+
+
+
diff --git a/src/SiteExtensions/LoggingBranch/LoggingBranch.csproj b/src/SiteExtensions/LoggingBranch/LoggingBranch.csproj
new file mode 100644
index 0000000000..0fae8e658a
--- /dev/null
+++ b/src/SiteExtensions/LoggingBranch/LoggingBranch.csproj
@@ -0,0 +1,33 @@
+
+
+
+ $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)
+ ASP.NET Core Extensions
+ This extension enables additional functionality for ASP.NET Core on Azure WebSites, such as enabling Azure logging.
+ net461
+ false
+ aspnet;logging;aspnetcore;AzureSiteExtension;keyvault;configuration;dataprotection
+ content
+ Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(TrimmedVersion)
+ $(PackageVersion)
+ $(MicrosoftNETCoreApp21PackageVersion)
+ net461
+ false
+ AzureSiteExtension
+ true
+ false
+ false
+ false
+ content
+ true
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/SiteExtensions/Sdk/HostingStartup/HostingStartup.csproj b/src/SiteExtensions/Sdk/HostingStartup/HostingStartup.csproj
new file mode 100644
index 0000000000..59cdf76e60
--- /dev/null
+++ b/src/SiteExtensions/Sdk/HostingStartup/HostingStartup.csproj
@@ -0,0 +1,13 @@
+
+
+
+ netcoreapp2.1
+ Exe
+
+
+
+
+
+
+
+
diff --git a/src/SiteExtensions/Sdk/HostingStartup/Program.cs b/src/SiteExtensions/Sdk/HostingStartup/Program.cs
new file mode 100644
index 0000000000..8cd3c0026c
--- /dev/null
+++ b/src/SiteExtensions/Sdk/HostingStartup/Program.cs
@@ -0,0 +1,7 @@
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+public class Program
+{
+ public static void Main() { }
+}
\ No newline at end of file
diff --git a/src/SiteExtensions/Sdk/SiteExtension.targets b/src/SiteExtensions/Sdk/SiteExtension.targets
new file mode 100644
index 0000000000..6e941d74ac
--- /dev/null
+++ b/src/SiteExtensions/Sdk/SiteExtension.targets
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+ <_TemplatesDirectory>$(MSBuildThisFileDirectory)..\content\
+ <_DepsOutputDirectory>$(RepositoryRoot).w\se\
+ <_WorkingDirectory>$(_DepsOutputDirectory)\depswork
+ <_BasePackagePath>content\additionaldeps\
+ <_RuntimeStoreManifestFile>$(_DepsOutputDirectory)\rs.csproj
+ <_RuntimeStoreOutput>$(_DepsOutputDirectory)\rs\
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+ <_TemplateFiles Include="$(MSBuildThisFileDirectory)\HostingStartup\*.cs*" />
+ <_HostingStartupPackageReference
+ Include="%(HostingStartupPackageReference.Identity)"
+ Source="%(HostingStartupPackageReference.Source)"
+ Version="%(HostingStartupPackageReference.Version)"
+ WorkingDirectory="$(_DepsOutputDirectory)%(HostingStartupPackageReference.Identity)"
+ Project="$(_DepsOutputDirectory)%(HostingStartupPackageReference.Identity)\HostingStartup.csproj"
+ DepsFile="$(_DepsOutputDirectory)%(HostingStartupPackageReference.Identity)\p\HostingStartup.deps.json"
+ TrimmedDepsFile="$(_DepsOutputDirectory)%(HostingStartupPackageReference.Identity)\%(HostingStartupPackageReference.Identity).deps.json"
+ PackagePath="$(_BasePackagePath)%(HostingStartupPackageReference.Identity)\shared\Microsoft.AspNetCore.App\$(MicrosoftAspNetCoreAppPackageVersion)\"
+ />
+
+
+
+
+
+
+
+ <_CommonProperties>
+ AspNetUniverseBuildOffline=true;
+ DotNetRestoreSourcePropsPath=$(DotNetRestoreSourcePropsPath);
+ DotNetPackageVersionPropsPath=$(DotNetPackageVersionPropsPath);
+ BuildNumber=$(BuildNumber);
+ Configuration=$(Configuration);
+ IsFinalBuild=$(IsFinalBuild);
+ MicrosoftAspNetCoreAppPackageVersion=$(MicrosoftAspNetCoreAppPackageVersion);
+ RuntimeFrameworkVersion=$(HostingStartupRuntimeFrameworkVersion);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RuntimeStoreFiles Include="$(_RuntimeStoreOutput)\%(HostingStartupRuntimeStoreTargets.Runtime)\**\*.dll" />
+
+
+
+
+
+
+
+