diff --git a/Directory.Build.props b/Directory.Build.props
index 440c9d79a85b..4eb0a65e9290 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -93,6 +93,9 @@
false
+
+ true
+
-
$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0.0
@@ -155,6 +154,7 @@
+
diff --git a/NuGet.config b/NuGet.config
index 4d7d2836aed2..f4fb72027851 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -3,22 +3,18 @@
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
diff --git a/eng/GenAPI.exclusions.txt b/eng/GenAPI.exclusions.txt
index ebabc0ac7de5..0c4ce95fc2cb 100644
--- a/eng/GenAPI.exclusions.txt
+++ b/eng/GenAPI.exclusions.txt
@@ -2,4 +2,11 @@
T:Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame
# Manually implemented - https://github.com/dotnet/arcade/issues/2066
T:Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel
-T:Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel
\ No newline at end of file
+T:Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel
+# Manually implemented - Need to include internal setter
+T:Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider
+F:Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider.{Cache}k__BackingField
+M:Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider.#ctor
+P:Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider.Cache
+M:Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider.get_Cache
+M:Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider.set_Cache(Microsoft.Extensions.Caching.Memory.IMemoryCache)
\ No newline at end of file
diff --git a/eng/IndirectReferences.props b/eng/IndirectReferences.props
new file mode 100644
index 000000000000..c57e61024d47
--- /dev/null
+++ b/eng/IndirectReferences.props
@@ -0,0 +1,10911 @@
+
+
+
+ <_RefsToCheck Include="@(Reference->'%(Identity)')"/>
+ <_ProjectRefsToCheck Include="@(ProjectReference)" Exclude="@(ProjectReference->WithMetadataValue('ReferenceOutputAssembly', 'false'))" />
+ <_RefsToCheck Include="@(ProjectReference->'%(Filename)')"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index bc99f09ed7e7..1ce977ca9fc3 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -9,9 +9,9 @@
-->
-
+
https://github.com/aspnet/Blazor
- 348e050ecd9bd8924581afb677089ae5e2d5e508
+ c606594a0e5ebc36636d36e418ee0e189ce7a012
https://github.com/aspnet/AspNetCore-Tooling
@@ -29,269 +29,269 @@
https://github.com/aspnet/AspNetCore-Tooling
4ef35e11af80a5907438d1a715e51803acf1077c
-
+
https://github.com/aspnet/EntityFrameworkCore
- b403b17b493cb96059bdc3ef01d184a0213293f2
+ e2fe2f425e976394d933ad5fcf304fd3de6759f5
-
+
https://github.com/aspnet/EntityFrameworkCore
- b403b17b493cb96059bdc3ef01d184a0213293f2
+ e2fe2f425e976394d933ad5fcf304fd3de6759f5
-
+
https://github.com/aspnet/EntityFrameworkCore
- b403b17b493cb96059bdc3ef01d184a0213293f2
+ e2fe2f425e976394d933ad5fcf304fd3de6759f5
-
+
https://github.com/aspnet/EntityFrameworkCore
- b403b17b493cb96059bdc3ef01d184a0213293f2
+ e2fe2f425e976394d933ad5fcf304fd3de6759f5
-
+
https://github.com/aspnet/EntityFrameworkCore
- b403b17b493cb96059bdc3ef01d184a0213293f2
+ e2fe2f425e976394d933ad5fcf304fd3de6759f5
-
+
https://github.com/aspnet/EntityFrameworkCore
- b403b17b493cb96059bdc3ef01d184a0213293f2
+ e2fe2f425e976394d933ad5fcf304fd3de6759f5
-
+
https://github.com/aspnet/EntityFrameworkCore
- b403b17b493cb96059bdc3ef01d184a0213293f2
+ e2fe2f425e976394d933ad5fcf304fd3de6759f5
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
https://github.com/dotnet/corefx
@@ -381,25 +381,30 @@
https://github.com/dotnet/corefx
4ac4c0367003fe3973a3648eb0715ddb0e3bbcea
-
- https://github.com/dotnet/core-setup
- 7d57652f33493fa022125b7f63aad0d70c52d810
-
-
+
https://github.com/dotnet/core-setup
- 7d57652f33493fa022125b7f63aad0d70c52d810
+ 903ca49e3ffddc551e12d2f94d7cca95f9a340bf
-
+
https://github.com/dotnet/core-setup
- 7d57652f33493fa022125b7f63aad0d70c52d810
+ 903ca49e3ffddc551e12d2f94d7cca95f9a340bf
https://github.com/dotnet/core-setup
- 7d57652f33493fa022125b7f63aad0d70c52d810
+ 903ca49e3ffddc551e12d2f94d7cca95f9a340bf
+
+
+
+ https://github.com/dotnet/core-setup
+ 903ca49e3ffddc551e12d2f94d7cca95f9a340bf
+
+
+ https://github.com/aspnet/Extensions
+ 0b951c16de0f39e13cce8372e11c28eb90576662
@@ -408,25 +413,25 @@
https://github.com/dotnet/corefx
4ac4c0367003fe3973a3648eb0715ddb0e3bbcea
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
-
+
https://github.com/dotnet/arcade
- f8546fbab59a74a66c83b8cb76b3f6877ce1d374
+ 0e9ffd6464aff37aef2dc41dc2162d258f266e32
-
+
https://github.com/dotnet/arcade
- f8546fbab59a74a66c83b8cb76b3f6877ce1d374
+ 0e9ffd6464aff37aef2dc41dc2162d258f266e32
-
+
https://github.com/dotnet/arcade
- f8546fbab59a74a66c83b8cb76b3f6877ce1d374
+ 0e9ffd6464aff37aef2dc41dc2162d258f266e32
-
+
https://github.com/aspnet/Extensions
- 0b951c16de0f39e13cce8372e11c28eb90576662
+ 40c00020ac632006c9db91383de246226f9cb44a
https://github.com/dotnet/roslyn
diff --git a/eng/Versions.props b/eng/Versions.props
index 2807f945887e..32eab2e35ed9 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -22,6 +22,8 @@
9
preview$(BlazorClientPreReleasePreviewNumber)
$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)
+
+ 3.0.0
false
- 1.0.0-beta.19462.4
+ 1.0.0-beta.19474.3
3.3.1-beta4-19462-11
- 3.0.0
- 3.0.0
- 3.0.0
+ 3.0.1
+ 3.0.1
+ 3.0.1
2.1.0
1.0.0
@@ -98,77 +100,77 @@
3.0.0
- 3.0.0-preview9.19462.2
+ 3.0.0-preview9.19503.2
- 3.0.0-rc2.19463.5
- 3.0.0-rc2.19463.5
- 3.0.0-rc2.19463.5
- 3.0.0-rc2.19463.5
- 3.0.0-rc2.19463.5
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0-rc2.19463.5
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0-rc2.19463.5
- 3.0.0
- 3.0.0
- 3.0.0-rc2.19463.5
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0-rc2.19463.5
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0-rc2.19463.5
- 3.0.0
- 3.0.0-rc2.19463.5
- 3.0.0-rc2.19463.5
- 3.0.0
+ 3.0.1-servicing.19510.1
+ 3.0.1-servicing.19510.1
+ 3.0.1-servicing.19510.1
+ 3.0.1-servicing.19510.1
+ 3.0.1-servicing.19510.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1-servicing.19510.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1-servicing.19510.1
+ 3.0.1
+ 3.0.1
+ 3.0.1-servicing.19510.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1-servicing.19510.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1-servicing.19510.1
+ 3.0.1
+ 3.0.1-servicing.19510.1
+ 3.0.1-servicing.19510.1
+ 3.0.1
3.0.0-rc2.19463.5
- 3.0.0
- 3.0.0
+ 3.0.1
+ 3.0.1
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
- 3.0.0
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
+ 3.0.1
3.0.1
3.0.1
diff --git a/eng/common/enable-cross-org-publishing.ps1 b/eng/common/enable-cross-org-publishing.ps1
new file mode 100644
index 000000000000..eccbf9f1b16d
--- /dev/null
+++ b/eng/common/enable-cross-org-publishing.ps1
@@ -0,0 +1,6 @@
+param(
+ [string] $token
+)
+
+Write-Host "##vso[task.setvariable variable=VSS_NUGET_ACCESSTOKEN]$token"
+Write-Host "##vso[task.setvariable variable=VSS_NUGET_URI_PREFIXES]https://dnceng.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/dnceng/;https://devdiv.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/devdiv/"
diff --git a/eng/common/sdl/extract-artifact-packages.ps1 b/eng/common/sdl/extract-artifact-packages.ps1
index 1fdbb14329c4..6e6825013bf5 100644
--- a/eng/common/sdl/extract-artifact-packages.ps1
+++ b/eng/common/sdl/extract-artifact-packages.ps1
@@ -5,6 +5,13 @@ param(
$ErrorActionPreference = "Stop"
Set-StrictMode -Version 2.0
+
+# `tools.ps1` checks $ci to perform some actions. Since the post-build
+# scripts don't necessarily execute in the same agent that run the
+# build.ps1/sh script this variable isn't automatically set.
+$ci = $true
+. $PSScriptRoot\..\tools.ps1
+
$ExtractPackage = {
param(
[string] $PackagePath # Full path to a NuGet package
diff --git a/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml b/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml
new file mode 100644
index 000000000000..cdb74031fcfc
--- /dev/null
+++ b/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml
@@ -0,0 +1,95 @@
+parameters:
+ artifactsPublishingAdditionalParameters: ''
+ publishInstallersAndChecksums: false
+
+stages:
+- stage: NetCore_3_Tools_Validation_Publish
+ dependsOn: validate
+ variables:
+ - template: ../common-variables.yml
+ displayName: .NET 3 Tools - Validation Publishing
+ jobs:
+ - template: ../setup-maestro-vars.yml
+
+ - job: publish_assets
+ displayName: Publish Assets
+ dependsOn: setupMaestroVars
+ variables:
+ - group: DotNet-Blob-Feed
+ - group: AzureDevOps-Artifact-Feeds-Pats
+ - name: BARBuildId
+ value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
+ - name: IsStableBuild
+ value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NETCore_3_Tools_Validation_Channel_Id))
+ pool:
+ vmImage: 'windows-2019'
+ steps:
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Package Artifacts
+ inputs:
+ buildType: current
+ artifactName: PackageArtifacts
+
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Blob Artifacts
+ inputs:
+ buildType: current
+ artifactName: BlobArtifacts
+
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Asset Manifests
+ inputs:
+ buildType: current
+ artifactName: AssetManifests
+
+ - task: NuGetToolInstaller@1
+ displayName: 'Install NuGet.exe'
+
+ # This is necessary whenever we want to publish/restore to an AzDO private feed
+ - task: NuGetAuthenticate@0
+ displayName: 'Authenticate to AzDO Feeds'
+
+ - task: PowerShell@2
+ displayName: Enable cross-org publishing
+ inputs:
+ filePath: eng\common\enable-cross-org-publishing.ps1
+ arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
+
+ - task: PowerShell@2
+ displayName: Publish Assets
+ inputs:
+ filePath: eng\common\sdk-task.ps1
+ arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
+ /p:ArtifactsCategory=$(_DotNetValidationArtifactsCategory)
+ /p:IsStableBuild=$(IsStableBuild)
+ /p:IsInternalBuild=$(IsInternalBuild)
+ /p:RepositoryName=$(Build.Repository.Name)
+ /p:CommitSha=$(Build.SourceVersion)
+ /p:NugetPath=$(NuGetExeToolPath)
+ /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-packages-rw)'
+ /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
+ /p:BARBuildId=$(BARBuildId)
+ /p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
+ /p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
+ /p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
+ /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
+ /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/'
+ /p:Configuration=Release
+ /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }}
+ /p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl)
+ /p:InstallersAzureAccountKey=$(dotnetcli-storage-key)
+ /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl)
+ /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key)
+ /p:PublishToAzureDevOpsNuGetFeeds=true
+ /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
+ /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
+ /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
+ /p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
+ /p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json'
+ /p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
+ ${{ parameters.artifactsPublishingAdditionalParameters }}
+
+ - template: ../../steps/promote-build.yml
+ parameters:
+ ChannelId: ${{ variables.NETCore_3_Tools_Validation_Channel_Id }}
diff --git a/eng/common/templates/post-build/channels/netcore-dev-30.yml b/eng/common/templates/post-build/channels/netcore-3-tools.yml
similarity index 82%
rename from eng/common/templates/post-build/channels/netcore-dev-30.yml
rename to eng/common/templates/post-build/channels/netcore-3-tools.yml
index 69f1a9013e04..70eec773e750 100644
--- a/eng/common/templates/post-build/channels/netcore-dev-30.yml
+++ b/eng/common/templates/post-build/channels/netcore-3-tools.yml
@@ -4,18 +4,18 @@ parameters:
publishInstallersAndChecksums: false
stages:
-- stage: NetCore_Dev30_Publish
+- stage: NetCore_3_Tools_Publish
dependsOn: validate
variables:
- template: ../common-variables.yml
- displayName: .NET Core 3.0 Dev Publishing
+ displayName: .NET 3 Tools Publishing
jobs:
- template: ../setup-maestro-vars.yml
- job:
displayName: Symbol Publishing
dependsOn: setupMaestroVars
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id))
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_3_Tools_Channel_Id))
variables:
- group: DotNet-Symbol-Server-Pats
pool:
@@ -56,7 +56,7 @@ stages:
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
- name: IsStableBuild
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id))
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_3_Tools_Channel_Id))
pool:
vmImage: 'windows-2019'
steps:
@@ -85,42 +85,46 @@ stages:
- task: NuGetAuthenticate@0
displayName: 'Authenticate to AzDO Feeds'
+ - task: PowerShell@2
+ displayName: Enable cross-org publishing
+ inputs:
+ filePath: eng\common\enable-cross-org-publishing.ps1
+ arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
+
- task: PowerShell@2
displayName: Publish Assets
- env:
- AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw)
inputs:
filePath: eng\common\sdk-task.ps1
- arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
+ arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
/p:ArtifactsCategory=$(_DotNetArtifactsCategory)
/p:IsStableBuild=$(IsStableBuild)
/p:IsInternalBuild=$(IsInternalBuild)
/p:RepositoryName=$(Build.Repository.Name)
/p:CommitSha=$(Build.SourceVersion)
/p:NugetPath=$(NuGetExeToolPath)
- /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-packages-rw)'
- /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
- /p:BARBuildId=$(BARBuildId)
- /p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
- /p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
- /p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
- /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
- /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/'
- /p:Configuration=Release
+ /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-packages-rw)'
+ /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
+ /p:BARBuildId=$(BARBuildId)
+ /p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
+ /p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
+ /p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
+ /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
+ /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/'
+ /p:Configuration=Release
/p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }}
/p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl)
/p:InstallersAzureAccountKey=$(dotnetcli-storage-key)
/p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl)
/p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key)
/p:PublishToAzureDevOpsNuGetFeeds=true
- /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3/nuget/v3/index.json'
+ /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
/p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
- /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-transport/nuget/v3/index.json'
+ /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
/p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
- /p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-symbols/nuget/v3/index.json'
+ /p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json'
/p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)'
${{ parameters.artifactsPublishingAdditionalParameters }}
- template: ../../steps/promote-build.yml
parameters:
- ChannelId: ${{ variables.PublicDevRelease_30_Channel_Id }}
+ ChannelId: ${{ variables.NetCore_3_Tools_Channel_Id }}
\ No newline at end of file
diff --git a/eng/common/templates/post-build/channels/netcore-dev-31.yml b/eng/common/templates/post-build/channels/netcore-dev-31.yml
index 720a0ab08a22..db21254187d9 100644
--- a/eng/common/templates/post-build/channels/netcore-dev-31.yml
+++ b/eng/common/templates/post-build/channels/netcore-dev-31.yml
@@ -85,10 +85,14 @@ stages:
- task: NuGetAuthenticate@0
displayName: 'Authenticate to AzDO Feeds'
+ - task: PowerShell@2
+ displayName: Enable cross-org publishing
+ inputs:
+ filePath: eng\common\enable-cross-org-publishing.ps1
+ arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
+
- task: PowerShell@2
displayName: Publish Assets
- env:
- AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw)
inputs:
filePath: eng\common\sdk-task.ps1
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
diff --git a/eng/common/templates/post-build/channels/netcore-dev-5.yml b/eng/common/templates/post-build/channels/netcore-dev-5.yml
index 9c81e39e9cf8..c4f5a16acb62 100644
--- a/eng/common/templates/post-build/channels/netcore-dev-5.yml
+++ b/eng/common/templates/post-build/channels/netcore-dev-5.yml
@@ -85,10 +85,14 @@ stages:
- task: NuGetAuthenticate@0
displayName: 'Authenticate to AzDO Feeds'
+ - task: PowerShell@2
+ displayName: Enable cross-org publishing
+ inputs:
+ filePath: eng\common\enable-cross-org-publishing.ps1
+ arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
+
- task: PowerShell@2
displayName: Publish Assets
- env:
- AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw)
inputs:
filePath: eng\common\sdk-task.ps1
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
diff --git a/eng/common/templates/post-build/channels/netcore-internal-30.yml b/eng/common/templates/post-build/channels/netcore-internal-30.yml
index 053163cf6ade..177b38df3571 100644
--- a/eng/common/templates/post-build/channels/netcore-internal-30.yml
+++ b/eng/common/templates/post-build/channels/netcore-internal-30.yml
@@ -84,10 +84,14 @@ stages:
- task: NuGetAuthenticate@0
displayName: 'Authenticate to AzDO Feeds'
+ - task: PowerShell@2
+ displayName: Enable cross-org publishing
+ inputs:
+ filePath: eng\common\enable-cross-org-publishing.ps1
+ arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
+
- task: PowerShell@2
displayName: Publish Assets
- env:
- AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw)
inputs:
filePath: eng\common\sdk-task.ps1
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
diff --git a/eng/common/templates/post-build/channels/netcore-release-30.yml b/eng/common/templates/post-build/channels/netcore-release-30.yml
index 8ba9237ffc04..16ade0db29de 100644
--- a/eng/common/templates/post-build/channels/netcore-release-30.yml
+++ b/eng/common/templates/post-build/channels/netcore-release-30.yml
@@ -85,10 +85,14 @@ stages:
- task: NuGetAuthenticate@0
displayName: 'Authenticate to AzDO Feeds'
+ - task: PowerShell@2
+ displayName: Enable cross-org publishing
+ inputs:
+ filePath: eng\common\enable-cross-org-publishing.ps1
+ arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
+
- task: PowerShell@2
displayName: Publish Assets
- env:
- AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw)
inputs:
filePath: eng\common\sdk-task.ps1
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
diff --git a/eng/common/templates/post-build/channels/netcore-release-31.yml b/eng/common/templates/post-build/channels/netcore-release-31.yml
index d8270eadaeab..01d56410c7d4 100644
--- a/eng/common/templates/post-build/channels/netcore-release-31.yml
+++ b/eng/common/templates/post-build/channels/netcore-release-31.yml
@@ -85,10 +85,14 @@ stages:
- task: NuGetAuthenticate@0
displayName: 'Authenticate to AzDO Feeds'
+ - task: PowerShell@2
+ displayName: Enable cross-org publishing
+ inputs:
+ filePath: eng\common\enable-cross-org-publishing.ps1
+ arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
+
- task: PowerShell@2
displayName: Publish Assets
- env:
- AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw)
inputs:
filePath: eng\common\sdk-task.ps1
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
diff --git a/eng/common/templates/post-build/channels/netcore-tools-latest.yml b/eng/common/templates/post-build/channels/netcore-tools-latest.yml
index c75d18673396..157d2d4b9772 100644
--- a/eng/common/templates/post-build/channels/netcore-tools-latest.yml
+++ b/eng/common/templates/post-build/channels/netcore-tools-latest.yml
@@ -85,10 +85,14 @@ stages:
- task: NuGetAuthenticate@0
displayName: 'Authenticate to AzDO Feeds'
+ - task: PowerShell@2
+ displayName: Enable cross-org publishing
+ inputs:
+ filePath: eng\common\enable-cross-org-publishing.ps1
+ arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
+
- task: PowerShell@2
displayName: Publish Assets
- env:
- AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw)
inputs:
filePath: eng\common\sdk-task.ps1
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
diff --git a/eng/common/templates/post-build/channels/public-validation-release.yml b/eng/common/templates/post-build/channels/netcore-tools-validation.yml
similarity index 90%
rename from eng/common/templates/post-build/channels/public-validation-release.yml
rename to eng/common/templates/post-build/channels/netcore-tools-validation.yml
index fb2c23d0f4d8..d8447e49af6f 100644
--- a/eng/common/templates/post-build/channels/public-validation-release.yml
+++ b/eng/common/templates/post-build/channels/netcore-tools-validation.yml
@@ -21,7 +21,7 @@ stages:
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
- name: IsStableBuild
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicValidationRelease_30_Channel_Id))
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_Tools_Validation_Channel_Id))
pool:
vmImage: 'windows-2019'
steps:
@@ -50,10 +50,14 @@ stages:
- task: NuGetAuthenticate@0
displayName: 'Authenticate to AzDO Feeds'
+ - task: PowerShell@2
+ displayName: Enable cross-org publishing
+ inputs:
+ filePath: eng\common\enable-cross-org-publishing.ps1
+ arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
+
- task: PowerShell@2
displayName: Publish Assets
- env:
- AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw)
inputs:
filePath: eng\common\sdk-task.ps1
arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
@@ -88,4 +92,4 @@ stages:
- template: ../../steps/promote-build.yml
parameters:
- ChannelId: ${{ variables.PublicValidationRelease_30_Channel_Id }}
+ ChannelId: ${{ variables.NetCore_Tools_Validation_Channel_Id }}
diff --git a/eng/common/templates/post-build/common-variables.yml b/eng/common/templates/post-build/common-variables.yml
index adb2a854f206..b4eed6f186c0 100644
--- a/eng/common/templates/post-build/common-variables.yml
+++ b/eng/common/templates/post-build/common-variables.yml
@@ -3,10 +3,6 @@ variables:
- group: DotNet-DotNetCli-Storage
- group: DotNet-MSRC-Storage
- # .NET Core 3 Dev
- - name: PublicDevRelease_30_Channel_Id
- value: 3
-
# .NET Core 3.1 Dev
- name: PublicDevRelease_31_Channel_Id
value: 128
@@ -16,13 +12,21 @@ variables:
value: 131
# .NET Tools - Validation
- - name: PublicValidationRelease_30_Channel_Id
+ - name: NetCore_Tools_Validation_Channel_Id
value: 9
# .NET Tools - Latest
- name: NetCore_Tools_Latest_Channel_Id
value: 2
+ # .NET 3 Tools - Validation
+ - name: NETCore_3_Tools_Validation_Channel_Id
+ value: 390
+
+ # .NET 3 Tools - Latest
+ - name: NetCore_3_Tools_Channel_Id
+ value: 344
+
# .NET Core 3.0 Internal Servicing
- name: InternalServicing_30_Channel_Id
value: 184
diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml
index 5b9d0a5d99bf..7ee82d9ff183 100644
--- a/eng/common/templates/post-build/post-build.yml
+++ b/eng/common/templates/post-build/post-build.yml
@@ -101,29 +101,34 @@ stages:
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
-- template: \eng\common\templates\post-build\channels\netcore-dev-30.yml
+- template: \eng\common\templates\post-build\channels\netcore-dev-31.yml
parameters:
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
-- template: \eng\common\templates\post-build\channels\netcore-dev-31.yml
+- template: \eng\common\templates\post-build\channels\netcore-tools-latest.yml
parameters:
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
-- template: \eng\common\templates\post-build\channels\netcore-tools-latest.yml
+- template: \eng\common\templates\post-build\channels\netcore-tools-validation.yml
parameters:
- symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
-- template: \eng\common\templates\post-build\channels\public-validation-release.yml
+- template: \eng\common\templates\post-build\channels\netcore-3-tools-validation.yml
parameters:
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
+- template: \eng\common\templates\post-build\channels\netcore-3-tools.yml
+ parameters:
+ symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
+ artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
+ publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
+
- template: \eng\common\templates\post-build\channels\netcore-release-30.yml
parameters:
symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
diff --git a/eng/scripts/ci-source-build.sh b/eng/scripts/ci-source-build.sh
index 8b4c801d3af7..ebc50dad0a59 100755
--- a/eng/scripts/ci-source-build.sh
+++ b/eng/scripts/ci-source-build.sh
@@ -30,10 +30,10 @@ trap "{
mv "$reporoot/global.bak.json" "$reporoot/global.json"
}" EXIT
-export DotNetBuildFromSource='true'
-
# Build repo tasks
"$reporoot/eng/common/build.sh" --restore --build --ci --configuration Release /p:ProjectToBuild=$reporoot/eng/tools/RepoTasks/RepoTasks.csproj
+export DotNetBuildFromSource='true'
+
# Build projects
"$reporoot/eng/common/build.sh" --restore --build --pack "$@"
\ No newline at end of file
diff --git a/eng/targets/ReferenceAssembly.targets b/eng/targets/ReferenceAssembly.targets
index 74cbf583e339..5f4345e0c481 100644
--- a/eng/targets/ReferenceAssembly.targets
+++ b/eng/targets/ReferenceAssembly.targets
@@ -23,11 +23,15 @@
+ <_ExcludeFromSourceBuild Condition="'$(IsAspNetCoreApp)' == 'true' OR '$(IsAnalyzersProject)' == 'true'">false
+]]>
+
- @(_ResultTargetFramework)
+ @(_ResultTargetFramework)$(_ExcludeFromSourceBuild)
@(ProjectListContentItem->'%(Identity)', '%0A')
diff --git a/eng/targets/ResolveReferences.targets b/eng/targets/ResolveReferences.targets
index 4efbe58e9769..340ceabe6446 100644
--- a/eng/targets/ResolveReferences.targets
+++ b/eng/targets/ResolveReferences.targets
@@ -50,10 +50,10 @@
true
false
- true
+ true
false
- true
+ true
false
@@ -157,7 +157,78 @@
-
+
+
+
+
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Caching.Abstractions" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Caching.Memory" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Caching.SqlServer" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Caching.StackExchangeRedis" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration.Abstractions" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration.AzureKeyVault" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration.Binder" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration.CommandLine" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration.FileExtensions" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration.Ini" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration.Json" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration.KeyPerFile" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration.NewtonsoftJson" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Configuration.UserSecrets" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.DependencyInjection" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.DiagnosticAdapter" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Diagnostics.HealthChecks" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.FileProviders.Abstractions" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.FileProviders.Composite" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.FileProviders.Embedded" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.FileProviders.Physical" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.FileSystemGlobbing" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Hosting.Abstractions" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Hosting" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Hosting.Systemd" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Hosting.WindowsServices" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Http" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Http.Polly" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Localization.Abstractions" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Localization" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Logging.Abstractions" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Logging.AzureAppServices" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Logging.Configuration" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Logging.Console" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Logging.Debug" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Logging" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Logging.EventLog" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Logging.EventSource" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Logging.TraceSource" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.ObjectPool" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Options.ConfigurationExtensions" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Options.DataAnnotations" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Options" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.Primitives" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.Extensions.WebEncoders" />
+ <_ExtensionInternalRefAssemblies Include="Microsoft.JSInterop" />
+ <_ExtensionInternalRefAssemblies Include="Mono.WebAssembly.Interop" />
+
+
+ <_NonExtensionPackageReferences Include="@(_LatestPackageReferenceWithVersion)" Exclude="@(_ExtensionInternalRefAssemblies)" />
+ <_ExtensionPackageReferences Include="@(_LatestPackageReferenceWithVersion)" Exclude="@(_NonExtensionPackageReferences)" />
+
+
+ <_LatestPackageReferenceWithVersion Remove="@(_ExtensionPackageReferences)" />
+
+
+
+
+
+
+
+
+ true
+
<_BaselinePackageReferenceWithVersion Include="@(Reference)" Condition=" '$(IsServicingBuild)' == 'true' OR '$(UseLatestPackageReferences)' != 'true' ">
diff --git a/global.json b/global.json
index 5eca702e522c..fa652db0a902 100644
--- a/global.json
+++ b/global.json
@@ -25,7 +25,7 @@
},
"msbuild-sdks": {
"Yarn.MSBuild": "1.15.2",
- "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19462.4",
- "Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19462.4"
+ "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19474.3",
+ "Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19474.3"
}
}
diff --git a/src/Analyzers/Analyzers/test/AnalyzerTestBase.cs b/src/Analyzers/Analyzers/test/AnalyzerTestBase.cs
index ed80fa3d08de..269c50a394b0 100644
--- a/src/Analyzers/Analyzers/test/AnalyzerTestBase.cs
+++ b/src/Analyzers/Analyzers/test/AnalyzerTestBase.cs
@@ -39,7 +39,7 @@ public Project CreateProject(string source)
}
var read = Read(source);
- return DiagnosticProject.Create(GetType().Assembly, new[] { read.Source, });
+ return AnalyzersDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { read.Source, });
}
public Task CreateCompilationAsync(string source)
diff --git a/src/Analyzers/Analyzers/test/AnalyzersDiagnosticAnalyzerRunner.cs b/src/Analyzers/Analyzers/test/AnalyzersDiagnosticAnalyzerRunner.cs
index 57a8ce8a697f..f54a187c0e7e 100644
--- a/src/Analyzers/Analyzers/test/AnalyzersDiagnosticAnalyzerRunner.cs
+++ b/src/Analyzers/Analyzers/test/AnalyzersDiagnosticAnalyzerRunner.cs
@@ -2,6 +2,9 @@
// 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.Linq;
+using System.Reflection;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Analyzer.Testing;
using Microsoft.CodeAnalysis;
@@ -20,7 +23,28 @@ public AnalyzersDiagnosticAnalyzerRunner(DiagnosticAnalyzer analyzer)
public Task GetDiagnosticsAsync(string source)
{
- return GetDiagnosticsAsync(sources: new[] { source }, Analyzer, Array.Empty());
+ var project = CreateProjectWithReferencesInBinDir(GetType().Assembly, source);
+
+ return GetDiagnosticsAsync(project);
+ }
+
+ public static Project CreateProjectWithReferencesInBinDir(Assembly testAssembly, params string[] source)
+ {
+ // The deps file in the project is incorrect and does not contain "compile" nodes for some references.
+ // However these binaries are always present in the bin output. As a "temporary" workaround, we'll add
+ // every dll file that's present in the test's build output as a metadatareference.
+
+ var project = DiagnosticProject.Create(testAssembly, source);
+
+ foreach (var assembly in Directory.EnumerateFiles(AppContext.BaseDirectory, "*.dll"))
+ {
+ if (!project.MetadataReferences.Any(c => string.Equals(Path.GetFileNameWithoutExtension(c.Display), Path.GetFileNameWithoutExtension(assembly), StringComparison.OrdinalIgnoreCase)))
+ {
+ project = project.AddMetadataReference(MetadataReference.CreateFromFile(assembly));
+ }
+ }
+
+ return project;
}
public Task GetDiagnosticsAsync(Project project)
diff --git a/src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.csproj b/src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.csproj
index 5f34ef3e76e8..2a99290b34eb 100644
--- a/src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.csproj
+++ b/src/Antiforgery/ref/Microsoft.AspNetCore.Antiforgery.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.csproj b/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.csproj
index d60eb3159494..8776ab9fef14 100644
--- a/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.csproj
+++ b/src/Components/Authorization/ref/Microsoft.AspNetCore.Components.Authorization.csproj
@@ -2,6 +2,8 @@
netstandard2.0;netcoreapp3.0
+ false
+
diff --git a/src/Components/Blazor/testassets/Directory.Build.props b/src/Components/Blazor/testassets/Directory.Build.props
new file mode 100644
index 000000000000..938199f96ec5
--- /dev/null
+++ b/src/Components/Blazor/testassets/Directory.Build.props
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
diff --git a/src/Components/Components/ref/Microsoft.AspNetCore.Components.csproj b/src/Components/Components/ref/Microsoft.AspNetCore.Components.csproj
index 3f0b80424f8c..943bf6782739 100644
--- a/src/Components/Components/ref/Microsoft.AspNetCore.Components.csproj
+++ b/src/Components/Components/ref/Microsoft.AspNetCore.Components.csproj
@@ -2,6 +2,8 @@
netstandard2.0;netcoreapp3.0
+ false
+
diff --git a/src/Components/Forms/ref/Microsoft.AspNetCore.Components.Forms.csproj b/src/Components/Forms/ref/Microsoft.AspNetCore.Components.Forms.csproj
index 8e24904b634a..b3fe863ead5d 100644
--- a/src/Components/Forms/ref/Microsoft.AspNetCore.Components.Forms.csproj
+++ b/src/Components/Forms/ref/Microsoft.AspNetCore.Components.Forms.csproj
@@ -2,6 +2,8 @@
netstandard2.0;netcoreapp3.0
+ false
+
diff --git a/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.csproj b/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.csproj
index 21f0c740e53c..3cdf8cc2becc 100644
--- a/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.csproj
+++ b/src/Components/Server/ref/Microsoft.AspNetCore.Components.Server.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.csproj b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.csproj
index 74a0b82c27d0..6415de5e4fd3 100644
--- a/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.csproj
+++ b/src/Components/Web/ref/Microsoft.AspNetCore.Components.Web.csproj
@@ -2,6 +2,8 @@
netstandard2.0;netcoreapp3.0
+ false
+
diff --git a/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj b/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
index 6b91b2d230c9..9bf03e1c503c 100644
--- a/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
+++ b/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
@@ -9,13 +9,13 @@
false
-
+
true
-
+
false
@@ -28,6 +28,8 @@
+
+
diff --git a/src/Components/test/testassets/Directory.Build.props b/src/Components/test/testassets/Directory.Build.props
new file mode 100644
index 000000000000..938199f96ec5
--- /dev/null
+++ b/src/Components/test/testassets/Directory.Build.props
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
diff --git a/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.csproj b/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.csproj
index 62dd2d978a90..4e04929cd187 100644
--- a/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.csproj
+++ b/src/DataProtection/Abstractions/ref/Microsoft.AspNetCore.DataProtection.Abstractions.csproj
@@ -2,6 +2,8 @@
netstandard2.0
+ false
+
diff --git a/src/DataProtection/Cryptography.Internal/ref/Directory.Build.props b/src/DataProtection/Cryptography.Internal/ref/Directory.Build.props
new file mode 100644
index 000000000000..b500fb5d98e7
--- /dev/null
+++ b/src/DataProtection/Cryptography.Internal/ref/Directory.Build.props
@@ -0,0 +1,8 @@
+
+
+
+
+ true
+ $(NoWarn);CS0169
+
+
\ No newline at end of file
diff --git a/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.Manual.cs b/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.Manual.cs
new file mode 100644
index 000000000000..8120f4169951
--- /dev/null
+++ b/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.Manual.cs
@@ -0,0 +1,417 @@
+// 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.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Cryptography.KeyDerivation, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.DataProtection, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+
+namespace Microsoft.AspNetCore.Cryptography
+{
+ internal static partial class Constants
+ {
+ internal const string BCRYPT_3DES_112_ALGORITHM = "3DES_112";
+ internal const string BCRYPT_3DES_ALGORITHM = "3DES";
+ internal const string BCRYPT_AES_ALGORITHM = "AES";
+ internal const string BCRYPT_AES_CMAC_ALGORITHM = "AES-CMAC";
+ internal const string BCRYPT_AES_GMAC_ALGORITHM = "AES-GMAC";
+ internal const string BCRYPT_AES_WRAP_KEY_BLOB = "Rfc3565KeyWrapBlob";
+ internal const string BCRYPT_ALGORITHM_NAME = "AlgorithmName";
+ internal const string BCRYPT_AUTH_TAG_LENGTH = "AuthTagLength";
+ internal const string BCRYPT_BLOCK_LENGTH = "BlockLength";
+ internal const string BCRYPT_BLOCK_SIZE_LIST = "BlockSizeList";
+ internal const string BCRYPT_CAPI_KDF_ALGORITHM = "CAPI_KDF";
+ internal const string BCRYPT_CHAINING_MODE = "ChainingMode";
+ internal const string BCRYPT_CHAIN_MODE_CBC = "ChainingModeCBC";
+ internal const string BCRYPT_CHAIN_MODE_CCM = "ChainingModeCCM";
+ internal const string BCRYPT_CHAIN_MODE_CFB = "ChainingModeCFB";
+ internal const string BCRYPT_CHAIN_MODE_ECB = "ChainingModeECB";
+ internal const string BCRYPT_CHAIN_MODE_GCM = "ChainingModeGCM";
+ internal const string BCRYPT_CHAIN_MODE_NA = "ChainingModeN/A";
+ internal const string BCRYPT_DESX_ALGORITHM = "DESX";
+ internal const string BCRYPT_DES_ALGORITHM = "DES";
+ internal const string BCRYPT_DH_ALGORITHM = "DH";
+ internal const string BCRYPT_DSA_ALGORITHM = "DSA";
+ internal const string BCRYPT_ECDH_P256_ALGORITHM = "ECDH_P256";
+ internal const string BCRYPT_ECDH_P384_ALGORITHM = "ECDH_P384";
+ internal const string BCRYPT_ECDH_P521_ALGORITHM = "ECDH_P521";
+ internal const string BCRYPT_ECDSA_P256_ALGORITHM = "ECDSA_P256";
+ internal const string BCRYPT_ECDSA_P384_ALGORITHM = "ECDSA_P384";
+ internal const string BCRYPT_ECDSA_P521_ALGORITHM = "ECDSA_P521";
+ internal const string BCRYPT_EFFECTIVE_KEY_LENGTH = "EffectiveKeyLength";
+ internal const string BCRYPT_HASH_BLOCK_LENGTH = "HashBlockLength";
+ internal const string BCRYPT_HASH_LENGTH = "HashDigestLength";
+ internal const string BCRYPT_HASH_OID_LIST = "HashOIDList";
+ internal const string BCRYPT_IS_KEYED_HASH = "IsKeyedHash";
+ internal const string BCRYPT_IS_REUSABLE_HASH = "IsReusableHash";
+ internal const string BCRYPT_KEY_DATA_BLOB = "KeyDataBlob";
+ internal const string BCRYPT_KEY_LENGTH = "KeyLength";
+ internal const string BCRYPT_KEY_LENGTHS = "KeyLengths";
+ internal const string BCRYPT_KEY_OBJECT_LENGTH = "KeyObjectLength";
+ internal const string BCRYPT_KEY_STRENGTH = "KeyStrength";
+ internal const string BCRYPT_MD2_ALGORITHM = "MD2";
+ internal const string BCRYPT_MD4_ALGORITHM = "MD4";
+ internal const string BCRYPT_MD5_ALGORITHM = "MD5";
+ internal const string BCRYPT_MESSAGE_BLOCK_LENGTH = "MessageBlockLength";
+ internal const string BCRYPT_OBJECT_LENGTH = "ObjectLength";
+ internal const string BCRYPT_OPAQUE_KEY_BLOB = "OpaqueKeyBlob";
+ internal const string BCRYPT_PADDING_SCHEMES = "PaddingSchemes";
+ internal const string BCRYPT_PBKDF2_ALGORITHM = "PBKDF2";
+ internal const string BCRYPT_PRIMITIVE_TYPE = "PrimitiveType";
+ internal const string BCRYPT_PROVIDER_HANDLE = "ProviderHandle";
+ internal const string BCRYPT_RC2_ALGORITHM = "RC2";
+ internal const string BCRYPT_RC4_ALGORITHM = "RC4";
+ internal const string BCRYPT_RNG_ALGORITHM = "RNG";
+ internal const string BCRYPT_RNG_DUAL_EC_ALGORITHM = "DUALECRNG";
+ internal const string BCRYPT_RNG_FIPS186_DSA_ALGORITHM = "FIPS186DSARNG";
+ internal const string BCRYPT_RSA_ALGORITHM = "RSA";
+ internal const string BCRYPT_RSA_SIGN_ALGORITHM = "RSA_SIGN";
+ internal const string BCRYPT_SHA1_ALGORITHM = "SHA1";
+ internal const string BCRYPT_SHA256_ALGORITHM = "SHA256";
+ internal const string BCRYPT_SHA384_ALGORITHM = "SHA384";
+ internal const string BCRYPT_SHA512_ALGORITHM = "SHA512";
+ internal const string BCRYPT_SIGNATURE_LENGTH = "SignatureLength";
+ internal const string BCRYPT_SP800108_CTR_HMAC_ALGORITHM = "SP800_108_CTR_HMAC";
+ internal const string BCRYPT_SP80056A_CONCAT_ALGORITHM = "SP800_56A_CONCAT";
+ internal const int MAX_STACKALLOC_BYTES = 256;
+ internal const string MS_PLATFORM_CRYPTO_PROVIDER = "Microsoft Platform Crypto Provider";
+ internal const string MS_PRIMITIVE_PROVIDER = "Microsoft Primitive Provider";
+ }
+ internal static partial class CryptoUtil
+ {
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void Assert(bool condition, string message) { }
+ public static void AssertPlatformIsWindows() { }
+ public static void AssertPlatformIsWindows8OrLater() { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void AssertSafeHandleIsValid(System.Runtime.InteropServices.SafeHandle safeHandle) { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static System.Exception Fail(string message) { throw null; }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]public static T Fail(string message) where T : class { throw null; }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+ public unsafe static bool TimeConstantBuffersAreEqual(byte* bufA, byte* bufB, uint count) { throw null; }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]public static bool TimeConstantBuffersAreEqual(byte[] bufA, int offsetA, int countA, byte[] bufB, int offsetB, int countB) { throw null; }
+ }
+ [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+ internal unsafe partial struct DATA_BLOB
+ {
+ public uint cbData;
+ public byte* pbData;
+ }
+ internal static partial class UnsafeBufferUtil
+ {
+ [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)]
+ public static void BlockCopy(Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle from, Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle to, System.IntPtr length) { }
+ [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)]
+ public unsafe static void BlockCopy(Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle from, void* to, uint byteCount) { }
+ [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)]
+ public unsafe static void BlockCopy(void* from, Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle to, uint byteCount) { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+ public unsafe static void BlockCopy(void* from, void* to, int byteCount) { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+ public unsafe static void BlockCopy(void* from, void* to, uint byteCount) { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]private unsafe static void BlockCopyCore(byte* from, byte* to, uint byteCount) { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]private unsafe static void BlockCopyCore(byte* from, byte* to, ulong byteCount) { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+ public unsafe static void SecureZeroMemory(byte* buffer, int byteCount) { }
+ [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+ public unsafe static void SecureZeroMemory(byte* buffer, System.IntPtr length) { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+ public unsafe static void SecureZeroMemory(byte* buffer, uint byteCount) { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+ public unsafe static void SecureZeroMemory(byte* buffer, ulong byteCount) { }
+ }
+ [System.Security.SuppressUnmanagedCodeSecurityAttribute]
+ internal static partial class UnsafeNativeMethods
+ {
+ private const string BCRYPT_LIB = "bcrypt.dll";
+ private const string CRYPT32_LIB = "crypt32.dll";
+ private const string NCRYPT_LIB = "ncrypt.dll";
+ private static readonly System.Lazy _lazyBCryptLibHandle;
+ private static readonly System.Lazy _lazyCrypt32LibHandle;
+ private static readonly System.Lazy _lazyNCryptLibHandle;
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int BCryptCloseAlgorithmProvider(System.IntPtr hAlgorithm, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptCreateHash(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle hAlgorithm, out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle phHash, System.IntPtr pbHashObject, uint cbHashObject, byte* pbSecret, uint cbSecret, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptDecrypt(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle hKey, byte* pbInput, uint cbInput, void* pPaddingInfo, byte* pbIV, uint cbIV, byte* pbOutput, uint cbOutput, out uint pcbResult, Microsoft.AspNetCore.Cryptography.Cng.BCryptEncryptFlags dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptDeriveKeyPBKDF2(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle hPrf, byte* pbPassword, uint cbPassword, byte* pbSalt, uint cbSalt, ulong cIterations, byte* pbDerivedKey, uint cbDerivedKey, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+ internal static extern int BCryptDestroyHash(System.IntPtr hHash);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+ internal static extern int BCryptDestroyKey(System.IntPtr hKey);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int BCryptDuplicateHash(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle hHash, out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle phNewHash, System.IntPtr pbHashObject, uint cbHashObject, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptEncrypt(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle hKey, byte* pbInput, uint cbInput, void* pPaddingInfo, byte* pbIV, uint cbIV, byte* pbOutput, uint cbOutput, out uint pcbResult, Microsoft.AspNetCore.Cryptography.Cng.BCryptEncryptFlags dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptFinishHash(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle hHash, byte* pbOutput, uint cbOutput, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptGenerateSymmetricKey(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle hAlgorithm, out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle phKey, System.IntPtr pbKeyObject, uint cbKeyObject, byte* pbSecret, uint cbSecret, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptGenRandom(System.IntPtr hAlgorithm, byte* pbBuffer, uint cbBuffer, Microsoft.AspNetCore.Cryptography.Cng.BCryptGenRandomFlags dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptGetProperty(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle hObject, string pszProperty, void* pbOutput, uint cbOutput, out uint pcbResult, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptHashData(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle hHash, byte* pbInput, uint cbInput, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptKeyDerivation(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle hKey, Microsoft.AspNetCore.Cryptography.Cng.BCryptBufferDesc* pParameterList, byte* pbDerivedKey, uint cbDerivedKey, out uint pcbResult, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int BCryptOpenAlgorithmProvider(out Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle phAlgorithm, string pszAlgId, string pszImplementation, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("bcrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int BCryptSetProperty(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle hObject, string pszProperty, void* pbInput, uint cbInput, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern bool CryptProtectData(Microsoft.AspNetCore.Cryptography.DATA_BLOB* pDataIn, System.IntPtr szDataDescr, Microsoft.AspNetCore.Cryptography.DATA_BLOB* pOptionalEntropy, System.IntPtr pvReserved, System.IntPtr pPromptStruct, uint dwFlags, out Microsoft.AspNetCore.Cryptography.DATA_BLOB pDataOut);
+ [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]public static extern bool CryptProtectMemory(System.Runtime.InteropServices.SafeHandle pData, uint cbData, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern bool CryptUnprotectData(Microsoft.AspNetCore.Cryptography.DATA_BLOB* pDataIn, System.IntPtr ppszDataDescr, Microsoft.AspNetCore.Cryptography.DATA_BLOB* pOptionalEntropy, System.IntPtr pvReserved, System.IntPtr pPromptStruct, uint dwFlags, out Microsoft.AspNetCore.Cryptography.DATA_BLOB pDataOut);
+ [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]public unsafe static extern bool CryptUnprotectMemory(byte* pData, uint cbData, uint dwFlags);
+ [System.Runtime.InteropServices.DllImport("crypt32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]public static extern bool CryptUnprotectMemory(System.Runtime.InteropServices.SafeHandle pData, uint cbData, uint dwFlags);
+ private static System.Lazy GetLazyLibraryHandle(string libraryName) { throw null; }
+ [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+ internal static extern int NCryptCloseProtectionDescriptor(System.IntPtr hDescriptor);
+ [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int NCryptCreateProtectionDescriptor(string pwszDescriptorString, uint dwFlags, out Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle phDescriptor);
+ [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern int NCryptGetProtectionDescriptorInfo(Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle hDescriptor, System.IntPtr pMemPara, uint dwInfoType, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppvInfo);
+ [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int NCryptProtectSecret(Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle hDescriptor, uint dwFlags, byte* pbData, uint cbData, System.IntPtr pMemPara, System.IntPtr hWnd, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppbProtectedBlob, out uint pcbProtectedBlob);
+ [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int NCryptUnprotectSecret(out Microsoft.AspNetCore.Cryptography.SafeHandles.NCryptDescriptorHandle phDescriptor, uint dwFlags, byte* pbProtectedBlob, uint cbProtectedBlob, System.IntPtr pMemPara, System.IntPtr hWnd, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppbData, out uint pcbData);
+ [System.Runtime.InteropServices.DllImport("ncrypt.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal unsafe static extern int NCryptUnprotectSecret(System.IntPtr phDescriptor, uint dwFlags, byte* pbProtectedBlob, uint cbProtectedBlob, System.IntPtr pMemPara, System.IntPtr hWnd, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle ppbData, out uint pcbData);
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static void ThrowExceptionForBCryptStatus(int ntstatus) { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]private static void ThrowExceptionForBCryptStatusImpl(int ntstatus) { }
+ public static void ThrowExceptionForLastCrypt32Error() { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static void ThrowExceptionForNCryptStatus(int ntstatus) { }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]private static void ThrowExceptionForNCryptStatusImpl(int ntstatus) { }
+ }
+ internal static partial class WeakReferenceHelpers
+ {
+ public static T GetSharedInstance(ref System.WeakReference weakReference, System.Func factory) where T : class, System.IDisposable { throw null; }
+ }
+}
+namespace Microsoft.AspNetCore.Cryptography.Cng
+{
+ [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+ internal partial struct BCryptBuffer
+ {
+ public uint cbBuffer; // Length of buffer, in bytes
+ public BCryptKeyDerivationBufferType BufferType; // Buffer type
+ public IntPtr pvBuffer; // Pointer to buffer
+ }
+ [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+ internal unsafe partial struct BCryptBufferDesc
+ {
+ public uint ulVersion; // Version number
+ public uint cBuffers; // Number of buffers
+ public BCryptBuffer* pBuffers; // Pointer to array of buffers
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]public static void Initialize(ref Microsoft.AspNetCore.Cryptography.Cng.BCryptBufferDesc bufferDesc) { }
+ }
+ [System.FlagsAttribute]
+ internal enum BCryptEncryptFlags
+ {
+ BCRYPT_BLOCK_PADDING = 1,
+ }
+ [System.FlagsAttribute]
+ internal enum BCryptGenRandomFlags
+ {
+ BCRYPT_RNG_USE_ENTROPY_IN_BUFFER = 1,
+ BCRYPT_USE_SYSTEM_PREFERRED_RNG = 2,
+ }
+ internal enum BCryptKeyDerivationBufferType
+ {
+ KDF_HASH_ALGORITHM = 0,
+ KDF_SECRET_PREPEND = 1,
+ KDF_SECRET_APPEND = 2,
+ KDF_HMAC_KEY = 3,
+ KDF_TLS_PRF_LABEL = 4,
+ KDF_TLS_PRF_SEED = 5,
+ KDF_SECRET_HANDLE = 6,
+ KDF_TLS_PRF_PROTOCOL = 7,
+ KDF_ALGORITHMID = 8,
+ KDF_PARTYUINFO = 9,
+ KDF_PARTYVINFO = 10,
+ KDF_SUPPPUBINFO = 11,
+ KDF_SUPPPRIVINFO = 12,
+ KDF_LABEL = 13,
+ KDF_CONTEXT = 14,
+ KDF_SALT = 15,
+ KDF_ITERATION_COUNT = 16,
+ }
+ internal static partial class BCryptUtil
+ {
+ public unsafe static void GenRandom(byte* pbBuffer, uint cbBuffer) { }
+ }
+ [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+ internal unsafe partial struct BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO
+ {
+ public uint cbSize;
+ public uint dwInfoVersion;
+ public byte* pbNonce;
+ public uint cbNonce;
+ public byte* pbAuthData;
+ public uint cbAuthData;
+ public byte* pbTag;
+ public uint cbTag;
+ public byte* pbMacContext;
+ public uint cbMacContext;
+ public uint cbAAD;
+ public ulong cbData;
+ public uint dwFlags;
+ public static void Init(out Microsoft.AspNetCore.Cryptography.Cng.BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO info) { throw null; }
+ }
+ [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+ internal partial struct BCRYPT_KEY_LENGTHS_STRUCT
+ {
+ // MSDN says these fields represent the key length in bytes.
+ // It's wrong: these key lengths are all actually in bits.
+ internal uint dwMinLength;
+ internal uint dwMaxLength;
+ internal uint dwIncrement;
+ public void EnsureValidKeyLength(uint keyLengthInBits) { }
+ private bool IsValidKeyLength(uint keyLengthInBits) { throw null; }
+ }
+ internal static partial class CachedAlgorithmHandles
+ {
+ private static Microsoft.AspNetCore.Cryptography.Cng.CachedAlgorithmHandles.CachedAlgorithmInfo _aesCbc;
+ private static Microsoft.AspNetCore.Cryptography.Cng.CachedAlgorithmHandles.CachedAlgorithmInfo _aesGcm;
+ private static Microsoft.AspNetCore.Cryptography.Cng.CachedAlgorithmHandles.CachedAlgorithmInfo _hmacSha1;
+ private static Microsoft.AspNetCore.Cryptography.Cng.CachedAlgorithmHandles.CachedAlgorithmInfo _hmacSha256;
+ private static Microsoft.AspNetCore.Cryptography.Cng.CachedAlgorithmHandles.CachedAlgorithmInfo _hmacSha512;
+ private static Microsoft.AspNetCore.Cryptography.Cng.CachedAlgorithmHandles.CachedAlgorithmInfo _pbkdf2;
+ private static Microsoft.AspNetCore.Cryptography.Cng.CachedAlgorithmHandles.CachedAlgorithmInfo _sha1;
+ private static Microsoft.AspNetCore.Cryptography.Cng.CachedAlgorithmHandles.CachedAlgorithmInfo _sha256;
+ private static Microsoft.AspNetCore.Cryptography.Cng.CachedAlgorithmHandles.CachedAlgorithmInfo _sha512;
+ private static Microsoft.AspNetCore.Cryptography.Cng.CachedAlgorithmHandles.CachedAlgorithmInfo _sp800_108_ctr_hmac;
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle AES_CBC { get { throw null; } }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle AES_GCM { get { throw null; } }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle HMAC_SHA1 { get { throw null; } }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle HMAC_SHA256 { get { throw null; } }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle HMAC_SHA512 { get { throw null; } }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle PBKDF2 { get { throw null; } }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SHA1 { get { throw null; } }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SHA256 { get { throw null; } }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SHA512 { get { throw null; } }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle SP800_108_CTR_HMAC { get { throw null; } }
+ private static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle GetAesAlgorithm(string chainingMode) { throw null; }
+ private static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle GetHashAlgorithm(string algorithm) { throw null; }
+ private static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle GetHmacAlgorithm(string algorithm) { throw null; }
+ private static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle GetPbkdf2Algorithm() { throw null; }
+ private static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle GetSP800_108_CTR_HMACAlgorithm() { throw null; }
+
+ [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
+ private partial struct CachedAlgorithmInfo
+ {
+ private object _dummy;
+ public CachedAlgorithmInfo(System.Func factory) { throw null; }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle GetAlgorithmHandle(ref Microsoft.AspNetCore.Cryptography.Cng.CachedAlgorithmHandles.CachedAlgorithmInfo cachedAlgorithmInfo) { throw null; }
+ }
+ }
+ [System.FlagsAttribute]
+ internal enum NCryptEncryptFlags
+ {
+ NCRYPT_NO_PADDING_FLAG = 1,
+ NCRYPT_PAD_PKCS1_FLAG = 2,
+ NCRYPT_PAD_OAEP_FLAG = 4,
+ NCRYPT_PAD_PSS_FLAG = 8,
+ NCRYPT_SILENT_FLAG = 64,
+ }
+ internal static partial class OSVersionUtil
+ {
+ private static readonly Microsoft.AspNetCore.Cryptography.Cng.OSVersionUtil.OSVersion _osVersion;
+ private static Microsoft.AspNetCore.Cryptography.Cng.OSVersionUtil.OSVersion GetOSVersion() { throw null; }
+ public static bool IsWindows() { throw null; }
+ public static bool IsWindows8OrLater() { throw null; }
+ private enum OSVersion
+ {
+ NotWindows = 0,
+ Win7OrLater = 1,
+ Win8OrLater = 2,
+ }
+ }
+}
+namespace Microsoft.AspNetCore.Cryptography.Internal
+{
+ internal static partial class Resources
+ {
+ private static System.Resources.ResourceManager s_resourceManager;
+ [System.Diagnostics.DebuggerBrowsableAttribute(System.Diagnostics.DebuggerBrowsableState.Never)]
+ [System.Runtime.CompilerServices.CompilerGeneratedAttribute]
+ private static System.Globalization.CultureInfo _Culture_k__BackingField;
+ internal static string BCryptAlgorithmHandle_ProviderNotFound { get { throw null; } }
+ internal static string BCRYPT_KEY_LENGTHS_STRUCT_InvalidKeyLength { get { throw null; } }
+ internal static System.Globalization.CultureInfo Culture { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+ internal static string Platform_Windows7Required { get { throw null; } }
+ internal static string Platform_Windows8Required { get { throw null; } }
+ internal static System.Resources.ResourceManager ResourceManager { get { throw null; } }
+ internal static string FormatBCryptAlgorithmHandle_ProviderNotFound(object p0) { throw null; }
+ internal static string FormatBCRYPT_KEY_LENGTHS_STRUCT_InvalidKeyLength(object p0, object p1, object p2, object p3) { throw null; }
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]internal static string GetResourceString(string resourceKey, string defaultValue = null) { throw null; }
+ private static string GetResourceString(string resourceKey, string[] formatterNames) { throw null; }
+ }
+}
+namespace Microsoft.AspNetCore.Cryptography.SafeHandles
+{
+ internal sealed partial class BCryptAlgorithmHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle
+ {
+ private BCryptAlgorithmHandle() { }
+ public Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle CreateHash() { throw null; }
+ private unsafe Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle CreateHashCore(byte* pbKey, uint cbKey) { throw null; }
+ public unsafe Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle CreateHmac(byte* pbKey, uint cbKey) { throw null; }
+ public unsafe Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptKeyHandle GenerateSymmetricKey(byte* pbSecret, uint cbSecret) { throw null; }
+ public string GetAlgorithmName() { throw null; }
+ public uint GetCipherBlockLength() { throw null; }
+ public uint GetHashBlockLength() { throw null; }
+ public uint GetHashDigestLength() { throw null; }
+ public Microsoft.AspNetCore.Cryptography.Cng.BCRYPT_KEY_LENGTHS_STRUCT GetSupportedKeyLengths() { throw null; }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle OpenAlgorithmHandle(string algorithmId, string implementation = null, bool hmac = false) { throw null; }
+ protected override bool ReleaseHandle() { throw null; }
+ public void SetChainingMode(string chainingMode) { }
+ }
+ internal abstract partial class BCryptHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+ {
+ protected BCryptHandle() : base (default(bool)) { }
+ protected unsafe uint GetProperty(string pszProperty, void* pbOutput, uint cbOutput) { throw null; }
+ protected unsafe void SetProperty(string pszProperty, void* pbInput, uint cbInput) { }
+ }
+ internal sealed partial class BCryptHashHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle
+ {
+ private Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle _algProviderHandle;
+ private BCryptHashHandle() { }
+ public Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHashHandle DuplicateHash() { throw null; }
+ public unsafe void HashData(byte* pbInput, uint cbInput, byte* pbHashDigest, uint cbHashDigest) { }
+ protected override bool ReleaseHandle() { throw null; }
+ internal void SetAlgorithmProviderHandle(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle algProviderHandle) { }
+ }
+ internal sealed partial class BCryptKeyHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptHandle
+ {
+ private Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle _algProviderHandle;
+ private BCryptKeyHandle() { }
+ protected override bool ReleaseHandle() { throw null; }
+ internal void SetAlgorithmProviderHandle(Microsoft.AspNetCore.Cryptography.SafeHandles.BCryptAlgorithmHandle algProviderHandle) { }
+ }
+ internal partial class LocalAllocHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+ {
+ protected LocalAllocHandle() : base (default(bool)) { }
+ protected override bool ReleaseHandle() { throw null; }
+ }
+ internal sealed partial class NCryptDescriptorHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+ {
+ private NCryptDescriptorHandle() : base (default(bool)) { }
+ public string GetProtectionDescriptorRuleString() { throw null; }
+ protected override bool ReleaseHandle() { throw null; }
+ }
+ internal sealed partial class SafeLibraryHandle : Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid
+ {
+ private SafeLibraryHandle() : base (default(bool)) { }
+ public bool DoesProcExist(string lpProcName) { throw null; }
+ public void ForbidUnload() { }
+ public string FormatMessage(int messageId) { throw null; }
+ public TDelegate GetProcAddress(string lpProcName, bool throwIfNotFound = true) where TDelegate : class { throw null; }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.SafeLibraryHandle Open(string filename) { throw null; }
+ protected override bool ReleaseHandle() { throw null; }
+ [System.Security.SuppressUnmanagedCodeSecurityAttribute]
+ private static partial class UnsafeNativeMethods
+ {
+ [System.Runtime.InteropServices.DllImport("kernel32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]public static extern int FormatMessage(uint dwFlags, Microsoft.AspNetCore.Cryptography.SafeHandles.SafeLibraryHandle lpSource, uint dwMessageId, uint dwLanguageId, out Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle lpBuffer, uint nSize, System.IntPtr Arguments);
+ [System.Runtime.InteropServices.DllImport("kernel32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)][System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.Success)]
+ internal static extern bool FreeLibrary(System.IntPtr hModule);
+ [System.Runtime.InteropServices.DllImport("kernel32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern bool GetModuleHandleEx(uint dwFlags, Microsoft.AspNetCore.Cryptography.SafeHandles.SafeLibraryHandle lpModuleName, out System.IntPtr phModule);
+ [System.Runtime.InteropServices.DllImport("kernel32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern System.IntPtr GetProcAddress(Microsoft.AspNetCore.Cryptography.SafeHandles.SafeLibraryHandle hModule, string lpProcName);
+ [System.Runtime.InteropServices.DllImport("kernel32.dll")][System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.PreserveSig)]internal static extern Microsoft.AspNetCore.Cryptography.SafeHandles.SafeLibraryHandle LoadLibraryEx(string lpFileName, System.IntPtr hFile, uint dwFlags);
+ internal static void ThrowExceptionForLastWin32Error() { }
+ }
+ }
+ internal sealed partial class SecureLocalAllocHandle : Microsoft.AspNetCore.Cryptography.SafeHandles.LocalAllocHandle
+ {
+ private readonly System.IntPtr _cb;
+ private SecureLocalAllocHandle(System.IntPtr cb) { }
+ public System.IntPtr Length { get { throw null; } }
+ public static Microsoft.AspNetCore.Cryptography.SafeHandles.SecureLocalAllocHandle Allocate(System.IntPtr cb) { throw null; }
+ [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute(System.Runtime.ConstrainedExecution.Consistency.WillNotCorruptState, System.Runtime.ConstrainedExecution.Cer.MayFail)]
+ private void AllocateImpl(System.IntPtr cb) { }
+ public Microsoft.AspNetCore.Cryptography.SafeHandles.SecureLocalAllocHandle Duplicate() { throw null; }
+ protected override bool ReleaseHandle() { throw null; }
+ }
+}
diff --git a/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.csproj b/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.csproj
index ec4ae22e0e8f..62133dcbe870 100644
--- a/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.csproj
+++ b/src/DataProtection/Cryptography.Internal/ref/Microsoft.AspNetCore.Cryptography.Internal.csproj
@@ -2,9 +2,12 @@
netstandard2.0
+ false
+
+
diff --git a/src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj b/src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj
index 0dd3dbf34c1c..ad9a99c46321 100644
--- a/src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj
+++ b/src/DataProtection/Cryptography.KeyDerivation/ref/Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj
@@ -2,6 +2,8 @@
netstandard2.0;netcoreapp2.0
+ false
+
diff --git a/src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.csproj b/src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.csproj
index 2a41fa1e7577..9f8c21ba0fc3 100644
--- a/src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.csproj
+++ b/src/DataProtection/DataProtection/ref/Microsoft.AspNetCore.DataProtection.csproj
@@ -2,6 +2,8 @@
netstandard2.0;netcoreapp3.0
+ false
+
diff --git a/src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.csproj b/src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.csproj
index 32b774090fc7..d2d166c02dd7 100644
--- a/src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.csproj
+++ b/src/DataProtection/Extensions/ref/Microsoft.AspNetCore.DataProtection.Extensions.csproj
@@ -2,6 +2,8 @@
netstandard2.0;netcoreapp3.0
+ false
+
diff --git a/src/DefaultBuilder/ref/Microsoft.AspNetCore.csproj b/src/DefaultBuilder/ref/Microsoft.AspNetCore.csproj
index dd42476a0126..b232f9b6b3f9 100644
--- a/src/DefaultBuilder/ref/Microsoft.AspNetCore.csproj
+++ b/src/DefaultBuilder/ref/Microsoft.AspNetCore.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/DefaultBuilder/testassets/Directory.Build.props b/src/DefaultBuilder/testassets/Directory.Build.props
index b49282fb6f94..b8ad72d258a1 100644
--- a/src/DefaultBuilder/testassets/Directory.Build.props
+++ b/src/DefaultBuilder/testassets/Directory.Build.props
@@ -6,4 +6,11 @@
+
+
+
+
+
diff --git a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj
index 4f34f355d5a5..c54cd6e23747 100644
--- a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj
+++ b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj
@@ -37,7 +37,9 @@ This package is an internal implementation of the .NET Core SDK and is not meant
true
- MSB3243
+ MSB3243
+
+ $(NoWarn);NU5131;NU5128
FrameworkList.xml
@@ -151,7 +153,10 @@ This package is an internal implementation of the .NET Core SDK and is not meant
Outputs="$(TargetDir)$(PackageConflictManifestFileName)">
- <_AspNetCoreAppPackageOverrides Include="@(ReferencePath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" Condition=" '%(ReferencePath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND '%(ReferencePath.NuGetSourceType)' == 'Package' " />
+
+ <_AspNetCoreAppPackageOverrides Include="@(ReferencePath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" Condition="!Exists('$(MicrosoftInternalExtensionsRefsPath)%(ReferencePath.NuGetPackageId).dll') AND '%(ReferencePath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND '%(ReferencePath.NuGetSourceType)' == 'Package' " />
+
+ <_AspNetCoreAppPackageOverrides Include="@(ReferencePath->'%(NuGetPackageId)|$(MicrosoftInternalExtensionsRefsPackageOverrideVersion)')" Condition="Exists('$(MicrosoftInternalExtensionsRefsPath)%(ReferencePath.NuGetPackageId).dll') AND '%(ReferencePath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND '%(ReferencePath.NuGetSourceType)' == 'Package' " />
<_AspNetCoreAppPackageOverrides Include="@(ReferencePath->'%(FileName)|$(ReferencePackSharedFxVersion)')" Condition=" '%(ReferencePath.ReferenceSourceTarget)' == 'ProjectReference' AND '%(ReferencePath.IsReferenceAssembly)' == 'true' " />
diff --git a/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj
index 9b6fe29f6f16..d22776996579 100644
--- a/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj
+++ b/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj
@@ -21,6 +21,10 @@ This package is an internal implementation of the .NET Core SDK and is not meant
true
DotnetPlatform
+
+ false
+ true
+
aspnetcore_base_runtime.version
$(InstallersOutputPath)$(BaseRuntimeVersionFileName)
@@ -293,11 +297,13 @@ This package is an internal implementation of the .NET Core SDK and is not meant
-->
$(IntermediateOutputPath)crossgen\
+ $(IntermediateOutputPath)platformAssemblies\
$(CrossgenToolDir)$(LibPrefix)clrjit$(LibExtension)
+
@@ -306,13 +312,19 @@ This package is an internal implementation of the .NET Core SDK and is not meant
+
+
+
<_PlatformAssemblyPaths Include="$(CrossgenToolDir)" />
- <_PlatformAssemblyPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)')" />
+
+ <_PlatformAssemblyPaths Include="@(ReferenceCopyLocalPaths->'%(RootDir)%(Directory)')" Condition="'%(ReferenceCopyLocalPaths.ProjectPath)' == ''"/>
+
+ <_PlatformAssemblyPaths Include="$(CrossgenPlatformAssembliesDir)"/>
diff --git a/src/Hosting/Abstractions/ref/Microsoft.AspNetCore.Hosting.Abstractions.csproj b/src/Hosting/Abstractions/ref/Microsoft.AspNetCore.Hosting.Abstractions.csproj
index 494c7d61aea9..6b19abf98b3c 100644
--- a/src/Hosting/Abstractions/ref/Microsoft.AspNetCore.Hosting.Abstractions.csproj
+++ b/src/Hosting/Abstractions/ref/Microsoft.AspNetCore.Hosting.Abstractions.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj
index 40455060c2a7..b05a67027c63 100644
--- a/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj
+++ b/src/Hosting/Hosting/ref/Microsoft.AspNetCore.Hosting.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Hosting/Server.Abstractions/ref/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj b/src/Hosting/Server.Abstractions/ref/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj
index b9c84f7e3318..74101ce3e9ad 100644
--- a/src/Hosting/Server.Abstractions/ref/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj
+++ b/src/Hosting/Server.Abstractions/ref/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Hosting/test/testassets/IStartupInjectionAssemblyName/IStartupInjectionAssemblyName.csproj b/src/Hosting/test/testassets/IStartupInjectionAssemblyName/IStartupInjectionAssemblyName.csproj
index 3ea37b679b61..da860f1783a0 100644
--- a/src/Hosting/test/testassets/IStartupInjectionAssemblyName/IStartupInjectionAssemblyName.csproj
+++ b/src/Hosting/test/testassets/IStartupInjectionAssemblyName/IStartupInjectionAssemblyName.csproj
@@ -6,6 +6,11 @@
+
+
+
diff --git a/src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.csproj b/src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.csproj
index e78b0215243f..20451ebbd5d1 100644
--- a/src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.csproj
+++ b/src/Html/Abstractions/ref/Microsoft.AspNetCore.Html.Abstractions.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Http/Authentication.Abstractions/ref/Microsoft.AspNetCore.Authentication.Abstractions.csproj b/src/Http/Authentication.Abstractions/ref/Microsoft.AspNetCore.Authentication.Abstractions.csproj
index 192cf512702b..8f174166c194 100644
--- a/src/Http/Authentication.Abstractions/ref/Microsoft.AspNetCore.Authentication.Abstractions.csproj
+++ b/src/Http/Authentication.Abstractions/ref/Microsoft.AspNetCore.Authentication.Abstractions.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Http/Authentication.Core/ref/Microsoft.AspNetCore.Authentication.Core.csproj b/src/Http/Authentication.Core/ref/Microsoft.AspNetCore.Authentication.Core.csproj
index 9f4bc43e08c9..4be3f7558218 100644
--- a/src/Http/Authentication.Core/ref/Microsoft.AspNetCore.Authentication.Core.csproj
+++ b/src/Http/Authentication.Core/ref/Microsoft.AspNetCore.Authentication.Core.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Http/Headers/ref/Microsoft.Net.Http.Headers.csproj b/src/Http/Headers/ref/Microsoft.Net.Http.Headers.csproj
index 4ac03925e975..167dfca0e1f2 100644
--- a/src/Http/Headers/ref/Microsoft.Net.Http.Headers.csproj
+++ b/src/Http/Headers/ref/Microsoft.Net.Http.Headers.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.csproj b/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.csproj
index fe49c287c453..2d9a7fc6c201 100644
--- a/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.csproj
+++ b/src/Http/Http.Abstractions/ref/Microsoft.AspNetCore.Http.Abstractions.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Http/Http.Extensions/ref/Microsoft.AspNetCore.Http.Extensions.csproj b/src/Http/Http.Extensions/ref/Microsoft.AspNetCore.Http.Extensions.csproj
index bba8cc701ed3..cb0f17657723 100644
--- a/src/Http/Http.Extensions/ref/Microsoft.AspNetCore.Http.Extensions.csproj
+++ b/src/Http/Http.Extensions/ref/Microsoft.AspNetCore.Http.Extensions.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Http/Http.Features/ref/Microsoft.AspNetCore.Http.Features.csproj b/src/Http/Http.Features/ref/Microsoft.AspNetCore.Http.Features.csproj
index 1e342f6be0f8..410b369e199a 100644
--- a/src/Http/Http.Features/ref/Microsoft.AspNetCore.Http.Features.csproj
+++ b/src/Http/Http.Features/ref/Microsoft.AspNetCore.Http.Features.csproj
@@ -2,6 +2,8 @@
netstandard2.0;netcoreapp3.0
+ false
+
diff --git a/src/Http/Http/ref/Microsoft.AspNetCore.Http.csproj b/src/Http/Http/ref/Microsoft.AspNetCore.Http.csproj
index f59274ed7f7f..ee10cacf378e 100644
--- a/src/Http/Http/ref/Microsoft.AspNetCore.Http.csproj
+++ b/src/Http/Http/ref/Microsoft.AspNetCore.Http.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Http/Metadata/ref/Microsoft.AspNetCore.Metadata.csproj b/src/Http/Metadata/ref/Microsoft.AspNetCore.Metadata.csproj
index 5bd3e643f1ed..4507a5bf6963 100644
--- a/src/Http/Metadata/ref/Microsoft.AspNetCore.Metadata.csproj
+++ b/src/Http/Metadata/ref/Microsoft.AspNetCore.Metadata.csproj
@@ -2,6 +2,8 @@
netstandard2.0
+ false
+
diff --git a/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj b/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj
index fe6fa231aa74..5d03f3ad8b33 100644
--- a/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj
+++ b/src/Http/Routing.Abstractions/ref/Microsoft.AspNetCore.Routing.Abstractions.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Http/Routing/ref/Microsoft.AspNetCore.Routing.csproj b/src/Http/Routing/ref/Microsoft.AspNetCore.Routing.csproj
index a68d86a042b3..a2214046b7c7 100644
--- a/src/Http/Routing/ref/Microsoft.AspNetCore.Routing.csproj
+++ b/src/Http/Routing/ref/Microsoft.AspNetCore.Routing.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Http/WebUtilities/ref/Microsoft.AspNetCore.WebUtilities.csproj b/src/Http/WebUtilities/ref/Microsoft.AspNetCore.WebUtilities.csproj
index e48d4616afc1..b0338e92a7b6 100644
--- a/src/Http/WebUtilities/ref/Microsoft.AspNetCore.WebUtilities.csproj
+++ b/src/Http/WebUtilities/ref/Microsoft.AspNetCore.WebUtilities.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Identity/Core/ref/Microsoft.AspNetCore.Identity.csproj b/src/Identity/Core/ref/Microsoft.AspNetCore.Identity.csproj
index 29f919fbe6ba..f67a4d2fcfd4 100644
--- a/src/Identity/Core/ref/Microsoft.AspNetCore.Identity.csproj
+++ b/src/Identity/Core/ref/Microsoft.AspNetCore.Identity.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Identity/Extensions.Core/ref/Microsoft.Extensions.Identity.Core.csproj b/src/Identity/Extensions.Core/ref/Microsoft.Extensions.Identity.Core.csproj
index 50615ee4e140..1d3566072206 100644
--- a/src/Identity/Extensions.Core/ref/Microsoft.Extensions.Identity.Core.csproj
+++ b/src/Identity/Extensions.Core/ref/Microsoft.Extensions.Identity.Core.csproj
@@ -2,6 +2,8 @@
netstandard2.0;netcoreapp3.0
+ false
+
diff --git a/src/Identity/Extensions.Stores/ref/Microsoft.Extensions.Identity.Stores.csproj b/src/Identity/Extensions.Stores/ref/Microsoft.Extensions.Identity.Stores.csproj
index 7a0f728cb474..c101e8c68de9 100644
--- a/src/Identity/Extensions.Stores/ref/Microsoft.Extensions.Identity.Stores.csproj
+++ b/src/Identity/Extensions.Stores/ref/Microsoft.Extensions.Identity.Stores.csproj
@@ -2,6 +2,8 @@
netstandard2.0;netcoreapp3.0
+ false
+
diff --git a/src/Identity/test/Identity.Test/Microsoft.AspNetCore.Identity.Test.csproj b/src/Identity/test/Identity.Test/Microsoft.AspNetCore.Identity.Test.csproj
index 9ed81cbcb856..4b7ada7431f3 100644
--- a/src/Identity/test/Identity.Test/Microsoft.AspNetCore.Identity.Test.csproj
+++ b/src/Identity/test/Identity.Test/Microsoft.AspNetCore.Identity.Test.csproj
@@ -26,7 +26,7 @@
<_Parameter1>Microsoft.AspNetCore.Testing.DefaultUIProjectPath
<_Parameter2>$([System.IO.Path]::GetDirectoryName('%(_IdentitUIDefaultUI.MSBuildSourceProjectFile)'))
-
+
diff --git a/src/Middleware/CORS/ref/Microsoft.AspNetCore.Cors.csproj b/src/Middleware/CORS/ref/Microsoft.AspNetCore.Cors.csproj
index 7f2aea45709d..9a9c7c1a778b 100644
--- a/src/Middleware/CORS/ref/Microsoft.AspNetCore.Cors.csproj
+++ b/src/Middleware/CORS/ref/Microsoft.AspNetCore.Cors.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/CORS/test/testassets/Directory.Build.props b/src/Middleware/CORS/test/testassets/Directory.Build.props
index b49282fb6f94..b8ad72d258a1 100644
--- a/src/Middleware/CORS/test/testassets/Directory.Build.props
+++ b/src/Middleware/CORS/test/testassets/Directory.Build.props
@@ -6,4 +6,11 @@
+
+
+
+
+
diff --git a/src/Middleware/Diagnostics.Abstractions/ref/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj b/src/Middleware/Diagnostics.Abstractions/ref/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj
index eeb85ae2392b..474f1b32beec 100644
--- a/src/Middleware/Diagnostics.Abstractions/ref/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj
+++ b/src/Middleware/Diagnostics.Abstractions/ref/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/Diagnostics/ref/Microsoft.AspNetCore.Diagnostics.csproj b/src/Middleware/Diagnostics/ref/Microsoft.AspNetCore.Diagnostics.csproj
index a33f66dfdc24..8e7f04791be2 100644
--- a/src/Middleware/Diagnostics/ref/Microsoft.AspNetCore.Diagnostics.csproj
+++ b/src/Middleware/Diagnostics/ref/Microsoft.AspNetCore.Diagnostics.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/HealthChecks/ref/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj b/src/Middleware/HealthChecks/ref/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj
index fc3578697815..a47255bc03de 100644
--- a/src/Middleware/HealthChecks/ref/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj
+++ b/src/Middleware/HealthChecks/ref/Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/HealthChecks/test/testassets/HealthChecksSample/HealthChecksSample.csproj b/src/Middleware/HealthChecks/test/testassets/HealthChecksSample/HealthChecksSample.csproj
index d41b7835391c..c471797b20e6 100644
--- a/src/Middleware/HealthChecks/test/testassets/HealthChecksSample/HealthChecksSample.csproj
+++ b/src/Middleware/HealthChecks/test/testassets/HealthChecksSample/HealthChecksSample.csproj
@@ -5,6 +5,11 @@
+
+
+
diff --git a/src/Middleware/HostFiltering/ref/Microsoft.AspNetCore.HostFiltering.csproj b/src/Middleware/HostFiltering/ref/Microsoft.AspNetCore.HostFiltering.csproj
index 0c879a2ba6fb..96216afaf557 100644
--- a/src/Middleware/HostFiltering/ref/Microsoft.AspNetCore.HostFiltering.csproj
+++ b/src/Middleware/HostFiltering/ref/Microsoft.AspNetCore.HostFiltering.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/HttpOverrides/ref/Microsoft.AspNetCore.HttpOverrides.csproj b/src/Middleware/HttpOverrides/ref/Microsoft.AspNetCore.HttpOverrides.csproj
index c2cc3193452b..59fcb83baa48 100644
--- a/src/Middleware/HttpOverrides/ref/Microsoft.AspNetCore.HttpOverrides.csproj
+++ b/src/Middleware/HttpOverrides/ref/Microsoft.AspNetCore.HttpOverrides.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/HttpOverrides/test/Microsoft.AspNetCore.HttpOverrides.Tests.csproj b/src/Middleware/HttpOverrides/test/Microsoft.AspNetCore.HttpOverrides.Tests.csproj
index c5f9652ddca2..eb0950221c0f 100644
--- a/src/Middleware/HttpOverrides/test/Microsoft.AspNetCore.HttpOverrides.Tests.csproj
+++ b/src/Middleware/HttpOverrides/test/Microsoft.AspNetCore.HttpOverrides.Tests.csproj
@@ -5,6 +5,11 @@
+
+
+
diff --git a/src/Middleware/HttpsPolicy/ref/Microsoft.AspNetCore.HttpsPolicy.csproj b/src/Middleware/HttpsPolicy/ref/Microsoft.AspNetCore.HttpsPolicy.csproj
index 05f6a4263778..8a24b069bf71 100644
--- a/src/Middleware/HttpsPolicy/ref/Microsoft.AspNetCore.HttpsPolicy.csproj
+++ b/src/Middleware/HttpsPolicy/ref/Microsoft.AspNetCore.HttpsPolicy.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/Localization.Routing/ref/Microsoft.AspNetCore.Localization.Routing.csproj b/src/Middleware/Localization.Routing/ref/Microsoft.AspNetCore.Localization.Routing.csproj
index 050ea0a4afc8..3dccb4a64b1e 100644
--- a/src/Middleware/Localization.Routing/ref/Microsoft.AspNetCore.Localization.Routing.csproj
+++ b/src/Middleware/Localization.Routing/ref/Microsoft.AspNetCore.Localization.Routing.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/Localization/ref/Microsoft.AspNetCore.Localization.csproj b/src/Middleware/Localization/ref/Microsoft.AspNetCore.Localization.csproj
index 9ae583c9ec0a..5ec5751618b6 100644
--- a/src/Middleware/Localization/ref/Microsoft.AspNetCore.Localization.csproj
+++ b/src/Middleware/Localization/ref/Microsoft.AspNetCore.Localization.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/ResponseCaching.Abstractions/ref/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj b/src/Middleware/ResponseCaching.Abstractions/ref/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj
index fe10c4e2a8b9..dbc557d00505 100644
--- a/src/Middleware/ResponseCaching.Abstractions/ref/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj
+++ b/src/Middleware/ResponseCaching.Abstractions/ref/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/ResponseCaching/ref/Microsoft.AspNetCore.ResponseCaching.csproj b/src/Middleware/ResponseCaching/ref/Microsoft.AspNetCore.ResponseCaching.csproj
index 985bcdbbc9b7..8fa81e3f4ac7 100644
--- a/src/Middleware/ResponseCaching/ref/Microsoft.AspNetCore.ResponseCaching.csproj
+++ b/src/Middleware/ResponseCaching/ref/Microsoft.AspNetCore.ResponseCaching.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/ResponseCompression/ref/Microsoft.AspNetCore.ResponseCompression.csproj b/src/Middleware/ResponseCompression/ref/Microsoft.AspNetCore.ResponseCompression.csproj
index 4cf1f5fef450..8f6c10f1e817 100644
--- a/src/Middleware/ResponseCompression/ref/Microsoft.AspNetCore.ResponseCompression.csproj
+++ b/src/Middleware/ResponseCompression/ref/Microsoft.AspNetCore.ResponseCompression.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/Rewrite/ref/Microsoft.AspNetCore.Rewrite.csproj b/src/Middleware/Rewrite/ref/Microsoft.AspNetCore.Rewrite.csproj
index a4014b3f9491..6d6b32b2d98a 100644
--- a/src/Middleware/Rewrite/ref/Microsoft.AspNetCore.Rewrite.csproj
+++ b/src/Middleware/Rewrite/ref/Microsoft.AspNetCore.Rewrite.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/Session/ref/Microsoft.AspNetCore.Session.csproj b/src/Middleware/Session/ref/Microsoft.AspNetCore.Session.csproj
index 3c0a92ba63d5..ce87d521d4b0 100644
--- a/src/Middleware/Session/ref/Microsoft.AspNetCore.Session.csproj
+++ b/src/Middleware/Session/ref/Microsoft.AspNetCore.Session.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/StaticFiles/ref/Microsoft.AspNetCore.StaticFiles.csproj b/src/Middleware/StaticFiles/ref/Microsoft.AspNetCore.StaticFiles.csproj
index 0bd2351f3816..d59c4f309cf6 100644
--- a/src/Middleware/StaticFiles/ref/Microsoft.AspNetCore.StaticFiles.csproj
+++ b/src/Middleware/StaticFiles/ref/Microsoft.AspNetCore.StaticFiles.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Middleware/StaticFiles/test/FunctionalTests/Microsoft.AspNetCore.StaticFiles.FunctionalTests.csproj b/src/Middleware/StaticFiles/test/FunctionalTests/Microsoft.AspNetCore.StaticFiles.FunctionalTests.csproj
index e6c8278b3039..82bb9259ae6f 100644
--- a/src/Middleware/StaticFiles/test/FunctionalTests/Microsoft.AspNetCore.StaticFiles.FunctionalTests.csproj
+++ b/src/Middleware/StaticFiles/test/FunctionalTests/Microsoft.AspNetCore.StaticFiles.FunctionalTests.csproj
@@ -26,6 +26,12 @@
+
+
+
+
diff --git a/src/Middleware/WebSockets/ref/Microsoft.AspNetCore.WebSockets.csproj b/src/Middleware/WebSockets/ref/Microsoft.AspNetCore.WebSockets.csproj
index e5ae8749c656..d5319c29c18e 100644
--- a/src/Middleware/WebSockets/ref/Microsoft.AspNetCore.WebSockets.csproj
+++ b/src/Middleware/WebSockets/ref/Microsoft.AspNetCore.WebSockets.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.csproj b/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.csproj
index 90b63669a8da..9e352d857fd7 100644
--- a/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.csproj
+++ b/src/Mvc/Mvc.Abstractions/ref/Microsoft.AspNetCore.Mvc.Abstractions.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Mvc/Mvc.Analyzers/test/AttributesShouldNotBeAppliedToPageModelAnalyzerTest.cs b/src/Mvc/Mvc.Analyzers/test/AttributesShouldNotBeAppliedToPageModelAnalyzerTest.cs
index baac0e3b4f4d..2c271ff9323e 100644
--- a/src/Mvc/Mvc.Analyzers/test/AttributesShouldNotBeAppliedToPageModelAnalyzerTest.cs
+++ b/src/Mvc/Mvc.Analyzers/test/AttributesShouldNotBeAppliedToPageModelAnalyzerTest.cs
@@ -7,7 +7,7 @@
using Microsoft.CodeAnalysis;
using Xunit;
-namespace Microsoft.AspNetCore.Mvc.Analyzers.Test
+namespace Microsoft.AspNetCore.Mvc.Analyzers
{
public class AttributesShouldNotBeAppliedToPageModelAnalyzerTest
{
diff --git a/src/Mvc/Mvc.Analyzers/test/CodeAnalysisExtensionsTest.cs b/src/Mvc/Mvc.Analyzers/test/CodeAnalysisExtensionsTest.cs
index a9630cba1f31..129ed81059fa 100644
--- a/src/Mvc/Mvc.Analyzers/test/CodeAnalysisExtensionsTest.cs
+++ b/src/Mvc/Mvc.Analyzers/test/CodeAnalysisExtensionsTest.cs
@@ -491,7 +491,7 @@ public async Task IsAssignable_ReturnsTrueIfAncestorTypeImplementsInterface()
private Task GetCompilation([CallerMemberName] string testMethod = "")
{
var testSource = MvcTestSource.Read(GetType().Name, testMethod);
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
return project.GetCompilationAsync();
}
diff --git a/src/Mvc/Mvc.Analyzers/test/Infrastructure/MvcDiagnosticAnalyzerRunner.cs b/src/Mvc/Mvc.Analyzers/test/Infrastructure/MvcDiagnosticAnalyzerRunner.cs
index f29cff84d1f6..2b4b8dca9a9c 100644
--- a/src/Mvc/Mvc.Analyzers/test/Infrastructure/MvcDiagnosticAnalyzerRunner.cs
+++ b/src/Mvc/Mvc.Analyzers/test/Infrastructure/MvcDiagnosticAnalyzerRunner.cs
@@ -2,6 +2,10 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
+using System.Collections.Immutable;
+using System.IO;
+using System.Linq;
+using System.Reflection;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Analyzer.Testing;
using Microsoft.CodeAnalysis;
@@ -20,7 +24,28 @@ public MvcDiagnosticAnalyzerRunner(DiagnosticAnalyzer analyzer)
public Task GetDiagnosticsAsync(string source)
{
- return GetDiagnosticsAsync(sources: new[] { source }, Analyzer, Array.Empty());
+ var project = CreateProjectWithReferencesInBinDir(GetType().Assembly, source);
+
+ return GetDiagnosticsAsync(project);
+ }
+
+ public static Project CreateProjectWithReferencesInBinDir(Assembly testAssembly, params string[] source)
+ {
+ // The deps file in the project is incorrect and does not contain "compile" nodes for some references.
+ // However these binaries are always present in the bin output. As a "temporary" workaround, we'll add
+ // every dll file that's present in the test's build output as a metadatareference.
+
+ var project = DiagnosticProject.Create(testAssembly, source);
+
+ foreach (var assembly in Directory.EnumerateFiles(AppContext.BaseDirectory, "*.dll"))
+ {
+ if (!project.MetadataReferences.Any(c => string.Equals(Path.GetFileNameWithoutExtension(c.Display), Path.GetFileNameWithoutExtension(assembly), StringComparison.OrdinalIgnoreCase)))
+ {
+ project = project.AddMetadataReference(MetadataReference.CreateFromFile(assembly));
+ }
+ }
+
+ return project;
}
public Task GetDiagnosticsAsync(Project project)
diff --git a/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs b/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs
index 361f6d3cb502..8efec91c16ca 100644
--- a/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs
+++ b/src/Mvc/Mvc.Analyzers/test/TopLevelParameterNameAnalyzerTest.cs
@@ -126,7 +126,7 @@ public async Task IsProblematicParameter_IgnoresNonPublicProperties()
private async Task IsProblematicParameterTest([CallerMemberName] string testMethod = "")
{
var testSource = MvcTestSource.Read(GetType().Name, testMethod);
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
var compilation = await project.GetCompilationAsync();
@@ -207,7 +207,7 @@ public async Task GetName_ReturnsFirstName_IfMultipleAttributesAreSpecified()
private async Task GetCompilationForGetName()
{
var testSource = MvcTestSource.Read(GetType().Name, "GetNameTests");
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
var compilation = await project.GetCompilationAsync();
return compilation;
@@ -218,7 +218,7 @@ public async Task SpecifiesModelType_ReturnsFalse_IfModelBinderDoesNotSpecifyTyp
{
var testMethod = nameof(SpecifiesModelType_ReturnsFalse_IfModelBinderDoesNotSpecifyType);
var testSource = MvcTestSource.Read(GetType().Name, "SpecifiesModelTypeTests");
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
var compilation = await project.GetCompilationAsync();
Assert.True(TopLevelParameterNameAnalyzer.SymbolCache.TryCreate(compilation, out var symbolCache));
@@ -236,7 +236,7 @@ public async Task SpecifiesModelType_ReturnsTrue_IfModelBinderSpecifiesTypeFromC
{
var testMethod = nameof(SpecifiesModelType_ReturnsTrue_IfModelBinderSpecifiesTypeFromConstructor);
var testSource = MvcTestSource.Read(GetType().Name, "SpecifiesModelTypeTests");
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
var compilation = await project.GetCompilationAsync();
Assert.True(TopLevelParameterNameAnalyzer.SymbolCache.TryCreate(compilation, out var symbolCache));
@@ -254,7 +254,7 @@ public async Task SpecifiesModelType_ReturnsTrue_IfModelBinderSpecifiesTypeFromP
{
var testMethod = nameof(SpecifiesModelType_ReturnsTrue_IfModelBinderSpecifiesTypeFromProperty);
var testSource = MvcTestSource.Read(GetType().Name, "SpecifiesModelTypeTests");
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
var compilation = await project.GetCompilationAsync();
Assert.True(TopLevelParameterNameAnalyzer.SymbolCache.TryCreate(compilation, out var symbolCache));
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/ActualApiResponseMetadataFactoryTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/ActualApiResponseMetadataFactoryTest.cs
index d9c15bddaa89..cca12582dd9c 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/ActualApiResponseMetadataFactoryTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/ActualApiResponseMetadataFactoryTest.cs
@@ -64,7 +64,7 @@ public IActionResult Get(int id)
}
}
}";
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { source });
var compilation = await project.GetCompilationAsync();
Assert.True(ApiControllerSymbolCache.TryCreate(compilation, out var symbolCache));
@@ -301,7 +301,7 @@ public async Task TryGetActualResponseMetadata_ActionReturningNotFoundAndModel()
private async Task<(bool result, IList responseMetadatas, TestSource testSource)> TryGetActualResponseMetadata(string typeName, string methodName)
{
var testSource = MvcTestSource.Read(GetType().Name, "TryGetActualResponseMetadataTests");
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
var compilation = await GetCompilation("TryGetActualResponseMetadataTests");
@@ -340,7 +340,7 @@ public async Task TryGetActualResponseMetadata_ActionReturningNotFoundAndModel()
private async Task RunInspectReturnStatementSyntax(string source, string test)
{
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { source });
var compilation = await project.GetCompilationAsync();
Assert.True(ApiControllerSymbolCache.TryCreate(compilation, out var symbolCache));
@@ -361,7 +361,7 @@ public async Task TryGetActualResponseMetadata_ActionReturningNotFoundAndModel()
private Task GetCompilation(string test)
{
var testSource = MvcTestSource.Read(GetType().Name, test);
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
return project.GetCompilationAsync();
}
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/AddResponseTypeAttributeCodeFixProviderIntegrationTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/AddResponseTypeAttributeCodeFixProviderIntegrationTest.cs
index 9ba677d101f5..10a77b8b42a2 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/AddResponseTypeAttributeCodeFixProviderIntegrationTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/AddResponseTypeAttributeCodeFixProviderIntegrationTest.cs
@@ -13,7 +13,7 @@ public class AddResponseTypeAttributeCodeFixProviderIntegrationTest
{
private MvcDiagnosticAnalyzerRunner AnalyzerRunner { get; } = new MvcDiagnosticAnalyzerRunner(new ApiConventionAnalyzer());
- private CodeFixRunner CodeFixRunner => CodeFixRunner.Default;
+ private CodeFixRunner CodeFixRunner { get; } = new IgnoreCS1701WarningCodeFixRunner();
[Fact]
public Task CodeFixAddsStatusCodes() => RunTest();
@@ -75,7 +75,7 @@ private async Task RunTest([CallerMemberName] string testMethod = "")
private Project GetProject(string testMethod)
{
var testSource = Read(testMethod + ".Input");
- return DiagnosticProject.Create(GetType().Assembly, new[] { testSource });
+ return MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource });
}
private string Read(string fileName)
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/ApiActionsDoNotRequireExplicitModelValidationCheckCodeFixProviderTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/ApiActionsDoNotRequireExplicitModelValidationCheckCodeFixProviderTest.cs
index 918a04940abd..b8b096d9c947 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/ApiActionsDoNotRequireExplicitModelValidationCheckCodeFixProviderTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/ApiActionsDoNotRequireExplicitModelValidationCheckCodeFixProviderTest.cs
@@ -13,7 +13,7 @@ public class ApiActionsDoNotRequireExplicitModelValidationCheckCodeFixProviderTe
{
private MvcDiagnosticAnalyzerRunner AnalyzerRunner { get; } = new MvcDiagnosticAnalyzerRunner(new ApiActionsDoNotRequireExplicitModelValidationCheckAnalyzer());
- private CodeFixRunner CodeFixRunner => CodeFixRunner.Default;
+ private CodeFixRunner CodeFixRunner { get; } = new IgnoreCS1701WarningCodeFixRunner();
[Fact]
public Task CodeFixRemovesModelStateIsInvalidBlockWithIfNotCheck()
@@ -48,7 +48,7 @@ private async Task RunTest([CallerMemberName] string testMethod = "")
private Project GetProject(string testMethod)
{
var testSource = Read(testMethod + ".Input");
- return DiagnosticProject.Create(GetType().Assembly, new[] { testSource });
+ return MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource });
}
private string Read(string fileName)
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/ApiControllerFactsTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/ApiControllerFactsTest.cs
index 786aeeb9d758..6c2f5a81d17e 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/ApiControllerFactsTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/ApiControllerFactsTest.cs
@@ -35,7 +35,7 @@ public DoesNotExist Get(int id)
}
}
}";
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { source });
var compilation = await project.GetCompilationAsync();
Assert.True(ApiControllerSymbolCache.TryCreate(compilation, out var symbolCache));
var method = (IMethodSymbol)compilation.GetTypeByMetadataName("TestNamespace.TestController").GetMembers("Get").First();
@@ -130,7 +130,7 @@ public async Task IsApiControllerAction_ReturnsTrue_IfAttributeIsDeclaredOnAssem
private Task GetCompilation(string testFile = "TestFile")
{
var testSource = MvcTestSource.Read(GetType().Name, testFile);
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
return project.GetCompilationAsync();
}
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/IgnoreCS1701WarningCodeFixRunner.cs b/src/Mvc/Mvc.Api.Analyzers/test/IgnoreCS1701WarningCodeFixRunner.cs
new file mode 100644
index 000000000000..e46b39f1458b
--- /dev/null
+++ b/src/Mvc/Mvc.Api.Analyzers/test/IgnoreCS1701WarningCodeFixRunner.cs
@@ -0,0 +1,18 @@
+// 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.Linq;
+using Microsoft.AspNetCore.Analyzer.Testing;
+using Microsoft.CodeAnalysis;
+
+namespace Microsoft.AspNetCore.Mvc.Api.Analyzers
+{
+ public class IgnoreCS1701WarningCodeFixRunner : CodeFixRunner
+ {
+ protected override CompilationOptions ConfigureCompilationOptions(CompilationOptions options)
+ {
+ options = base.ConfigureCompilationOptions(options);
+ return options.WithSpecificDiagnosticOptions(new[] { "CS1701" }.ToDictionary(c => c, _ => ReportDiagnostic.Suppress));
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/MvcFactsTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/MvcFactsTest.cs
index 054426295190..4498d009f174 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/MvcFactsTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/MvcFactsTest.cs
@@ -226,7 +226,7 @@ private IMethodSymbol GetDisposableDispose(Compilation compilation)
private Task GetCompilation(string test)
{
var testSource = MvcTestSource.Read(GetType().Name, test);
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
return project.GetCompilationAsync();
}
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiConventionMatcherTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiConventionMatcherTest.cs
index 1d0ab00c1b2e..011485292c1c 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiConventionMatcherTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiConventionMatcherTest.cs
@@ -559,7 +559,7 @@ public async Task GetTypeMatchBehavior_ReturnsValueFromAttributes()
private Task GetCompilationAsync(string test = "SymbolApiConventionMatcherTestFile")
{
var testSource = MvcTestSource.Read(GetType().Name, test);
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
return project.GetCompilationAsync();
}
diff --git a/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiResponseMetadataProviderTest.cs b/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiResponseMetadataProviderTest.cs
index f9adfa062afc..daf18e83f179 100644
--- a/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiResponseMetadataProviderTest.cs
+++ b/src/Mvc/Mvc.Api.Analyzers/test/SymbolApiResponseMetadataProviderTest.cs
@@ -478,7 +478,7 @@ public async Task GetErrorResponseType_ReturnsTypeDefinedAtAction()
private Task GetCompilation(string test)
{
var testSource = MvcTestSource.Read(GetType().Name, test);
- var project = DiagnosticProject.Create(GetType().Assembly, new[] { testSource.Source });
+ var project = MvcDiagnosticAnalyzerRunner.CreateProjectWithReferencesInBinDir(GetType().Assembly, new[] { testSource.Source });
return project.GetCompilationAsync();
}
diff --git a/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj b/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj
index 10680b3401d4..5e6529a67fa0 100644
--- a/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj
+++ b/src/Mvc/Mvc.ApiExplorer/ref/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+ false
+
diff --git a/src/Mvc/Mvc.Core/ref/Directory.Build.props b/src/Mvc/Mvc.Core/ref/Directory.Build.props
new file mode 100644
index 000000000000..ea5de23302dc
--- /dev/null
+++ b/src/Mvc/Mvc.Core/ref/Directory.Build.props
@@ -0,0 +1,7 @@
+
+
+
+
+ $(NoWarn);CS0169
+
+
\ No newline at end of file
diff --git a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs
index d3e44fb47120..1e379512413b 100644
--- a/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs
+++ b/src/Mvc/Mvc.Core/ref/Microsoft.AspNetCore.Mvc.Core.Manual.cs
@@ -5,3 +5,1247 @@
using Microsoft.AspNetCore.Mvc.Formatters;
[assembly: TypeForwardedTo(typeof(InputFormatterException))]
+
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.ApiExplorer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.Cors, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.DataAnnotations, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.Formatters.Xml, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.Localization, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.Razor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.RazorPages, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.TagHelpers, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.Testing, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Mvc.ViewFeatures, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
+
+namespace Microsoft.AspNetCore.Internal
+{
+ internal partial interface IResponseCacheFilter
+ {
+ }
+}
+namespace Microsoft.AspNetCore.Mvc
+{
+ internal partial class MvcCoreMvcOptionsSetup
+ {
+ private readonly Microsoft.Extensions.Options.IOptions _jsonOptions;
+ private readonly Microsoft.Extensions.Logging.ILoggerFactory _loggerFactory;
+ private readonly Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory _readerFactory;
+ public MvcCoreMvcOptionsSetup(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory) { }
+ public MvcCoreMvcOptionsSetup(Microsoft.AspNetCore.Mvc.Infrastructure.IHttpRequestStreamReaderFactory readerFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions jsonOptions) { }
+ public void Configure(Microsoft.AspNetCore.Mvc.MvcOptions options) { }
+ internal static void ConfigureAdditionalModelMetadataDetailsProviders(System.Collections.Generic.IList modelMetadataDetailsProviders) { }
+ public void PostConfigure(string name, Microsoft.AspNetCore.Mvc.MvcOptions options) { }
+ }
+}
+namespace Microsoft.AspNetCore.Mvc.Controllers
+{
+ internal delegate System.Threading.Tasks.Task ControllerBinderDelegate(Microsoft.AspNetCore.Mvc.ControllerContext controllerContext, object controller, System.Collections.Generic.Dictionary arguments);
+}
+namespace Microsoft.AspNetCore.Mvc.ActionConstraints
+{
+ internal partial class DefaultActionConstraintProvider : Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintProvider
+ {
+ public DefaultActionConstraintProvider() { }
+ public int Order { get { throw null; } }
+ public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext context) { }
+ public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintProviderContext context) { }
+ private void ProvideConstraint(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintItem item, System.IServiceProvider services) { }
+ }
+ internal partial class ActionConstraintCache
+ {
+ private readonly Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraintProvider[] _actionConstraintProviders;
+ private readonly Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider _collectionProvider;
+ private volatile Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintCache.InnerCache _currentCache;
+ public ActionConstraintCache(Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider collectionProvider, System.Collections.Generic.IEnumerable actionConstraintProviders) { }
+ internal Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintCache.InnerCache CurrentCache { get { throw null; } }
+ private void ExecuteProviders(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action, System.Collections.Generic.List items) { }
+ private System.Collections.Generic.IReadOnlyList ExtractActionConstraints(System.Collections.Generic.List items) { throw null; }
+ public System.Collections.Generic.IReadOnlyList GetActionConstraints(Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action) { throw null; }
+ private System.Collections.Generic.IReadOnlyList GetActionConstraintsFromEntry(Microsoft.AspNetCore.Mvc.ActionConstraints.ActionConstraintCache.CacheEntry entry, Microsoft.AspNetCore.Http.HttpContext httpContext, Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor action) { throw null; }
+ internal readonly partial struct CacheEntry
+ {
+ private readonly object _dummy;
+ public CacheEntry(System.Collections.Generic.IReadOnlyList actionConstraints) { throw null; }
+ public CacheEntry(System.Collections.Generic.List items) { throw null; }
+ public System.Collections.Generic.IReadOnlyList ActionConstraints { get { throw null; } }
+ public System.Collections.Generic.List Items { get { throw null; } }
+ }
+ internal partial class InnerCache
+ {
+ private readonly Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection _actions;
+ private readonly System.Collections.Concurrent.ConcurrentDictionary _Entries_k__BackingField;
+ public InnerCache(Microsoft.AspNetCore.Mvc.Infrastructure.ActionDescriptorCollection actions) { }
+ public System.Collections.Concurrent.ConcurrentDictionary Entries { get { throw null; } }
+ public int Version { get { throw null; } }
+ }
+ }
+}
+namespace Microsoft.AspNetCore.Mvc.ApplicationModels
+{
+ internal partial class ApiBehaviorApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider
+ {
+ private readonly System.Collections.Generic.List _ActionModelConventions_k__BackingField;
+ public ApiBehaviorApplicationModelProvider(Microsoft.Extensions.Options.IOptions apiBehaviorOptions, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider, Microsoft.AspNetCore.Mvc.Infrastructure.IClientErrorFactory clientErrorFactory, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { }
+ public System.Collections.Generic.List ActionModelConventions { get { throw null; } }
+ public int Order { get { throw null; } }
+ private static void EnsureActionIsAttributeRouted(Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel actionModel) { }
+ private static bool IsApiController(Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel controller) { throw null; }
+ public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+ public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+ }
+ internal partial class ApplicationModelFactory
+ {
+ private readonly Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider[] _applicationModelProviders;
+ private readonly System.Collections.Generic.IList _conventions;
+ public ApplicationModelFactory(System.Collections.Generic.IEnumerable applicationModelProviders, Microsoft.Extensions.Options.IOptions options) { }
+ private static void AddActionToMethodInfoMap(System.Collections.Generic.Dictionary>> actionsByMethod, Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action, Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel selector) { }
+ private static void AddActionToRouteNameMap(System.Collections.Generic.Dictionary>> actionsByRouteName, Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action, Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel selector) { }
+ private static System.Collections.Generic.List AddErrorNumbers(System.Collections.Generic.IEnumerable namedRoutedErrors) { throw null; }
+ public Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel CreateApplicationModel(System.Collections.Generic.IEnumerable controllerTypes) { throw null; }
+ private static string CreateAttributeRoutingAggregateErrorMessage(System.Collections.Generic.IEnumerable individualErrors) { throw null; }
+ private static string CreateMixedRoutedActionDescriptorsErrorMessage(System.Reflection.MethodInfo method, System.Collections.Generic.List> actions) { throw null; }
+ public static System.Collections.Generic.List Flatten(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModel application, System.Func flattener) { throw null; }
+ private static void ReplaceAttributeRouteTokens(Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel controller, Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel action, Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel selector, System.Collections.Generic.List errors) { }
+ private static void ValidateActionGroupConfiguration(System.Reflection.MethodInfo method, System.Collections.Generic.List> actions, System.Collections.Generic.IDictionary routingConfigurationErrors) { }
+ private static System.Collections.Generic.List ValidateNamedAttributeRoutedActions(System.Collections.Generic.Dictionary>> actionsByRouteName) { throw null; }
+ }
+ internal partial class ControllerActionDescriptorProvider
+ {
+ private readonly Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelFactory _applicationModelFactory;
+ private readonly Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager _partManager;
+ public ControllerActionDescriptorProvider(Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager partManager, Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelFactory applicationModelFactory) { }
+ public int Order { get { throw null; } }
+ private System.Collections.Generic.IEnumerable GetControllerTypes() { throw null; }
+ internal System.Collections.Generic.IEnumerable GetDescriptors() { throw null; }
+ public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) { }
+ public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorProviderContext context) { }
+ }
+ internal partial class AuthorizationApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider
+ {
+ private readonly Microsoft.AspNetCore.Mvc.MvcOptions _mvcOptions;
+ private readonly Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider _policyProvider;
+ public AuthorizationApplicationModelProvider(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, Microsoft.Extensions.Options.IOptions mvcOptions) { }
+ public int Order { get { throw null; } }
+ public static Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter GetFilter(Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider policyProvider, System.Collections.Generic.IEnumerable authData) { throw null; }
+ public void OnProvidersExecuted(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+ public void OnProvidersExecuting(Microsoft.AspNetCore.Mvc.ApplicationModels.ApplicationModelProviderContext context) { }
+ }
+ internal partial class DefaultApplicationModelProvider : Microsoft.AspNetCore.Mvc.ApplicationModels.IApplicationModelProvider
+ {
+ private readonly Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider _modelMetadataProvider;
+ private readonly Microsoft.AspNetCore.Mvc.MvcOptions _mvcOptions;
+ private readonly System.Func _supportsAllRequests;
+ private readonly System.Func _supportsNonGetRequests;
+ public DefaultApplicationModelProvider(Microsoft.Extensions.Options.IOptions mvcOptionsAccessor, Microsoft.AspNetCore.Mvc.ModelBinding.IModelMetadataProvider modelMetadataProvider) { }
+ public int Order { get { throw null; } }
+ private static void AddRange(System.Collections.Generic.IList list, System.Collections.Generic.IEnumerable items) { }
+ private string CanonicalizeActionName(string actionName) { throw null; }
+ internal Microsoft.AspNetCore.Mvc.ApplicationModels.ActionModel CreateActionModel(System.Reflection.TypeInfo typeInfo, System.Reflection.MethodInfo methodInfo) { throw null; }
+ internal Microsoft.AspNetCore.Mvc.ApplicationModels.ControllerModel CreateControllerModel(System.Reflection.TypeInfo typeInfo) { throw null; }
+ internal Microsoft.AspNetCore.Mvc.ApplicationModels.ParameterModel CreateParameterModel(System.Reflection.ParameterInfo parameterInfo) { throw null; }
+ internal Microsoft.AspNetCore.Mvc.ApplicationModels.PropertyModel CreatePropertyModel(System.Reflection.PropertyInfo propertyInfo) { throw null; }
+ private static Microsoft.AspNetCore.Mvc.ApplicationModels.SelectorModel CreateSelectorModel(Microsoft.AspNetCore.Mvc.Routing.IRouteTemplateProvider route, System.Collections.Generic.IList