diff --git a/Directory.Build.targets b/Directory.Build.targets
index 53b3f6e1da..a5761bff02 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -1,7 +1,7 @@
- $(MicrosoftNETCoreApp20PackageVersion)
- $(MicrosoftNETCoreApp21PackageVersion)
- $(NETStandardLibrary20PackageVersion)
+ $(MicrosoftNETCoreApp22PackageVersion)
+
+ 99.9
diff --git a/benchmarkapps/BenchmarkServer/BenchmarkServer.csproj b/benchmarkapps/BenchmarkServer/BenchmarkServer.csproj
index 7fe4c51423..66e3e33302 100644
--- a/benchmarkapps/BenchmarkServer/BenchmarkServer.csproj
+++ b/benchmarkapps/BenchmarkServer/BenchmarkServer.csproj
@@ -1,7 +1,7 @@
- netcoreapp2.1
+ netcoreapp2.2
$([System.String]::Copy($(MicrosoftAspNetCoreAllPackageVersion)).Replace('2.2', '1.1'))
diff --git a/benchmarkapps/Crankier/Crankier.csproj b/benchmarkapps/Crankier/Crankier.csproj
index b4f4eeb920..d73db04ff4 100644
--- a/benchmarkapps/Crankier/Crankier.csproj
+++ b/benchmarkapps/Crankier/Crankier.csproj
@@ -1,8 +1,8 @@
-
+
Exe
- netcoreapp2.1
+ netcoreapp2.2
Microsoft.AspNetCore.SignalR.CranksRevenge
diff --git a/benchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks.csproj b/benchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks.csproj
index 545d54f9b3..d391a18436 100644
--- a/benchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks.csproj
+++ b/benchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks/Microsoft.AspNetCore.SignalR.Microbenchmarks.csproj
@@ -1,8 +1,8 @@
-
+
Exe
- netcoreapp2.1
+ netcoreapp2.2
diff --git a/build/dependencies.props b/build/dependencies.props
index 06f0429e50..1ab3645940 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -55,8 +55,7 @@
2.2.0-preview1-34135
2.2.0-preview1-34135
2.2.0-preview1-34135
- 2.0.0
- 2.2.0-preview1-26424-04
+ 2.2.0-preview1-26502-01
15.6.1
4.7.49
2.0.3
diff --git a/build/repo.props b/build/repo.props
index 097feaba63..472d056854 100644
--- a/build/repo.props
+++ b/build/repo.props
@@ -19,7 +19,6 @@
-
-
+
diff --git a/clients/ts/FunctionalTests/FunctionalTests.csproj b/clients/ts/FunctionalTests/FunctionalTests.csproj
index d9c7edd8f9..5fa49f3dd2 100644
--- a/clients/ts/FunctionalTests/FunctionalTests.csproj
+++ b/clients/ts/FunctionalTests/FunctionalTests.csproj
@@ -1,7 +1,7 @@
- netcoreapp2.1
+ netcoreapp2.2
True
diff --git a/clients/ts/FunctionalTests/selenium/run-tests.ts b/clients/ts/FunctionalTests/selenium/run-tests.ts
index c74603b12c..18095d7119 100644
--- a/clients/ts/FunctionalTests/selenium/run-tests.ts
+++ b/clients/ts/FunctionalTests/selenium/run-tests.ts
@@ -100,7 +100,7 @@ if (chromePath) {
(async () => {
try {
- const serverPath = path.resolve(__dirname, "..", "bin", configuration, "netcoreapp2.1", "FunctionalTests.dll");
+ const serverPath = path.resolve(__dirname, "..", "bin", configuration, "netcoreapp2.2", "FunctionalTests.dll");
debug(`Launching Functional Test Server: ${serverPath}`);
const dotnet = spawn("dotnet", [serverPath], {
diff --git a/samples/ClientSample/ClientSample.csproj b/samples/ClientSample/ClientSample.csproj
index 966067f59b..b38755fe73 100644
--- a/samples/ClientSample/ClientSample.csproj
+++ b/samples/ClientSample/ClientSample.csproj
@@ -1,7 +1,7 @@
- netcoreapp2.1;net461
+ netcoreapp2.2;net461
false
Exe
diff --git a/samples/ClientSample/Tcp/SocketReceiver.cs b/samples/ClientSample/Tcp/SocketReceiver.cs
index 8c6421f078..f8e5d87b61 100644
--- a/samples/ClientSample/Tcp/SocketReceiver.cs
+++ b/samples/ClientSample/Tcp/SocketReceiver.cs
@@ -22,7 +22,7 @@ namespace ClientSample
public SocketAwaitable ReceiveAsync(Memory buffer)
{
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
_eventArgs.SetBuffer(buffer);
#else
var segment = buffer.GetArray();
diff --git a/samples/ClientSample/Tcp/SocketSender.cs b/samples/ClientSample/Tcp/SocketSender.cs
index f87fa09413..49a44fbb27 100644
--- a/samples/ClientSample/Tcp/SocketSender.cs
+++ b/samples/ClientSample/Tcp/SocketSender.cs
@@ -32,7 +32,7 @@ namespace ClientSample
return SendAsync(buffers.First);
}
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
if (!_eventArgs.MemoryBuffer.Equals(Memory.Empty))
#else
if (_eventArgs.Buffer != null)
@@ -59,7 +59,7 @@ namespace ClientSample
_eventArgs.BufferList = null;
}
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
_eventArgs.SetBuffer(MemoryMarshal.AsMemory(memory));
#else
var segment = memory.GetArray();
diff --git a/samples/SignalRSamples/SignalRSamples.csproj b/samples/SignalRSamples/SignalRSamples.csproj
index 7ad313946a..76733a4496 100644
--- a/samples/SignalRSamples/SignalRSamples.csproj
+++ b/samples/SignalRSamples/SignalRSamples.csproj
@@ -1,7 +1,7 @@
- netcoreapp2.1;net461
+ netcoreapp2.2;net461
false
diff --git a/samples/SocialWeather/SocialWeather.csproj b/samples/SocialWeather/SocialWeather.csproj
index 1b6413a83c..e96e794705 100644
--- a/samples/SocialWeather/SocialWeather.csproj
+++ b/samples/SocialWeather/SocialWeather.csproj
@@ -1,7 +1,7 @@
- netcoreapp2.1;net461
+ netcoreapp2.2;net461
false
diff --git a/samples/WebSocketSample/WebSocketSample.csproj b/samples/WebSocketSample/WebSocketSample.csproj
index 6148552dba..8227ddf127 100644
--- a/samples/WebSocketSample/WebSocketSample.csproj
+++ b/samples/WebSocketSample/WebSocketSample.csproj
@@ -1,7 +1,7 @@
- netcoreapp2.1;net461
+ netcoreapp2.2;net461
Exe
false
diff --git a/src/Common/MemoryBufferWriter.cs b/src/Common/MemoryBufferWriter.cs
index 139c647cbc..e13f2be3f7 100644
--- a/src/Common/MemoryBufferWriter.cs
+++ b/src/Common/MemoryBufferWriter.cs
@@ -185,7 +185,7 @@ namespace Microsoft.AspNetCore.Internal
{
if (_completedSegments != null)
{
- // Copy full segments
+ // Copy full segments
var count = _completedSegments.Count;
for (var i = 0; i < count; i++)
{
@@ -293,7 +293,7 @@ namespace Microsoft.AspNetCore.Internal
}
}
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
public override void Write(ReadOnlySpan span)
{
if (_currentSegment != null && span.TryCopyTo(_currentSegment.AsSpan(_position)))
diff --git a/src/Common/PipeWriterStream.cs b/src/Common/PipeWriterStream.cs
index 94cdfb936e..1545acd9b1 100644
--- a/src/Common/PipeWriterStream.cs
+++ b/src/Common/PipeWriterStream.cs
@@ -60,7 +60,7 @@ namespace System.IO.Pipelines
return WriteCoreAsync(buffer.AsMemory(offset, count), cancellationToken).AsTask();
}
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
public override ValueTask WriteAsync(ReadOnlyMemory source, CancellationToken cancellationToken = default)
{
return WriteCoreAsync(source, cancellationToken);
diff --git a/src/Common/StreamExtensions.cs b/src/Common/StreamExtensions.cs
index 60da892475..8c971ede0d 100644
--- a/src/Common/StreamExtensions.cs
+++ b/src/Common/StreamExtensions.cs
@@ -15,7 +15,7 @@ namespace System.IO
{
if (buffer.IsSingleSegment)
{
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
return stream.WriteAsync(buffer.First, cancellationToken);
#else
var isArray = MemoryMarshal.TryGetArray(buffer.First, out var arraySegment);
@@ -33,7 +33,7 @@ namespace System.IO
var position = buffer.Start;
while (buffer.TryGet(ref position, out var segment))
{
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
await stream.WriteAsync(segment, cancellationToken);
#else
var isArray = MemoryMarshal.TryGetArray(segment, out var arraySegment);
diff --git a/src/Common/Utf8BufferTextReader.cs b/src/Common/Utf8BufferTextReader.cs
index 4f22ea5b16..8927373370 100644
--- a/src/Common/Utf8BufferTextReader.cs
+++ b/src/Common/Utf8BufferTextReader.cs
@@ -72,7 +72,7 @@ namespace Microsoft.AspNetCore.SignalR.Internal
var source = _utf8Buffer.First.Span;
var bytesUsed = 0;
var charsUsed = 0;
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
var destination = new Span(buffer, index, count);
_decoder.Convert(source, destination, false, out bytesUsed, out charsUsed, out var completed);
#else
diff --git a/src/Common/Utf8BufferTextWriter.cs b/src/Common/Utf8BufferTextWriter.cs
index f0f1a4edc8..f8592069bd 100644
--- a/src/Common/Utf8BufferTextWriter.cs
+++ b/src/Common/Utf8BufferTextWriter.cs
@@ -111,7 +111,7 @@ namespace Microsoft.AspNetCore.Internal
// this should be an exceptional case
var bytesUsed = 0;
var charsUsed = 0;
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
_encoder.Convert(new Span(&value, 1), destination, false, out charsUsed, out bytesUsed, out _);
#else
fixed (byte* destinationBytes = &MemoryMarshal.GetReference(destination))
@@ -167,7 +167,7 @@ namespace Microsoft.AspNetCore.Internal
var bytesUsed = 0;
var charsUsed = 0;
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
_encoder.Convert(buffer, destination, false, out charsUsed, out bytesUsed, out _);
#else
unsafe
diff --git a/src/Common/WebSocketExtensions.cs b/src/Common/WebSocketExtensions.cs
index 8e3d4feb50..63eb7e62b3 100644
--- a/src/Common/WebSocketExtensions.cs
+++ b/src/Common/WebSocketExtensions.cs
@@ -13,7 +13,7 @@ namespace System.Net.WebSockets
{
public static ValueTask SendAsync(this WebSocket webSocket, ReadOnlySequence buffer, WebSocketMessageType webSocketMessageType, CancellationToken cancellationToken = default)
{
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
if (buffer.IsSingleSegment)
{
return webSocket.SendAsync(buffer.First, webSocketMessageType, endOfMessage: true, cancellationToken);
@@ -41,7 +41,7 @@ namespace System.Net.WebSockets
var position = buffer.Start;
while (buffer.TryGet(ref position, out var segment))
{
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
await webSocket.SendAsync(segment, webSocketMessageType, endOfMessage: false, cancellationToken);
#else
var isArray = MemoryMarshal.TryGetArray(segment, out var arraySegment);
@@ -51,7 +51,7 @@ namespace System.Net.WebSockets
}
// Empty end of message frame
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
await webSocket.SendAsync(Memory.Empty, webSocketMessageType, endOfMessage: true, cancellationToken);
#else
await webSocket.SendAsync(new ArraySegment(Array.Empty()), webSocketMessageType, endOfMessage: true, cancellationToken);
diff --git a/src/Microsoft.AspNetCore.Http.Connections.Client/HttpConnection.cs b/src/Microsoft.AspNetCore.Http.Connections.Client/HttpConnection.cs
index 176554485f..84b7c10ade 100644
--- a/src/Microsoft.AspNetCore.Http.Connections.Client/HttpConnection.cs
+++ b/src/Microsoft.AspNetCore.Http.Connections.Client/HttpConnection.cs
@@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Client
private static readonly Task _noAccessToken = Task.FromResult(null);
private static readonly TimeSpan HttpClientTimeout = TimeSpan.FromSeconds(120);
-#if !NETCOREAPP2_1
+#if !NETCOREAPP2_2
private static readonly Version Windows8Version = new Version(6, 2);
#endif
@@ -557,7 +557,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Client
private static bool IsWebSocketsSupported()
{
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
// .NET Core 2.1 and above has a managed implementation
return true;
#else
diff --git a/src/Microsoft.AspNetCore.Http.Connections.Client/Internal/WebSocketsTransport.cs b/src/Microsoft.AspNetCore.Http.Connections.Client/Internal/WebSocketsTransport.cs
index d471216b7d..0a78e0e17a 100644
--- a/src/Microsoft.AspNetCore.Http.Connections.Client/Internal/WebSocketsTransport.cs
+++ b/src/Microsoft.AspNetCore.Http.Connections.Client/Internal/WebSocketsTransport.cs
@@ -194,7 +194,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Client.Internal
{
while (true)
{
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
var result = await socket.ReceiveAsync(Memory.Empty, CancellationToken.None);
if (result.MessageType == WebSocketMessageType.Close)
@@ -210,7 +210,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Client.Internal
}
#endif
var memory = _application.Output.GetMemory();
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
// Because we checked the CloseStatus from the 0 byte read above, we don't need to check again after reading
var receiveResult = await socket.ReceiveAsync(memory, CancellationToken.None);
#else
@@ -220,7 +220,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Client.Internal
// Exceptions are handled above where the send and receive tasks are being run.
var receiveResult = await socket.ReceiveAsync(arraySegment, CancellationToken.None);
#endif
- // Need to check again for NetCoreApp2.1 because a close can happen between a 0-byte read and the actual read
+ // Need to check again for NetCoreApp2.2 because a close can happen between a 0-byte read and the actual read
if (receiveResult.MessageType == WebSocketMessageType.Close)
{
Log.WebSocketClosed(_logger, _webSocket.CloseStatus);
diff --git a/src/Microsoft.AspNetCore.Http.Connections.Client/Microsoft.AspNetCore.Http.Connections.Client.csproj b/src/Microsoft.AspNetCore.Http.Connections.Client/Microsoft.AspNetCore.Http.Connections.Client.csproj
index 4c8534efe8..2c330f24b5 100644
--- a/src/Microsoft.AspNetCore.Http.Connections.Client/Microsoft.AspNetCore.Http.Connections.Client.csproj
+++ b/src/Microsoft.AspNetCore.Http.Connections.Client/Microsoft.AspNetCore.Http.Connections.Client.csproj
@@ -2,7 +2,7 @@
Client for ASP.NET Core Connection Handlers
- netstandard2.0;netcoreapp2.1
+ netstandard2.0;netcoreapp2.2
diff --git a/src/Microsoft.AspNetCore.Http.Connections/Internal/Transports/WebSocketsTransport.cs b/src/Microsoft.AspNetCore.Http.Connections/Internal/Transports/WebSocketsTransport.cs
index e77dbfe102..0312f5488b 100644
--- a/src/Microsoft.AspNetCore.Http.Connections/Internal/Transports/WebSocketsTransport.cs
+++ b/src/Microsoft.AspNetCore.Http.Connections/Internal/Transports/WebSocketsTransport.cs
@@ -142,7 +142,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports
{
while (true)
{
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
// Do a 0 byte read so that idle connections don't allocate a buffer when waiting for a read
var result = await socket.ReceiveAsync(Memory.Empty, CancellationToken.None);
@@ -153,7 +153,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports
#endif
var memory = _application.Output.GetMemory();
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
var receiveResult = await socket.ReceiveAsync(memory, CancellationToken.None);
#else
var isArray = MemoryMarshal.TryGetArray(memory, out var arraySegment);
@@ -162,7 +162,7 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal.Transports
// Exceptions are handled above where the send and receive tasks are being run.
var receiveResult = await socket.ReceiveAsync(arraySegment, CancellationToken.None);
#endif
- // Need to check again for NetCoreApp2.1 because a close can happen between a 0-byte read and the actual read
+ // Need to check again for NetCoreApp2.2 because a close can happen between a 0-byte read and the actual read
if (receiveResult.MessageType == WebSocketMessageType.Close)
{
return;
diff --git a/src/Microsoft.AspNetCore.Http.Connections/Microsoft.AspNetCore.Http.Connections.csproj b/src/Microsoft.AspNetCore.Http.Connections/Microsoft.AspNetCore.Http.Connections.csproj
index 0b0a149c3a..5b3cb0660d 100644
--- a/src/Microsoft.AspNetCore.Http.Connections/Microsoft.AspNetCore.Http.Connections.csproj
+++ b/src/Microsoft.AspNetCore.Http.Connections/Microsoft.AspNetCore.Http.Connections.csproj
@@ -2,7 +2,7 @@
Components for providing real-time bi-directional communication across the Web.
- netstandard2.0;netcoreapp2.1
+ netstandard2.0;netcoreapp2.2
diff --git a/src/Microsoft.AspNetCore.SignalR.Common/Microsoft.AspNetCore.SignalR.Common.csproj b/src/Microsoft.AspNetCore.SignalR.Common/Microsoft.AspNetCore.SignalR.Common.csproj
index 08fec138f7..f09e38f0e4 100644
--- a/src/Microsoft.AspNetCore.SignalR.Common/Microsoft.AspNetCore.SignalR.Common.csproj
+++ b/src/Microsoft.AspNetCore.SignalR.Common/Microsoft.AspNetCore.SignalR.Common.csproj
@@ -2,7 +2,7 @@
Common serialiation primitives for SignalR Clients Servers
- netstandard2.0;netcoreapp2.1
+ netstandard2.0;netcoreapp2.2
Microsoft.AspNetCore.SignalR
true
diff --git a/test/Directory.Build.props b/test/Directory.Build.props
index f96bfd2def..dfd1b2c370 100644
--- a/test/Directory.Build.props
+++ b/test/Directory.Build.props
@@ -2,9 +2,8 @@
- netcoreapp2.1
+ netcoreapp2.2
$(DeveloperBuildTestTfms)
- netcoreapp2.1;netcoreapp2.0
$(StandardTestTfms);net461
win7-x86
diff --git a/test/Microsoft.AspNetCore.SignalR.Common.Tests/Internal/Protocol/MemoryBufferWriterTests.cs b/test/Microsoft.AspNetCore.SignalR.Common.Tests/Internal/Protocol/MemoryBufferWriterTests.cs
index ff51d1791e..d8f51a80e3 100644
--- a/test/Microsoft.AspNetCore.SignalR.Common.Tests/Internal/Protocol/MemoryBufferWriterTests.cs
+++ b/test/Microsoft.AspNetCore.SignalR.Common.Tests/Internal/Protocol/MemoryBufferWriterTests.cs
@@ -358,7 +358,7 @@ namespace Microsoft.AspNetCore.SignalR.Common.Tests.Internal.Protocol
}
}
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
[Fact]
public void WriteSpanWorksAtNonZeroOffset()
{
diff --git a/test/Microsoft.AspNetCore.SignalR.Tests.Utils/TestHelpers.cs b/test/Microsoft.AspNetCore.SignalR.Tests.Utils/TestHelpers.cs
index b496299152..be8f1e90c5 100644
--- a/test/Microsoft.AspNetCore.SignalR.Tests.Utils/TestHelpers.cs
+++ b/test/Microsoft.AspNetCore.SignalR.Tests.Utils/TestHelpers.cs
@@ -10,7 +10,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests
{
public static bool IsWebSocketsSupported()
{
-#if NETCOREAPP2_1
+#if NETCOREAPP2_2
// .NET Core 2.1 and greater has sockets
return true;
#else