diff --git a/.github/workflows/test-coyote.yml b/.github/workflows/test-coyote.yml
index d7c46ac47..bbdab10d6 100644
--- a/.github/workflows/test-coyote.yml
+++ b/.github/workflows/test-coyote.yml
@@ -38,10 +38,6 @@ jobs:
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.x'
- - name: Setup .NET Core 3.1 SDK
- uses: actions/setup-dotnet@v1
- with:
- dotnet-version: '3.1.x'
- name: Setup debugging tools
if: ${{ matrix.platform == 'windows-latest' }}
run: |
diff --git a/Common/build.props b/Common/build.props
index b74642a73..5cdeb0db7 100644
--- a/Common/build.props
+++ b/Common/build.props
@@ -40,17 +40,12 @@
false
true
true
- true
- false
- true
- true
true
false
true
true
net8.0
$(TargetFrameworks);netstandard2.0
- $(TargetFrameworks);netcoreapp3.1
$(TargetFrameworks);net6.0
diff --git a/History.md b/History.md
index 18d61eb34..9d3555f99 100644
--- a/History.md
+++ b/History.md
@@ -1,3 +1,9 @@
+## vNext
+- Upgraded the `System.Text.Json` package to `v8.0.4` for the `netstandard2.0`
+ target framework, due to a vulnerability.
+- Dropped support for the `netcoreapp3.1` target framework, which reached end of
+ life.
+
## v1.7.11
- Added support for the `net8.0` target framework.
- Added support to optionally explore a race condition when using the
diff --git a/Scripts/CI/azure-nuget-sign-publish.yml b/Scripts/CI/azure-nuget-sign-publish.yml
index b37427ee3..03c9347fa 100644
--- a/Scripts/CI/azure-nuget-sign-publish.yml
+++ b/Scripts/CI/azure-nuget-sign-publish.yml
@@ -17,11 +17,6 @@ steps:
inputs:
version: 6.0.x
-- task: UseDotNet@2
- displayName: 'Install .NET Core 3.1 SDK'
- inputs:
- version: 3.1.x
-
- task: UseDotNet@2
displayName: 'Install .NET Core 2.1 SDK'
inputs:
@@ -98,36 +93,6 @@ steps:
}
]
-- task: EsrpCodeSigning@2
- displayName: 'ESRP CodeSigning .NET Core 3.1'
- inputs:
- ConnectedServiceName: CoyoteNugetSign
- FolderPath: bin\netcoreapp3.1
- signConfigType: inlineSignParams
- inlineOperation: |
- [
- {
- "KeyCode": "CP-230012",
- "OperationCode": "SigntoolSign",
- "Parameters": {
- "OpusName": "Microsoft.Coyote",
- "OpusInfo": "https://github.com/Microsoft/Coyote",
- "FileDigest": "/fd \"SHA256\"",
- "PageHash": "/PH",
- "TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
- },
- "ToolName": "sign",
- "ToolVersion": "1.0"
- },
- {
- "KeyCode": "CP-230012",
- "OperationCode": "SigntoolVerify",
- "Parameters": {},
- "ToolName": "sign",
- "ToolVersion": "1.0"
- }
- ]
-
- task: EsrpCodeSigning@2
displayName: 'ESRP CodeSigning .NET Standard 2.0'
inputs:
diff --git a/Scripts/build.ps1 b/Scripts/build.ps1
index 9432c6b7a..e1bdc4cd7 100644
--- a/Scripts/build.ps1
+++ b/Scripts/build.ps1
@@ -26,7 +26,6 @@ if ($host.Version.Major -lt 7)
$dotnet = "dotnet"
$dotnet_sdk_path = FindDotNetSdkPath -dotnet $dotnet
$version_net4 = $IsWindows -and (Get-ItemProperty "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full").Release -ge 528040
-$version_netcore31 = FindMatchingVersion -path $dotnet_sdk_path -version "3.1.0"
$version_net6 = FindMatchingVersion -path $dotnet_sdk_path -version "6.0.0"
$sdk_version = FindDotNetSdkVersion -dotnet_sdk_path $dotnet_sdk_path
@@ -44,11 +43,6 @@ if ($ci.IsPresent) {
$extra_frameworks = $extra_frameworks + " /p:BUILD_NET462=yes"
}
- if ($null -ne $version_netcore31 -and $version_netcore31 -ne $sdk_version) {
- # Build .NET Core 3.1 as well as the latest version.
- $extra_frameworks = $extra_frameworks + " /p:BUILD_NETCORE31=yes"
- }
-
if ($null -ne $version_net6 -and $version_net6 -ne $sdk_version) {
# Build .NET 6.0 as well as the latest version.
$extra_frameworks = $extra_frameworks + " /p:BUILD_NET6=yes"
diff --git a/Scripts/common.psm1 b/Scripts/common.psm1
index 985234ae6..6f40570c0 100644
--- a/Scripts/common.psm1
+++ b/Scripts/common.psm1
@@ -23,7 +23,7 @@ function Invoke-CoyoteTool([String]$cmd, [String]$dotnet, [String]$framework, [S
$command = "$coyote $cmd $target"
}
- if ($command -eq "rewrite" -and $framework -ne "netcoreapp3.1" -and $framework -ne "net6.0" -and $framework -ne "net8.0" -and $IsWindows) {
+ if ($command -eq "rewrite" -and $framework -ne "net6.0" -and $framework -ne "net8.0" -and $IsWindows) {
# NOTE: Mono.Cecil cannot sign assemblies on unix platforms.
$command = "$command -snk $key"
}
diff --git a/Scripts/run-tests.ps1 b/Scripts/run-tests.ps1
index c53649532..0860364ba 100644
--- a/Scripts/run-tests.ps1
+++ b/Scripts/run-tests.ps1
@@ -2,7 +2,7 @@
# Licensed under the MIT License.
param(
- [ValidateSet("net8.0", "net6.0", "netcoreapp3.1", "net462")]
+ [ValidateSet("net8.0", "net6.0", "net462")]
[string]$framework = "net8.0",
[ValidateSet("all", "runtime", "rewriting", "testing", "actors", "actors-testing", "tools")]
[string]$test = "all",
diff --git a/Source/Core/Runtime/CoyoteRuntime.cs b/Source/Core/Runtime/CoyoteRuntime.cs
index b07a5fc4c..3b49da68f 100644
--- a/Source/Core/Runtime/CoyoteRuntime.cs
+++ b/Source/Core/Runtime/CoyoteRuntime.cs
@@ -2494,7 +2494,7 @@ internal void ProcessUnhandledExceptionInOperation(ControlledOperation op, Excep
///
private static string FormatExceptionStackTrace(Exception exception)
{
-#if NET || NETCOREAPP3_1
+#if NET
string[] lines = exception.ToString().Split(Environment.NewLine, StringSplitOptions.None);
#else
string[] lines = exception.ToString().Split(new[] { Environment.NewLine }, StringSplitOptions.None);
@@ -2516,7 +2516,7 @@ private static string FormatExceptionStackTrace(Exception exception)
private static string FormatUncontrolledStackTrace(StackTrace trace)
{
StringBuilder sb = new StringBuilder();
-#if NET || NETCOREAPP3_1
+#if NET
string[] lines = trace.ToString().Split(Environment.NewLine, StringSplitOptions.None);
#else
string[] lines = trace.ToString().Split(new[] { Environment.NewLine }, StringSplitOptions.None);
@@ -2535,7 +2535,7 @@ private static string FormatUncontrolledStackTrace(StackTrace trace)
private static string FormatSpecificationMonitorStackTrace(StackTrace trace)
{
StringBuilder sb = new StringBuilder();
-#if NET || NETCOREAPP3_1
+#if NET
string[] lines = trace.ToString().Split(Environment.NewLine, StringSplitOptions.None);
#else
string[] lines = trace.ToString().Split(new[] { Environment.NewLine }, StringSplitOptions.None);
diff --git a/Source/Core/Testing/Interleaving/InterleavingStrategy.cs b/Source/Core/Testing/Interleaving/InterleavingStrategy.cs
index d9a229e02..754fd0149 100644
--- a/Source/Core/Testing/Interleaving/InterleavingStrategy.cs
+++ b/Source/Core/Testing/Interleaving/InterleavingStrategy.cs
@@ -210,7 +210,7 @@ internal bool GetNextInteger(ControlledOperation current, int maxValue, out int
///
private string FormatReplayError(int step, string reason)
{
-#if NET || NETCOREAPP3_1
+#if NET
string[] traceTokens = new StackTrace().ToString().Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries);
#else
string[] traceTokens = new StackTrace().ToString().Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
diff --git a/Source/Test/Rewriting/Passes/Rewriting/InterAssemblyInvocationRewritingPass.cs b/Source/Test/Rewriting/Passes/Rewriting/InterAssemblyInvocationRewritingPass.cs
index 76d41cd9f..9b86de106 100644
--- a/Source/Test/Rewriting/Passes/Rewriting/InterAssemblyInvocationRewritingPass.cs
+++ b/Source/Test/Rewriting/Passes/Rewriting/InterAssemblyInvocationRewritingPass.cs
@@ -8,7 +8,7 @@
using Microsoft.Coyote.Runtime;
using Mono.Cecil;
using Mono.Cecil.Cil;
-#if NET || NETCOREAPP3_1
+#if NET
using HttpClient = Microsoft.Coyote.Rewriting.Types.Net.Http.HttpClient;
#endif
using NameCache = Microsoft.Coyote.Rewriting.Types.NameCache;
@@ -101,7 +101,7 @@ instruction.Operand is MethodReference methodReference &&
this.Processor.InsertAfter(instruction, newInstruction);
this.IsMethodBodyModified = true;
}
-#if NET || NETCOREAPP3_1
+#if NET
else if (IsSystemType(resolvedReturnType) && resolvedReturnType.FullName == NameCache.HttpClient)
{
MethodReference interceptionMethod = this.CreateInterceptionMethod(
diff --git a/Source/Test/Rewriting/Passes/Rewriting/Types/TypeRewritingPass.cs b/Source/Test/Rewriting/Passes/Rewriting/Types/TypeRewritingPass.cs
index fbab8843d..c169a91ae 100644
--- a/Source/Test/Rewriting/Passes/Rewriting/Types/TypeRewritingPass.cs
+++ b/Source/Test/Rewriting/Passes/Rewriting/Types/TypeRewritingPass.cs
@@ -89,7 +89,7 @@ internal TypeRewritingPass(RewritingOptions options, IEnumerable v
this.KnownTypes[NameCache.EventWaitHandle] = typeof(Types.Threading.EventWaitHandle);
this.KnownTypes[NameCache.WaitHandle] = typeof(Types.Threading.WaitHandle);
-#if NET || NETCOREAPP3_1
+#if NET
// Populate the map with the known HTTP and web-related types.
this.KnownTypes[NameCache.HttpClient] = typeof(Types.Net.Http.HttpClient);
this.KnownTypes[NameCache.HttpRequestMessage] = typeof(Types.Net.Http.HttpRequestMessage);
diff --git a/Source/Test/Rewriting/RewritingOptions.cs b/Source/Test/Rewriting/RewritingOptions.cs
index 1b2666929..c1ae70468 100644
--- a/Source/Test/Rewriting/RewritingOptions.cs
+++ b/Source/Test/Rewriting/RewritingOptions.cs
@@ -297,7 +297,7 @@ private static bool TryResolveTargetFramework(Assembly assembly, out string reso
{
var targetFramework = assembly?.GetCustomAttributes(typeof(TargetFrameworkAttribute), false)
.SingleOrDefault() as TargetFrameworkAttribute;
-#if NET || NETCOREAPP3_1
+#if NET
var tokens = targetFramework?.FrameworkName.Split(",Version=", StringSplitOptions.None);
#else
var tokens = targetFramework?.FrameworkName.Split(new[] { ",Version=" }, StringSplitOptions.None);
@@ -310,7 +310,6 @@ private static bool TryResolveTargetFramework(Assembly assembly, out string reso
{
resolvedTargetFramework = tokens[1] is "v8.0" ? "net8.0" :
tokens[1] is "v6.0" ? "net6.0" :
- tokens[1] is "v3.1" ? "netcoreapp3.1" :
resolvedTargetFramework;
}
else if (tokens[0] == ".NETFramework")
diff --git a/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentBag.cs b/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentBag.cs
index 89cdb0af8..f978f288c 100644
--- a/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentBag.cs
+++ b/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentBag.cs
@@ -55,7 +55,7 @@ public static void Add(SystemConcurrent.ConcurrentBag instance, T item)
instance.Add(item);
}
-#if NET || NETCOREAPP3_1
+#if NET
///
/// Removes all objects from the concurrent bag.
///
diff --git a/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentDictionary.cs b/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentDictionary.cs
index 3b7360d1f..58a199567 100644
--- a/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentDictionary.cs
+++ b/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentDictionary.cs
@@ -135,7 +135,7 @@ public static TValue AddOrUpdate(SystemConcurrent.ConcurrentDictionary
/// Adds a key/value pair to the concurrent dictionary if the key does not
/// already exist, or updates a key/value pair in the concurrent dictionary
@@ -201,7 +201,7 @@ public static TValue GetOrAdd(SystemConcurrent.ConcurrentDictionary
/// Adds a key/value pair to the concurrent dictionary if the key does not already exist.
/// Returns the new value, or the existing value if the key already exists.
diff --git a/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentQueue.cs b/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentQueue.cs
index 75c1a5b7c..1d38445b7 100644
--- a/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentQueue.cs
+++ b/Source/Test/Rewriting/Types/Collections/Concurrent/ConcurrentQueue.cs
@@ -46,7 +46,7 @@ public static bool get_IsEmpty(SystemConcurrent.ConcurrentQueue instance)
return instance.IsEmpty;
}
-#if NET || NETCOREAPP3_1
+#if NET
///
/// Removes all objects from the concurrent queue.
///
diff --git a/Source/Test/Rewriting/Types/Collections/Generic/Dictionary.cs b/Source/Test/Rewriting/Types/Collections/Generic/Dictionary.cs
index 72b774b95..3909c53da 100644
--- a/Source/Test/Rewriting/Types/Collections/Generic/Dictionary.cs
+++ b/Source/Test/Rewriting/Types/Collections/Generic/Dictionary.cs
@@ -75,7 +75,7 @@ public static SystemGenerics.Dictionary Create(
new Wrapper(capacity, comparer) :
new SystemGenerics.Dictionary(capacity, comparer);
-#if NET || NETCOREAPP3_1
+#if NET
///
/// Initializes a new dictionary instance class that contains elements copied
/// from the specified enumerable.
@@ -263,7 +263,7 @@ public static void OnDeserialization(SystemGenerics.Dictionary ins
instance.OnDeserialization(sender);
}
-#if NET || NETCOREAPP3_1
+#if NET
///
/// Ensures that the dictionary can hold up to a specified number of entries without
/// any further expansion of its backing storage.
@@ -365,7 +365,7 @@ internal Wrapper(SystemGenerics.IDictionary dictionary,
internal Wrapper(SystemGenerics.IEqualityComparer comparer)
: base(comparer) => this.Setup();
-#if NET || NETCOREAPP3_1
+#if NET
///
/// Initializes a new instance of the class.
///
diff --git a/Source/Test/Rewriting/Types/Collections/Generic/HashSet.cs b/Source/Test/Rewriting/Types/Collections/Generic/HashSet.cs
index 1c9880214..bcd298e56 100644
--- a/Source/Test/Rewriting/Types/Collections/Generic/HashSet.cs
+++ b/Source/Test/Rewriting/Types/Collections/Generic/HashSet.cs
@@ -56,7 +56,7 @@ public static SystemGenerics.HashSet Create(SystemGenerics.IEnumerable col
new Wrapper(collection, comparer) :
new SystemGenerics.HashSet(collection, comparer);
-#if NET || NETCOREAPP3_1
+#if NET
///
/// Initializes a hash set instance class that is empty, but has reserved
/// space for 'capacity' items and and uses the default equality comparer for the set type.
@@ -314,7 +314,7 @@ public static void UnionWith(SystemGenerics.HashSet instance, SystemGenerics.
instance.UnionWith(other);
}
-#if NET || NETCOREAPP3_1
+#if NET
///
/// Ensures that this hash set object can hold the specified number of elements without growing.
///
@@ -379,7 +379,7 @@ internal Wrapper(SystemGenerics.IEqualityComparer comparer)
internal Wrapper(SerializationInfo info, StreamingContext context)
: base(info, context) => this.Setup();
-#if NET || NETCOREAPP3_1
+#if NET
///
/// Initializes a new instance of the class.
///
diff --git a/Source/Test/Rewriting/Types/NameCache.cs b/Source/Test/Rewriting/Types/NameCache.cs
index 9fc49fede..1e7be6d59 100644
--- a/Source/Test/Rewriting/Types/NameCache.cs
+++ b/Source/Test/Rewriting/Types/NameCache.cs
@@ -5,7 +5,7 @@
using SystemCompiler = System.Runtime.CompilerServices;
using SystemConcurrentCollections = System.Collections.Concurrent;
using SystemGenericCollections = System.Collections.Generic;
-#if NET || NETCOREAPP3_1
+#if NET
using SystemNetHttp = System.Net.Http;
#endif
using SystemTasks = System.Threading.Tasks;
@@ -89,7 +89,7 @@ internal static class NameCache
internal static string ConcurrentQueue { get; } = typeof(SystemConcurrentCollections.ConcurrentQueue<>).FullName;
internal static string ConcurrentStack { get; } = typeof(SystemConcurrentCollections.ConcurrentStack<>).FullName;
-#if NET || NETCOREAPP3_1
+#if NET
internal static string HttpClient { get; } = typeof(SystemNetHttp.HttpClient).FullName;
internal static string HttpRequestMessage { get; } = typeof(SystemNetHttp.HttpRequestMessage).FullName;
#endif
diff --git a/Source/Test/Rewriting/Types/Net/Http/HttpClient.cs b/Source/Test/Rewriting/Types/Net/Http/HttpClient.cs
index 655dadc86..08543e984 100644
--- a/Source/Test/Rewriting/Types/Net/Http/HttpClient.cs
+++ b/Source/Test/Rewriting/Types/Net/Http/HttpClient.cs
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-#if NET || NETCOREAPP3_1
+#if NET
using System;
using System.Reflection;
using SystemHttpClient = System.Net.Http.HttpClient;
diff --git a/Source/Test/Rewriting/Types/Net/Http/HttpMessageHandler.cs b/Source/Test/Rewriting/Types/Net/Http/HttpMessageHandler.cs
index cfb293688..6bd533036 100644
--- a/Source/Test/Rewriting/Types/Net/Http/HttpMessageHandler.cs
+++ b/Source/Test/Rewriting/Types/Net/Http/HttpMessageHandler.cs
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-#if NET || NETCOREAPP3_1
+#if NET
using SystemCancellationToken = System.Threading.CancellationToken;
using SystemDelegatingHandler = System.Net.Http.DelegatingHandler;
using SystemHttpClientHandler = System.Net.Http.HttpClientHandler;
diff --git a/Source/Test/Rewriting/Types/Net/Http/HttpRequestHeader.cs b/Source/Test/Rewriting/Types/Net/Http/HttpRequestHeader.cs
index ae0d453ba..f7dafa881 100644
--- a/Source/Test/Rewriting/Types/Net/Http/HttpRequestHeader.cs
+++ b/Source/Test/Rewriting/Types/Net/Http/HttpRequestHeader.cs
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-#if NET || NETCOREAPP3_1
+#if NET
namespace Microsoft.Coyote.Rewriting.Types.Net.Http
{
///
diff --git a/Source/Test/Rewriting/Types/Net/Http/HttpRequestMessage.cs b/Source/Test/Rewriting/Types/Net/Http/HttpRequestMessage.cs
index 4e5fa679b..32b649076 100644
--- a/Source/Test/Rewriting/Types/Net/Http/HttpRequestMessage.cs
+++ b/Source/Test/Rewriting/Types/Net/Http/HttpRequestMessage.cs
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-#if NET || NETCOREAPP3_1
+#if NET
using System;
using Microsoft.Coyote.Runtime;
using SystemHttpMethod = System.Net.Http.HttpMethod;
diff --git a/Source/Test/Rewriting/Types/Web/RequestControllerMiddleware.cs b/Source/Test/Rewriting/Types/Web/RequestControllerMiddleware.cs
index 2a157c56d..65751f164 100644
--- a/Source/Test/Rewriting/Types/Web/RequestControllerMiddleware.cs
+++ b/Source/Test/Rewriting/Types/Web/RequestControllerMiddleware.cs
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-#if NET || NETCOREAPP3_1
+#if NET
using System;
using Microsoft.Coyote.Rewriting.Types.Net.Http;
using Microsoft.Coyote.Runtime;
diff --git a/Source/Test/SystematicTesting/Reports/TraceReport.cs b/Source/Test/SystematicTesting/Reports/TraceReport.cs
index f4c23ec49..a19e91b1a 100644
--- a/Source/Test/SystematicTesting/Reports/TraceReport.cs
+++ b/Source/Test/SystematicTesting/Reports/TraceReport.cs
@@ -145,7 +145,7 @@ internal static ExecutionTrace FromJson(Configuration configuration)
string decisionToken = tokens[1];
if (decisionToken.StartsWith("sp("))
{
-#if NET || NETCOREAPP3_1
+#if NET
SchedulingPointType sp = Enum.Parse(decisionToken.Substring(
3, decisionToken.Length - 4));
#else
diff --git a/Source/Test/SystematicTesting/TestMethodInfo.cs b/Source/Test/SystematicTesting/TestMethodInfo.cs
index 23156bd82..fba227c7a 100644
--- a/Source/Test/SystematicTesting/TestMethodInfo.cs
+++ b/Source/Test/SystematicTesting/TestMethodInfo.cs
@@ -3,19 +3,19 @@
using System;
using System.Collections.Generic;
-#if NET || NETCOREAPP3_1
+#if NET
using System.IO;
#endif
using System.Linq;
using System.Reflection;
-#if NET || NETCOREAPP3_1
+#if NET
using System.Runtime.Loader;
#endif
using System.Threading.Tasks;
using Microsoft.Coyote.Actors;
using Microsoft.Coyote.Logging;
using Microsoft.Coyote.Runtime;
-#if NET || NETCOREAPP3_1
+#if NET
using Microsoft.Extensions.DependencyModel;
using Microsoft.Extensions.DependencyModel.Resolution;
#endif
@@ -57,7 +57,7 @@ internal sealed class TestMethodInfo : IDisposable
///
private readonly MethodInfo IterationDisposeMethod;
-#if NET || NETCOREAPP3_1
+#if NET
///
/// The assembly load context, if there is one.
///
@@ -100,7 +100,7 @@ private TestMethodInfo(Delegate method, LogWriter logWriter)
private TestMethodInfo(Configuration configuration, LogWriter logWriter)
{
this.LogWriter = logWriter;
-#if NET || NETCOREAPP3_1
+#if NET
this.Assembly = AssemblyLoadContext.Default.LoadFromAssemblyPath(configuration.AssemblyToBeAnalyzed);
this.LoadContext = AssemblyLoadContext.GetLoadContext(this.Assembly);
this.DependencyContext = DependencyContext.Load(this.Assembly);
@@ -416,7 +416,7 @@ private static List FindTestMethodsWithAttribute(Type attribute, Bin
return testMethods;
}
-#if NET || NETCOREAPP3_1
+#if NET
///
/// Invoked when the resolution of an assembly fails.
///
@@ -476,7 +476,7 @@ internal void SetTestLogWriter(LogWriter logWriter)
///
public void Dispose()
{
-#if NET || NETCOREAPP3_1
+#if NET
if (this.LoadContext != null)
{
this.LoadContext.Resolving -= this.OnResolving;
diff --git a/Source/Test/Test.csproj b/Source/Test/Test.csproj
index c76b6d102..5fc716e0c 100644
--- a/Source/Test/Test.csproj
+++ b/Source/Test/Test.csproj
@@ -25,12 +25,8 @@
-
-
-
-
-
+
diff --git a/Source/Test/Web/RequestControllerMiddlewareExtensions.cs b/Source/Test/Web/RequestControllerMiddlewareExtensions.cs
index 7cb8b5885..9e7a87359 100644
--- a/Source/Test/Web/RequestControllerMiddlewareExtensions.cs
+++ b/Source/Test/Web/RequestControllerMiddlewareExtensions.cs
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-#if NET || NETCOREAPP3_1
+#if NET
using Microsoft.AspNetCore.Builder;
using Microsoft.Coyote.Rewriting.Types.Web;
diff --git a/Tests/Tests.Actors.BugFinding/Tests.Actors.BugFinding.csproj b/Tests/Tests.Actors.BugFinding/Tests.Actors.BugFinding.csproj
index a6e190601..3ce2e9f5b 100644
--- a/Tests/Tests.Actors.BugFinding/Tests.Actors.BugFinding.csproj
+++ b/Tests/Tests.Actors.BugFinding/Tests.Actors.BugFinding.csproj
@@ -5,7 +5,6 @@
Microsoft.Coyote.Actors.BugFinding.Tests
.\bin\
false
- false
false
false
$(NoWarn),1591
diff --git a/Tests/Tests.Actors.Performance/Tests.Actors.Performance.csproj b/Tests/Tests.Actors.Performance/Tests.Actors.Performance.csproj
index 9297e0e6b..701f4a529 100644
--- a/Tests/Tests.Actors.Performance/Tests.Actors.Performance.csproj
+++ b/Tests/Tests.Actors.Performance/Tests.Actors.Performance.csproj
@@ -6,7 +6,6 @@
.\bin\
false
false
- false
false
false
$(NoWarn),1591
diff --git a/Tests/Tests.Actors/Tests.Actors.csproj b/Tests/Tests.Actors/Tests.Actors.csproj
index be42d6694..f8d56fcec 100644
--- a/Tests/Tests.Actors/Tests.Actors.csproj
+++ b/Tests/Tests.Actors/Tests.Actors.csproj
@@ -5,7 +5,6 @@
Microsoft.Coyote.Actors.Tests
.\bin\
false
- false
false
false
$(NoWarn),1591
diff --git a/Tests/Tests.BugFinding/ConcurrentCollections/ConcurrentBagTests.cs b/Tests/Tests.BugFinding/ConcurrentCollections/ConcurrentBagTests.cs
index 2449996f1..eae254587 100644
--- a/Tests/Tests.BugFinding/ConcurrentCollections/ConcurrentBagTests.cs
+++ b/Tests/Tests.BugFinding/ConcurrentCollections/ConcurrentBagTests.cs
@@ -29,7 +29,7 @@ public void TestConcurrentBagProperties()
Assert.Equal(1, count);
Assert.Single(concurrentBag);
-#if NET || NETCOREAPP3_1
+#if NET
concurrentBag.Clear();
Assert.Empty(concurrentBag);
#endif
diff --git a/Tests/Tests.BugFinding/ConcurrentCollections/ConcurrentQueueTests.cs b/Tests/Tests.BugFinding/ConcurrentCollections/ConcurrentQueueTests.cs
index 0aa2978a2..05f6e961a 100644
--- a/Tests/Tests.BugFinding/ConcurrentCollections/ConcurrentQueueTests.cs
+++ b/Tests/Tests.BugFinding/ConcurrentCollections/ConcurrentQueueTests.cs
@@ -29,7 +29,7 @@ public void TestConcurrentQueueProperties()
Assert.Equal(1, count);
Assert.Single(concurrentQueue);
-#if NET || NETCOREAPP3_1
+#if NET
concurrentQueue.Clear();
Assert.Empty(concurrentQueue);
#endif
@@ -63,7 +63,7 @@ public void TestConcurrentQueueMethods()
Assert.Equal(1, dequeueValue);
Assert.Single(concurrentQueue);
-#if NET || NETCOREAPP3_1
+#if NET
concurrentQueue.Clear();
Assert.Empty(concurrentQueue);
#endif
diff --git a/Tests/Tests.BugFinding/Tests.BugFinding.csproj b/Tests/Tests.BugFinding/Tests.BugFinding.csproj
index 16d61bd3b..fb6eb5d59 100644
--- a/Tests/Tests.BugFinding/Tests.BugFinding.csproj
+++ b/Tests/Tests.BugFinding/Tests.BugFinding.csproj
@@ -5,7 +5,6 @@
Microsoft.Coyote.BugFinding.Tests
.\bin\
false
- false
false
false
$(NoWarn),1591
diff --git a/Tests/Tests.Performance/Tests.Performance.csproj b/Tests/Tests.Performance/Tests.Performance.csproj
index ad91d3058..313a67151 100644
--- a/Tests/Tests.Performance/Tests.Performance.csproj
+++ b/Tests/Tests.Performance/Tests.Performance.csproj
@@ -6,7 +6,6 @@
.\bin\
false
false
- false
false
false
$(NoWarn),1591
diff --git a/Tests/Tests.Runtime/Tests.Runtime.csproj b/Tests/Tests.Runtime/Tests.Runtime.csproj
index b3a7bedba..22ff0298d 100644
--- a/Tests/Tests.Runtime/Tests.Runtime.csproj
+++ b/Tests/Tests.Runtime/Tests.Runtime.csproj
@@ -5,7 +5,6 @@
Microsoft.Coyote.Runtime.Tests
.\bin\
false
- false
false
false
$(NoWarn),1591
diff --git a/Tests/Tests.Tools/Tests.Tools.csproj b/Tests/Tests.Tools/Tests.Tools.csproj
index 4734a41c0..cacb71507 100644
--- a/Tests/Tests.Tools/Tests.Tools.csproj
+++ b/Tests/Tests.Tools/Tests.Tools.csproj
@@ -5,7 +5,6 @@
Microsoft.Coyote.Tools.Tests
.\bin\
false
- false
false
false
$(NoWarn),1591
diff --git a/Tools/BenchmarkRunner/BenchmarkRunner.csproj b/Tools/BenchmarkRunner/BenchmarkRunner.csproj
index 72b3fc68b..94c2617c4 100644
--- a/Tools/BenchmarkRunner/BenchmarkRunner.csproj
+++ b/Tools/BenchmarkRunner/BenchmarkRunner.csproj
@@ -7,7 +7,6 @@
.\bin\
false
false
- false
false
false
$(NoWarn);
diff --git a/Tools/CLI/Coyote.CLI.csproj b/Tools/CLI/Coyote.CLI.csproj
index 177f48c83..21fe9a0d6 100644
--- a/Tools/CLI/Coyote.CLI.csproj
+++ b/Tools/CLI/Coyote.CLI.csproj
@@ -28,10 +28,6 @@
-
-
-
-
@@ -40,7 +36,4 @@
-
-
-
\ No newline at end of file
diff --git a/Tools/Coyote/Coyote.csproj b/Tools/Coyote/Coyote.csproj
index 45d873e78..d886493b3 100644
--- a/Tools/Coyote/Coyote.csproj
+++ b/Tools/Coyote/Coyote.csproj
@@ -36,13 +36,6 @@
all
-
-
-
-
- all
-
-
@@ -55,12 +48,6 @@
all
-
-
-
-
-
-
$(TargetsForTfmSpecificBuildOutput);ToolDependenciesTarget
$(TargetsForTfmSpecificContentInPackage);LibDependenciesTarget
diff --git a/Tools/Coyote/update-runtime-config.ps1 b/Tools/Coyote/update-runtime-config.ps1
deleted file mode 100644
index 0144339f9..000000000
--- a/Tools/Coyote/update-runtime-config.ps1
+++ /dev/null
@@ -1,41 +0,0 @@
-param(
- [string]$outputPath = ""
-)
-
-$file = "$outputPath\coyote.runtimeconfig.json"
-$json = Get-Content $file | ConvertFrom-Json
-
-if (-not ($json.runtimeOptions | Get-Member -MemberType NoteProperty -Name "framework"))
-{
- return
-}
-
-$tfm = $json.runtimeOptions.tfm
-$originalFrameworkName = $json.runtimeOptions.framework.name
-$originalFrameworkVersion = $json.runtimeOptions.framework.version
-
-# Construct the updated JSON object that includes the aspnet framework.
-# This is required so that the tool can resolve aspnet related assemblies
-# during IL rewriting.
-$newJson = @"
-{
- "runtimeOptions": {
- "tfm": "$tfm",
- "frameworks": [
- {
- "name": "Microsoft.NETCore.App",
- "version": "$originalFrameworkVersion"
- },
- {
- "name": "$originalFrameworkName",
- "version": "$originalFrameworkVersion"
- }
- ],
- "configProperties": {
- "System.Reflection.Metadata.MetadataUpdater.IsSupported": false
- }
- }
-}
-"@
-
-$newJson | Out-File $file -Force
diff --git a/Tools/GenDoc/GenDoc.csproj b/Tools/GenDoc/GenDoc.csproj
index 8cb0f04ee..245cca598 100644
--- a/Tools/GenDoc/GenDoc.csproj
+++ b/Tools/GenDoc/GenDoc.csproj
@@ -7,7 +7,6 @@
.\bin\
false
false
- false
false
false
diff --git a/docs/get-started/install.md b/docs/get-started/install.md
index d093290ad..96c5f22cc 100644
--- a/docs/get-started/install.md
+++ b/docs/get-started/install.md
@@ -12,7 +12,6 @@ frameworks supported by Coyote:
| :-------------------: | :-------------------: |
| .NET 8.0 | Linux, macOS, Windows |
| .NET 6.0 | Linux, macOS, Windows |
-| .NET Core 3.1 | Linux, macOS, Windows |
| .NET Standard 2.0 | Linux, macOS, Windows |
| .NET Framework 4.6.2 | Windows |
diff --git a/global.json b/global.json
index e72335a83..fd07d882a 100644
--- a/global.json
+++ b/global.json
@@ -1,5 +1,5 @@
{
"sdk": {
- "version": "8.0.201"
+ "version": "8.0.303"
}
}