diff --git a/build/CodeSign.props b/build/CodeSign.props
index f5faecf4b5..73938c6365 100644
--- a/build/CodeSign.props
+++ b/build/CodeSign.props
@@ -55,6 +55,10 @@
+
+
+
+
diff --git a/build/SharedFx.targets b/build/SharedFx.targets
index a947def3bd..c15774aeb4 100644
--- a/build/SharedFx.targets
+++ b/build/SharedFx.targets
@@ -19,7 +19,7 @@
-
+
diff --git a/build/artifacts.props b/build/artifacts.props
index 662350e960..512c58b689 100644
--- a/build/artifacts.props
+++ b/build/artifacts.props
@@ -93,7 +93,6 @@ This can be done once #4246 is complete, and done in conjunction with converting
-
diff --git a/src/AzureIntegration/AzureIntegration.sln b/src/AzureIntegration/AzureIntegration.sln
index cc9ac83c23..4ae8e28927 100644
--- a/src/AzureIntegration/AzureIntegration.sln
+++ b/src/AzureIntegration/AzureIntegration.sln
@@ -1,6 +1,7 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27016.1
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28315.86
MinimumVisualStudioVersion = 15.0.26730.03
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.AzureAppServicesIntegration", "src\Microsoft.AspNetCore.AzureAppServicesIntegration\Microsoft.AspNetCore.AzureAppServicesIntegration.csproj", "{5916BEB5-0969-469B-976C-A392E015DFAC}"
EndProject
@@ -32,18 +33,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.AzureA
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AzureAppServicesHostingStartupSample", "sample\AzureAppServicesHostingStartupSample\AzureAppServicesHostingStartupSample.csproj", "{939EA897-CA31-4F2E-BA51-22B570B64671}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Web.Xdt.Extensions", "src\Microsoft.Web.Xdt.Extensions\Microsoft.Web.Xdt.Extensions.csproj", "{9B22E525-FEC9-4C7C-9F9C-598C15BD0250}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.AzureAppServices.SiteExtension", "extensions\Microsoft.AspNetCore.AzureAppServices.SiteExtension\Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj", "{1CE2D76B-39E6-46C0-8F6F-C63E370955A9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Web.Xdt.Extensions.Tests", "test\Microsoft.Web.Xdt.Extensions.Tests\Microsoft.Web.Xdt.Extensions.Tests.csproj", "{809AEE05-1B28-4E31-8959-776B249BD725}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.ApplicationModelDetection", "src\Microsoft.Extensions.ApplicationModelDetection\Microsoft.Extensions.ApplicationModelDetection.csproj", "{F0CABFE8-A5B1-487B-A451-A486D26742D3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.ApplicationModelDetection.Tests", "test\Microsoft.Extensions.ApplicationModelDetection.Tests\Microsoft.Extensions.ApplicationModelDetection.Tests.csproj", "{15664836-2B94-4D2D-AC18-6DED01FCCCBD}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Runtime.SiteExtension", "extensions\Microsoft.AspNetCore.Runtime.SiteExtension\Microsoft.AspNetCore.Runtime.SiteExtension.csproj", "{E1E9BC7A-6951-4B60-8DFB-DBB9AC3CDEB0}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -70,18 +63,6 @@ Global
{939EA897-CA31-4F2E-BA51-22B570B64671}.Debug|Any CPU.Build.0 = Debug|Any CPU
{939EA897-CA31-4F2E-BA51-22B570B64671}.Release|Any CPU.ActiveCfg = Release|Any CPU
{939EA897-CA31-4F2E-BA51-22B570B64671}.Release|Any CPU.Build.0 = Release|Any CPU
- {9B22E525-FEC9-4C7C-9F9C-598C15BD0250}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9B22E525-FEC9-4C7C-9F9C-598C15BD0250}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9B22E525-FEC9-4C7C-9F9C-598C15BD0250}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9B22E525-FEC9-4C7C-9F9C-598C15BD0250}.Release|Any CPU.Build.0 = Release|Any CPU
- {1CE2D76B-39E6-46C0-8F6F-C63E370955A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1CE2D76B-39E6-46C0-8F6F-C63E370955A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1CE2D76B-39E6-46C0-8F6F-C63E370955A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1CE2D76B-39E6-46C0-8F6F-C63E370955A9}.Release|Any CPU.Build.0 = Release|Any CPU
- {809AEE05-1B28-4E31-8959-776B249BD725}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {809AEE05-1B28-4E31-8959-776B249BD725}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {809AEE05-1B28-4E31-8959-776B249BD725}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {809AEE05-1B28-4E31-8959-776B249BD725}.Release|Any CPU.Build.0 = Release|Any CPU
{F0CABFE8-A5B1-487B-A451-A486D26742D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F0CABFE8-A5B1-487B-A451-A486D26742D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F0CABFE8-A5B1-487B-A451-A486D26742D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -90,10 +71,6 @@ Global
{15664836-2B94-4D2D-AC18-6DED01FCCCBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{15664836-2B94-4D2D-AC18-6DED01FCCCBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15664836-2B94-4D2D-AC18-6DED01FCCCBD}.Release|Any CPU.Build.0 = Release|Any CPU
- {E1E9BC7A-6951-4B60-8DFB-DBB9AC3CDEB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E1E9BC7A-6951-4B60-8DFB-DBB9AC3CDEB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E1E9BC7A-6951-4B60-8DFB-DBB9AC3CDEB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E1E9BC7A-6951-4B60-8DFB-DBB9AC3CDEB0}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -104,12 +81,8 @@ Global
{9BA1B692-B313-4E22-A864-F0ADBBE3C3FA} = {CD650B4B-81C2-4A44-AEF2-A251A877C1F0}
{AC023B45-7995-4D4A-8108-E512AE8E5734} = {FF9B744E-6C59-40CC-9E41-9D2EBD292435}
{939EA897-CA31-4F2E-BA51-22B570B64671} = {37237C93-6855-40D9-9E60-418B093EF49A}
- {9B22E525-FEC9-4C7C-9F9C-598C15BD0250} = {FF9B744E-6C59-40CC-9E41-9D2EBD292435}
- {1CE2D76B-39E6-46C0-8F6F-C63E370955A9} = {FF9B744E-6C59-40CC-9E41-9D2EBD292435}
- {809AEE05-1B28-4E31-8959-776B249BD725} = {CD650B4B-81C2-4A44-AEF2-A251A877C1F0}
{F0CABFE8-A5B1-487B-A451-A486D26742D3} = {FF9B744E-6C59-40CC-9E41-9D2EBD292435}
{15664836-2B94-4D2D-AC18-6DED01FCCCBD} = {CD650B4B-81C2-4A44-AEF2-A251A877C1F0}
- {E1E9BC7A-6951-4B60-8DFB-DBB9AC3CDEB0} = {FF9B744E-6C59-40CC-9E41-9D2EBD292435}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {5743DFE7-1AA5-439D-84AE-A480EA389927}
diff --git a/src/AzureIntegration/extensions/Directory.Build.props b/src/AzureIntegration/extensions/Directory.Build.props
deleted file mode 100644
index d333f1a2b7..0000000000
--- a/src/AzureIntegration/extensions/Directory.Build.props
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- net461
- false
- AzureSiteExtension
- true
- false
- false
- false
- content
-
- $(NoWarn);NU5119
-
-
-
-
-
-
diff --git a/src/AzureIntegration/extensions/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj b/src/AzureIntegration/extensions/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj
deleted file mode 100644
index 00f21b9bae..0000000000
--- a/src/AzureIntegration/extensions/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
- $(VersionPrefix.Substring(0, $(VersionPrefix.LastIndexOf('.'))))
- ASP.NET Core Extensions
- This extension enables additional functionality for ASP.NET Core on Azure WebSites, such as enabling Azure logging.
- netcoreapp3.0
- false
- aspnet;logging;aspnetcore;AzureSiteExtension;keyvault;configuration;dataprotection
- content
- $(MicrosoftNETCoreAppPackageVersion)
- Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(TrimmedVersion)
-
-
-
-
-
-
-
-
-
diff --git a/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/Microsoft.AspNetCore.Runtime.SiteExtension.csproj b/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/Microsoft.AspNetCore.Runtime.SiteExtension.csproj
deleted file mode 100644
index e971d8aa28..0000000000
--- a/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/Microsoft.AspNetCore.Runtime.SiteExtension.csproj
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
- $(VersionPrefix.Substring(0, $(VersionPrefix.LastIndexOf('.'))))
- ASP.NET Core $(TrimmedVersion) ($(RuntimeArch)) Runtime
- This site extension installs Microsoft.AspNetCore.All, Microsoft.AspNetCore.App and Microsoft.NetCore.App shared runtimes.
- aspnetcore;AzureSiteExtension
- AspNetCoreRuntime.$(TrimmedVersion).$(RuntimeArch)
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/applicationHost.xdt b/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/applicationHost.xdt
deleted file mode 100644
index 159bc8d646..0000000000
--- a/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/applicationHost.xdt
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/install.cmd b/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/install.cmd
deleted file mode 100644
index bdca3efa75..0000000000
--- a/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/install.cmd
+++ /dev/null
@@ -1,16 +0,0 @@
-FOR /R %%x IN (*.nupkg_) DO REN "%%x" "*.nupkg"
-
-
-SET DOTNET=D:\Program Files (x86)\dotnet
-SET RUNTIMES=%DOTNET%\shared\Microsoft.NETCore.App
-
-IF "%ASPNETCORE_COPY_EXISTING_RUNTIMES%" NEQ "1" EXIT /b 0
-
-robocopy "%DOTNET%" "." /E /XC /XN /XO /NFL /NDL ^
- /XD "%DOTNET%\sdk" ^
- /XD "%RUNTIMES%\1.0.8" ^
- /XD "%RUNTIMES%\1.1.5" ^
- /XD "%RUNTIMES%\2.0.3"
-
-IF %errorlevel% geq 8 EXIT /b 1
-EXIT /b 0
\ No newline at end of file
diff --git a/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/scmApplicationHost.xdt b/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/scmApplicationHost.xdt
deleted file mode 100644
index a8dd367f9f..0000000000
--- a/src/AzureIntegration/extensions/Microsoft.AspNetCore.Runtime.SiteExtension/scmApplicationHost.xdt
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/src/AzureIntegration/src/Microsoft.Web.Xdt.Extensions/Microsoft.Web.Xdt.Extensions.csproj b/src/AzureIntegration/src/Microsoft.Web.Xdt.Extensions/Microsoft.Web.Xdt.Extensions.csproj
deleted file mode 100644
index 21c67cfb14..0000000000
--- a/src/AzureIntegration/src/Microsoft.Web.Xdt.Extensions/Microsoft.Web.Xdt.Extensions.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- Additional functionality for Xdt transforms.
- net461
- true
- xdt
-
-
-
-
-
-
-
diff --git a/src/SiteExtensions/Directory.Build.props b/src/SiteExtensions/Directory.Build.props
new file mode 100644
index 0000000000..51a165b974
--- /dev/null
+++ b/src/SiteExtensions/Directory.Build.props
@@ -0,0 +1,8 @@
+
+
+
+
+ $(RepositoryRoot)obj\$(MSBuildProjectName)\
+ $(RepositoryRoot)bin\$(MSBuildProjectName)\
+
+
\ No newline at end of file
diff --git a/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj b/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj
index 4b8b8f0762..f5bffd73e1 100644
--- a/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj
+++ b/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj
@@ -23,7 +23,7 @@
-
+
-
+
diff --git a/src/SiteExtensions/LoggingBranch/Directory.Build.targets b/src/SiteExtensions/LoggingBranch/Directory.Build.targets
index 5cc0a54a27..920f1867f5 100644
--- a/src/SiteExtensions/LoggingBranch/Directory.Build.targets
+++ b/src/SiteExtensions/LoggingBranch/Directory.Build.targets
@@ -2,6 +2,8 @@
+
+
false
diff --git a/src/SiteExtensions/LoggingBranch/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj b/src/SiteExtensions/LoggingBranch/LoggingBranch.csproj
similarity index 93%
rename from src/SiteExtensions/LoggingBranch/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj
rename to src/SiteExtensions/LoggingBranch/LoggingBranch.csproj
index 5ec947b99d..eb384a35df 100644
--- a/src/SiteExtensions/LoggingBranch/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj
+++ b/src/SiteExtensions/LoggingBranch/LoggingBranch.csproj
@@ -28,7 +28,6 @@
-
Pack
diff --git a/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/InsertOrAppendAttribute.cs b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/InsertOrAppendAttribute.cs
deleted file mode 100644
index c2e711cb93..0000000000
--- a/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/InsertOrAppendAttribute.cs
+++ /dev/null
@@ -1,144 +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.Xml;
-using Microsoft.Web.XmlTransform;
-
-namespace Microsoft.Web.Xdt.Extensions
-{
- ///
- /// Insert or append to the given attribute
- ///
- public class InsertOrAppendAttribute : Transform
- {
- ///
- ///
- ///
- public InsertOrAppendAttribute()
- : base(TransformFlags.UseParentAsTargetNode, MissingTargetMessage.Error)
- {
- }
-
- private string _attributeName;
-
- ///
- ///
- ///
- protected string AttributeName
- {
- get
- {
- if (_attributeName == null)
- {
- _attributeName = GetArgumentValue("Attribute");
- }
- return _attributeName;
- }
- }
-
- ///
- /// Extracts a value from the arguments provided
- ///
- ///
- ///
- protected string GetArgumentValue(string name)
- {
- if (string.IsNullOrEmpty(name))
- {
- throw new ArgumentNullException(nameof(name));
- }
-
- string result = null;
- if (Arguments != null && Arguments.Count > 0)
- {
- foreach (var arg in Arguments)
- {
- if (!string.IsNullOrEmpty(arg))
- {
- var trimmedArg = arg.Trim();
- if (trimmedArg.StartsWith(name, StringComparison.OrdinalIgnoreCase))
- {
- var start = arg.IndexOf('\'');
- var last = arg.LastIndexOf('\'');
- if (start <= 0 || last <= 0 || last <= start)
- {
- throw new ArgumentException("Expected two ['] characters");
- }
-
- var value = trimmedArg.Substring(start, last - start);
-
- // remove any leading or trailing '
- value = value.Trim().TrimStart('\'').TrimStart('\'');
- result = value;
- }
- }
- }
- }
- return result;
- }
-
- ///
- ///
- ///
- protected override void Apply()
- {
- if (TargetChildNodes == null || TargetChildNodes.Count == 0)
- {
- TargetNode.AppendChild(TransformNode);
- }
- else
- {
- XmlAttribute transformAtt = null;
-
- foreach (XmlAttribute att in TransformNode.Attributes)
- {
- if (string.Equals(att.Name, AttributeName, StringComparison.OrdinalIgnoreCase))
- {
- transformAtt = att;
- break;
- }
- }
-
- if (transformAtt == null)
- {
- throw new InvalidOperationException("No target attribute to append");
- }
-
- foreach (XmlNode targetNode in TargetChildNodes)
- {
- var foundAttribute = false;
- foreach (XmlAttribute att in targetNode.Attributes)
- {
- if (string.Equals(att.Name, AttributeName, StringComparison.OrdinalIgnoreCase))
- {
- foundAttribute = true;
- if (string.IsNullOrEmpty(att.Value))
- {
- att.Value = transformAtt.Value;
- }
- else
- {
- // TODO: This doesn't compose well with insertOrAppend being applied on the TargetNode.
- // The target node is created with the children it has in the transform, which means we would
- // duplicate the value here.
- if (att.Value == transformAtt.Value)
- {
- return;
- }
- att.Value = $"{att.Value};{transformAtt.Value}";
- }
- }
- }
-
- if (!foundAttribute)
- {
- var attribute = targetNode.OwnerDocument.CreateAttribute(AttributeName);
- attribute.Value = transformAtt.Value;
- targetNode.Attributes.Append(attribute);
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/baseline.netframework.json b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/baseline.netframework.json
deleted file mode 100644
index 202b401f50..0000000000
--- a/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/baseline.netframework.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "AssemblyIdentity": "Microsoft.Web.Xdt.Extensions, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60",
- "Types": [
- {
- "Name": "Microsoft.Web.Xdt.Extensions.InsertOrAppendAttribute",
- "Visibility": "Public",
- "Kind": "Class",
- "BaseType": "Microsoft.Web.XmlTransform.Transform",
- "ImplementedInterfaces": [],
- "Members": [
- {
- "Kind": "Method",
- "Name": "get_AttributeName",
- "Parameters": [],
- "ReturnType": "System.String",
- "Visibility": "Protected",
- "GenericParameter": []
- },
- {
- "Kind": "Method",
- "Name": "GetArgumentValue",
- "Parameters": [
- {
- "Name": "name",
- "Type": "System.String"
- }
- ],
- "ReturnType": "System.String",
- "Visibility": "Protected",
- "GenericParameter": []
- },
- {
- "Kind": "Method",
- "Name": "Apply",
- "Parameters": [],
- "ReturnType": "System.Void",
- "Virtual": true,
- "Override": true,
- "Visibility": "Protected",
- "GenericParameter": []
- },
- {
- "Kind": "Constructor",
- "Name": ".ctor",
- "Parameters": [],
- "Visibility": "Public",
- "GenericParameter": []
- }
- ],
- "GenericParameters": []
- }
- ]
-}
\ No newline at end of file
diff --git a/src/AzureIntegration/src/Microsoft.Web.Xdt.Extensions/InsertOrAppendAttribute.cs b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/InsertOrAppendAttribute.cs
similarity index 100%
rename from src/AzureIntegration/src/Microsoft.Web.Xdt.Extensions/InsertOrAppendAttribute.cs
rename to src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/InsertOrAppendAttribute.cs
diff --git a/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/Microsoft.Web.Xdt.Extensions.csproj b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/Microsoft.Web.Xdt.Extensions.csproj
similarity index 100%
rename from src/SiteExtensions/Microsoft.Web.Xdt.Extensions/Microsoft.Web.Xdt.Extensions.csproj
rename to src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/Microsoft.Web.Xdt.Extensions.csproj
diff --git a/src/AzureIntegration/src/Microsoft.Web.Xdt.Extensions/baseline.netframework.json b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/baseline.netframework.json
similarity index 100%
rename from src/AzureIntegration/src/Microsoft.Web.Xdt.Extensions/baseline.netframework.json
rename to src/SiteExtensions/Microsoft.Web.Xdt.Extensions/src/baseline.netframework.json
diff --git a/src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/InsertOrAppendAttributeTests.cs b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/InsertOrAppendAttributeTests.cs
similarity index 100%
rename from src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/InsertOrAppendAttributeTests.cs
rename to src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/InsertOrAppendAttributeTests.cs
diff --git a/src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/Microsoft.Web.Xdt.Extensions.Tests.csproj b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/Microsoft.Web.Xdt.Extensions.Tests.csproj
similarity index 100%
rename from src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/Microsoft.Web.Xdt.Extensions.Tests.csproj
rename to src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/Microsoft.Web.Xdt.Extensions.Tests.csproj
diff --git a/src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/config_empty.xml b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/config_empty.xml
similarity index 100%
rename from src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/config_empty.xml
rename to src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/config_empty.xml
diff --git a/src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/config_existingemptyvalue.xml b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/config_existingemptyvalue.xml
similarity index 100%
rename from src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/config_existingemptyvalue.xml
rename to src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/config_existingemptyvalue.xml
diff --git a/src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/config_existingline.xml b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/config_existingline.xml
similarity index 100%
rename from src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/config_existingline.xml
rename to src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/config_existingline.xml
diff --git a/src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/config_existingvalue.xml b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/config_existingvalue.xml
similarity index 100%
rename from src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/config_existingvalue.xml
rename to src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/config_existingvalue.xml
diff --git a/src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/transform.xdt b/src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/transform.xdt
similarity index 100%
rename from src/AzureIntegration/test/Microsoft.Web.Xdt.Extensions.Tests/transform.xdt
rename to src/SiteExtensions/Microsoft.Web.Xdt.Extensions/tests/transform.xdt
diff --git a/src/SiteExtensions/Runtime/Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj b/src/SiteExtensions/Runtime/Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj
index 8cb4c17161..2781d836cf 100644
--- a/src/SiteExtensions/Runtime/Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj
+++ b/src/SiteExtensions/Runtime/Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj
@@ -19,7 +19,7 @@
-
+
@@ -33,7 +33,7 @@
-
+
diff --git a/src/SiteExtensions/Sdk/HostingStartup/HostingStartup.csproj b/src/SiteExtensions/Sdk/HostingStartup/HostingStartup.csproj
new file mode 100644
index 0000000000..be2bed7fc8
--- /dev/null
+++ b/src/SiteExtensions/Sdk/HostingStartup/HostingStartup.csproj
@@ -0,0 +1,13 @@
+
+
+
+ netcoreapp3.0
+ 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..c7627c3012
--- /dev/null
+++ b/src/SiteExtensions/Sdk/SiteExtension.targets
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+ <_TemplatesDirectory>$(MSBuildThisFileDirectory)..\content\
+ <_DepsOutputDirectory>$(IntermediateOutputPath)\se\
+ <_WorkingDirectory>$(_DepsOutputDirectory)\depswork
+ <_BasePackagePath>content\additionaldeps\
+ <_RuntimeStoreManifestFile>$(_DepsOutputDirectory)\rs.csproj
+ <_RuntimeStoreOutput>$(_DepsOutputDirectory)\rs\
+
+
+
+ netcoreapp3.0
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+ <_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)\"
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RuntimeStoreFiles Include="$(_RuntimeStoreOutput)\%(HostingStartupRuntimeStoreTargets.Runtime)\**\*.dll" />
+
+
+
+
+
+
+
+