diff --git a/AsyncRx.NET/Directory.build.props b/AsyncRx.NET/Directory.build.props
index d7701965fb..49bfd26987 100644
--- a/AsyncRx.NET/Directory.build.props
+++ b/AsyncRx.NET/Directory.build.props
@@ -31,7 +31,7 @@
-
+
diff --git a/Ix.NET/Source/Directory.Build.props b/Ix.NET/Source/Directory.Build.props
index e0146a53a7..992f96c76f 100644
--- a/Ix.NET/Source/Directory.Build.props
+++ b/Ix.NET/Source/Directory.Build.props
@@ -34,7 +34,7 @@
-
+
diff --git a/Rx.NET/Integration/LinuxTests/LinuxTests.csproj b/Rx.NET/Integration/LinuxTests/LinuxTests.csproj
index a898655ed6..237b4f433d 100644
--- a/Rx.NET/Integration/LinuxTests/LinuxTests.csproj
+++ b/Rx.NET/Integration/LinuxTests/LinuxTests.csproj
@@ -24,11 +24,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj b/Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj
index 60e8782a80..dc511dfec3 100644
--- a/Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj
+++ b/Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj
@@ -23,11 +23,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Rx.NET/Source/CodeCoverage.runsettings b/Rx.NET/Source/CodeCoverage.runsettings
index ae69d48664..92350aec57 100644
--- a/Rx.NET/Source/CodeCoverage.runsettings
+++ b/Rx.NET/Source/CodeCoverage.runsettings
@@ -13,4 +13,7 @@
+
+ 120000
+
diff --git a/Rx.NET/Source/Directory.build.props b/Rx.NET/Source/Directory.build.props
index 2e16b5d1c9..8bc43042c6 100644
--- a/Rx.NET/Source/Directory.build.props
+++ b/Rx.NET/Source/Directory.build.props
@@ -36,7 +36,7 @@
-
+
diff --git a/Rx.NET/Source/src/Microsoft.Reactive.Testing/IAssertionException.cs b/Rx.NET/Source/src/Microsoft.Reactive.Testing/IAssertionException.cs
new file mode 100644
index 0000000000..be5f6f643a
--- /dev/null
+++ b/Rx.NET/Source/src/Microsoft.Reactive.Testing/IAssertionException.cs
@@ -0,0 +1,29 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT License.
+// See the LICENSE file in the project root for more information.
+
+namespace Xunit.Sdk
+{
+ ///
+ /// Marker interface required by xUnit.
+ ///
+ ///
+ ///
+ /// The xunit.assert.source package normally includes this. However, unlike all the
+ /// other types that package adds to our project, this one type is declared to be
+ /// unconditionally public.
+ ///
+ ///
+ /// We think this might be a bug: https://github.com/xunit/xunit/issues/2703
+ ///
+ ///
+ /// In any case, we do not want our library to be exporting public types in the Xunit.Sdk
+ /// namespace. So the csproj file carefully excludes the Asserts/Sdk/IAssertionException.cs
+ /// file supplied by the package (which defines this type as public), and this file
+ /// supplies an equivalent but internal definition.
+ ///
+ ///
+ internal interface IAssertionException
+ {
+ }
+}
diff --git a/Rx.NET/Source/src/Microsoft.Reactive.Testing/Microsoft.Reactive.Testing.csproj b/Rx.NET/Source/src/Microsoft.Reactive.Testing/Microsoft.Reactive.Testing.csproj
index f735fad7db..ca10b35ddb 100644
--- a/Rx.NET/Source/src/Microsoft.Reactive.Testing/Microsoft.Reactive.Testing.csproj
+++ b/Rx.NET/Source/src/Microsoft.Reactive.Testing/Microsoft.Reactive.Testing.csproj
@@ -8,12 +8,19 @@
Rx;Reactive;Extensions;Observable;LINQ;Events
Reactive Extensions (Rx) for .NET - Testing Library
- $(NoWarn);CA1305;CA1307;CA1032;CA1064;CA1822;CA1812
+ $(NoWarn);IDE0054;IDE0066;CA1305;CA1307;CA1032;CA1064;CA1822;CA1812;CA1823
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Api/ApiApprovalTests.Core.verified.cs b/Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Api/ApiApprovalTests.Core.verified.cs
index 0cb5836964..54ddca5e03 100644
--- a/Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Api/ApiApprovalTests.Core.verified.cs
+++ b/Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Api/ApiApprovalTests.Core.verified.cs
@@ -1,4 +1,4 @@
-[assembly: System.CLSCompliant(true)]
+[assembly: System.CLSCompliant(true)]
[assembly: System.Resources.NeutralResourcesLanguage("en-US")]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"Tests.System.Reactive, PublicKey=00240000048000009400000006020000002400005253413100040000010001008f5cff058631087031f8350f30a36fa078027e5df2316b564352dc9eb7af7ce856016d3c5e9d058036fe73bb5c83987bd3fc0793fbe25d633cc4f37c2bd5f1d717cd2a81661bec08f0971dc6078e17bde372b89005e7738a0ebd501b896ca3e8315270ff64df7809dd912c372df61785a5085b3553b7872e39b1b1cc0ff5a6bc")]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"Tests.System.Reactive.Uwp.DeviceRunner, PublicKey=00240000048000009400000006020000002400005253413100040000010001008f5cff058631087031f8350f30a36fa078027e5df2316b564352dc9eb7af7ce856016d3c5e9d058036fe73bb5c83987bd3fc0793fbe25d633cc4f37c2bd5f1d717cd2a81661bec08f0971dc6078e17bde372b89005e7738a0ebd501b896ca3e8315270ff64df7809dd912c372df61785a5085b3553b7872e39b1b1cc0ff5a6bc")]
@@ -61,7 +61,7 @@ public override int GetHashCode() { }
public static bool operator !=(System.Reactive.EventPattern first, System.Reactive.EventPattern second) { }
public static bool operator ==(System.Reactive.EventPattern first, System.Reactive.EventPattern second) { }
}
- [System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Module | System.AttributeTargets.Class | System.AttributeTargets.Struct | System.AttributeTargets.Enum | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field | System.AttributeTargets.Event | System.AttributeTargets.Interface | System.AttributeTargets.Parameter | System.AttributeTargets.Delegate | System.AttributeTargets.ReturnValue | System.AttributeTargets.GenericParameter | System.AttributeTargets.All)]
+ [System.AttributeUsage(System.AttributeTargets.All)]
[System.Reactive.Experimental]
public sealed class ExperimentalAttribute : System.Attribute
{
@@ -850,7 +850,7 @@ public interface IQbservableProvider
System.Reactive.Linq.IQbservable CreateQuery(System.Linq.Expressions.Expression expression);
}
public interface IQbservable : System.IObservable, System.Reactive.Linq.IQbservable { }
- [System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.All, Inherited=false)]
+ [System.AttributeUsage(System.AttributeTargets.Class, Inherited=false)]
public sealed class LocalQueryMethodImplementationTypeAttribute : System.Attribute
{
public LocalQueryMethodImplementationTypeAttribute(System.Type targetType) { }
@@ -862,7 +862,7 @@ public static System.IObservable Aggregate(this System.IObserv
public static System.IObservable Aggregate(this System.IObservable source, TAccumulate seed, System.Func accumulator) { }
public static System.IObservable Aggregate(this System.IObservable source, TAccumulate seed, System.Func accumulator, System.Func resultSelector) { }
public static System.IObservable All(this System.IObservable source, System.Func predicate) { }
- public static System.IObservable Amb(params System.IObservable<>[] sources) { }
+ public static System.IObservable Amb(params System.IObservable[] sources) { }
public static System.IObservable Amb(this System.Collections.Generic.IEnumerable> sources) { }
public static System.IObservable Amb(this System.IObservable first, System.IObservable second) { }
public static System.Reactive.Joins.Pattern And(this System.IObservable left, System.IObservable right) { }
@@ -910,7 +910,7 @@ public static System.IObservable Case(System.Func Case(System.Func selector, System.Collections.Generic.IDictionary> sources, System.Reactive.Concurrency.IScheduler scheduler)
where TValue : notnull { }
public static System.IObservable Cast(this System.IObservable