diff --git a/eng/ProjectReferences.props b/eng/ProjectReferences.props
index 3ae9c65125c..4340aa36c00 100644
--- a/eng/ProjectReferences.props
+++ b/eng/ProjectReferences.props
@@ -5,7 +5,6 @@
-
@@ -57,6 +56,7 @@
+
diff --git a/eng/targets/ReferenceAssembly.targets b/eng/targets/ReferenceAssembly.targets
index 207b8b2bae3..83bc0d3118e 100644
--- a/eng/targets/ReferenceAssembly.targets
+++ b/eng/targets/ReferenceAssembly.targets
@@ -42,7 +42,7 @@
-
+
<_RefSourceOutputPath>$([System.IO.Directory]::GetParent('$(MSBuildProjectDirectory)'))/ref/
<_RefSourceFileName>$(AssemblyName).$(TargetFramework).cs
diff --git a/eng/targets/ResolveReferences.targets b/eng/targets/ResolveReferences.targets
index 05aabfdd8d3..3206d0b23f6 100644
--- a/eng/targets/ResolveReferences.targets
+++ b/eng/targets/ResolveReferences.targets
@@ -47,7 +47,6 @@
Projects should only use the project references instead of baseline package references when:
* preparing a new major or minor release (i.e. a non-servicing builds)
* when a project is a test or sample project
-
We don't use project references between components in servicing builds between compontents to preserve the baseline as much as possible.
-->
true
@@ -55,11 +54,11 @@
false
- true
+ true
false
- true
+ true
false
@@ -74,16 +73,23 @@
true
+
<_ImplicitPackageReference Include="@(PackageReference->WithMetadataValue('IsImplicitlyDefined', 'true'))" />
- <_ExplicitPackageReference Include="@(PackageReference)" Exclude="@(_ImplicitPackageReference)" />
- <_OriginalReferences Include="@(Reference)" />
-
-
+
+ <_AllowedExplicitPackageReference Include="@(PackageReference->WithMetadataValue('AllowExplicitReference', 'true'))" />
+
+ <_ExplicitPackageReference Include="@(PackageReference)" Exclude="@(_ImplicitPackageReference);@(_AllowedExplicitPackageReference)" />
+
+ <_UnusedProjectReferenceProvider Include="@(ProjectReferenceProvider)" Exclude="@(Reference)" />
-
+ <_OriginalReferences Include="@(Reference)" />
+
<_ProjectReferenceByAssemblyName Condition="'$(UseProjectReferences)' == 'true'"
Include="@(ProjectReferenceProvider)"
- Exclude="@(UnusedProjectReferenceProvider)" />
+ Exclude="@(_UnusedProjectReferenceProvider)" />
@@ -97,15 +103,39 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
ContentFiles;Build
All
-
+
+
+
+
<_BaselinePackageReferenceWithVersion Include="@(Reference)" Condition=" '$(IsServicingBuild)' == 'true' OR '$(UseLatestPackageReferences)' != 'true' ">
%(BaselinePackageReference.Identity)
%(BaselinePackageReference.Version)
@@ -132,7 +163,7 @@
-
+
<_PrivatePackageReferenceWithVersion Include="@(Reference->WithMetadataValue('PrivateAssets', 'All'))">
%(LatestPackageReference.Identity)
%(LatestPackageReference.Version)
@@ -145,27 +176,33 @@
- <_BaselinePackageReferenceWithVersion Remove="@(_BaselinePackageReferenceWithVersion)" />
<_LatestPackageReferenceWithVersion Remove="@(_LatestPackageReferenceWithVersion)" />
+ <_BaselinePackageReferenceWithVersion Remove="@(_BaselinePackageReferenceWithVersion)" />
+ <_PrivatePackageReferenceWithVersion Remove="@(_PrivatePackageReferenceWithVersion)" />
<_ImplicitPackageReference Remove="@(_ImplicitPackageReference)" />
-
+
<_ExplicitPackageReference Remove="@(_ExplicitPackageReference)" />
-
+
+
+
-
+ Text="Could not resolve this reference. Could not locate the package or project for "%(Reference.Identity)". Did you update baselines and dependencies lists? See docs/ReferenceResolution.md for more details." />
+
<_TargetFramework Remove="@(_TargetFramework)" />
@@ -182,13 +219,46 @@
- $([MSBuild]::MakeRelative($(RepoRoot), '$(MSBuildProjectDirectory)/../ref/$(MSBuildProjectFile)'))
+ $(MSBuildProjectDirectory)/../ref/
+ $([MSBuild]::MakeRelative($(RepoRoot), '$(ReferenceAssemblyDirectory)$(MSBuildProjectFile)'))
+
+
+
+
+ $([MSBuild]::ValueOrDefault($(IsAspNetCoreApp),'false'))
+ $([MSBuild]::ValueOrDefault($(IsShippingPackage),'false'))
$([MSBuild]::MakeRelative($(RepoRoot), $(MSBuildProjectFullPath)))
$(ReferenceAssemblyProjectFileRelativePath)
+
+
+
+ <_CustomCollectProjectReferenceDependsOn Condition="'$(TargetFramework)' != ''">ResolveProjectReferences
+
+
+
+ <_TargetFrameworks Include="$(TargetFrameworks)" />
+
+
+
+
+
+
+
+
diff --git a/src/Logging/Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj b/src/Logging/Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj
index b46b3119a23..641424cfc01 100644
--- a/src/Logging/Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj
+++ b/src/Logging/Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj
@@ -9,6 +9,8 @@
+
+
diff --git a/src/Logging/Logging/src/Microsoft.Extensions.Logging.csproj b/src/Logging/Logging/src/Microsoft.Extensions.Logging.csproj
index 54e77ec36d7..9129b292f10 100644
--- a/src/Logging/Logging/src/Microsoft.Extensions.Logging.csproj
+++ b/src/Logging/Logging/src/Microsoft.Extensions.Logging.csproj
@@ -9,12 +9,9 @@
true
-
-
-
-
+
diff --git a/src/Logging/Logging/src/ProviderAliasUtilities.cs b/src/Shared/src/ProviderAliasUtilities/ProviderAliasUtilities.cs
similarity index 95%
rename from src/Logging/Logging/src/ProviderAliasUtilities.cs
rename to src/Shared/src/ProviderAliasUtilities/ProviderAliasUtilities.cs
index 20610774112..0631b8d833b 100644
--- a/src/Logging/Logging/src/ProviderAliasUtilities.cs
+++ b/src/Shared/src/ProviderAliasUtilities/ProviderAliasUtilities.cs
@@ -6,7 +6,7 @@
namespace Microsoft.Extensions.Logging
{
- internal class ProviderAliasUtilities
+ internal static class ProviderAliasUtilities
{
private const string AliasAttibuteTypeFullName = "Microsoft.Extensions.Logging.ProviderAliasAttribute";
private const string AliasAttibuteAliasProperty = "Alias";
diff --git a/src/TestingUtils/Microsoft.AspNetCore.Testing/ref/Microsoft.AspNetCore.Testing.csproj b/src/TestingUtils/Microsoft.AspNetCore.Testing/ref/Microsoft.AspNetCore.Testing.csproj
new file mode 100644
index 00000000000..4606a541110
--- /dev/null
+++ b/src/TestingUtils/Microsoft.AspNetCore.Testing/ref/Microsoft.AspNetCore.Testing.csproj
@@ -0,0 +1,32 @@
+
+
+
+ netstandard2.0;net46
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/TestingUtils/Microsoft.AspNetCore.Testing/ref/Microsoft.AspNetCore.Testing.net46.cs b/src/TestingUtils/Microsoft.AspNetCore.Testing/ref/Microsoft.AspNetCore.Testing.net46.cs
new file mode 100644
index 00000000000..c90ffb3a0f2
--- /dev/null
+++ b/src/TestingUtils/Microsoft.AspNetCore.Testing/ref/Microsoft.AspNetCore.Testing.net46.cs
@@ -0,0 +1,269 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Microsoft.AspNetCore.Testing
+{
+ [System.AttributeUsageAttribute(System.AttributeTargets.Method, AllowMultiple=false)]
+ [Xunit.Sdk.XunitTestCaseDiscovererAttribute("Microsoft.AspNetCore.Testing.ConditionalFactDiscoverer", "Microsoft.AspNetCore.Testing")]
+ public partial class ConditionalFactAttribute : Xunit.FactAttribute
+ {
+ public ConditionalFactAttribute() { }
+ }
+ [System.AttributeUsageAttribute(System.AttributeTargets.Method, AllowMultiple=false)]
+ [Xunit.Sdk.XunitTestCaseDiscovererAttribute("Microsoft.AspNetCore.Testing.ConditionalTheoryDiscoverer", "Microsoft.AspNetCore.Testing")]
+ public partial class ConditionalTheoryAttribute : Xunit.TheoryAttribute
+ {
+ public ConditionalTheoryAttribute() { }
+ }
+ public partial class CultureReplacer : System.IDisposable
+ {
+ public CultureReplacer(System.Globalization.CultureInfo culture, System.Globalization.CultureInfo uiCulture) { }
+ public CultureReplacer(string culture = "en-GB", string uiCulture = "en-US") { }
+ public static System.Globalization.CultureInfo DefaultCulture { get { throw null; } }
+ public static string DefaultCultureName { get { throw null; } }
+ public static string DefaultUICultureName { get { throw null; } }
+ public void Dispose() { }
+ }
+ [System.AttributeUsageAttribute(System.AttributeTargets.Method, Inherited=true, AllowMultiple=false)]
+ public sealed partial class DockerOnlyAttribute : System.Attribute, Microsoft.AspNetCore.Testing.ITestCondition
+ {
+ public DockerOnlyAttribute() { }
+ public bool IsMet { get { throw null; } }
+ public string SkipReason { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
+ }
+ [System.AttributeUsageAttribute(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true)]
+ public partial class EnvironmentVariableSkipConditionAttribute : System.Attribute, Microsoft.AspNetCore.Testing.ITestCondition
+ {
+ public EnvironmentVariableSkipConditionAttribute(string variableName, params string[] values) { }
+ public bool IsMet { get { throw null; } }
+ public bool RunOnMatch { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
+ public string SkipReason { get { throw null; } }
+ }
+ public static partial class ExceptionAssert
+ {
+ public static System.ArgumentException ThrowsArgument(System.Action testCode, string paramName, string exceptionMessage) { throw null; }
+ public static System.Threading.Tasks.Task ThrowsArgumentAsync(System.Func testCode, string paramName, string exceptionMessage) { throw null; }
+ public static System.ArgumentNullException ThrowsArgumentNull(System.Action testCode, string paramName) { throw null; }
+ public static System.ArgumentException ThrowsArgumentNullOrEmpty(System.Action testCode, string paramName) { throw null; }
+ public static System.Threading.Tasks.Task ThrowsArgumentNullOrEmptyAsync(System.Func testCode, string paramName) { throw null; }
+ public static System.ArgumentException ThrowsArgumentNullOrEmptyString(System.Action testCode, string paramName) { throw null; }
+ public static System.Threading.Tasks.Task ThrowsArgumentNullOrEmptyStringAsync(System.Func testCode, string paramName) { throw null; }
+ public static System.ArgumentOutOfRangeException ThrowsArgumentOutOfRange(System.Action testCode, string paramName, string exceptionMessage, object actualValue = null) { throw null; }
+ [System.Diagnostics.DebuggerStepThroughAttribute]
+ public static System.Threading.Tasks.Task ThrowsAsync(System.Func testCode, string exceptionMessage) where TException : System.Exception { throw null; }
+ public static TException Throws(System.Action testCode) where TException : System.Exception { throw null; }
+ public static TException Throws(System.Action testCode, string exceptionMessage) where TException : System.Exception { throw null; }
+ public static TException Throws(System.Func