Skip to content

Commit a929097

Browse files
committed
Remove 'net45' target and #if code.
Signed-off-by: Bradley Grainger <[email protected]>
1 parent 8954cbb commit a929097

File tree

19 files changed

+22
-195
lines changed

19 files changed

+22
-195
lines changed

src/MySqlConnector.Authentication.Ed25519/MySqlConnector.Authentication.Ed25519.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
4+
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
55
<Title>MySqlConnector Ed25519 Authentication Plugin</Title>
66
<Description>Implements the client_ed25519 authentication plugin for MariaDB.</Description>
77
<Copyright>Copyright 2019–2022 Bradley Grainger</Copyright>

src/MySqlConnector.Logging.NLog/MySqlConnector.Logging.NLog.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
4+
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
55
<Title>MySqlConnector Logging Adapter for NLog</Title>
66
<Description>Writes lightly-structured MySqlConnector logging output to NLog.</Description>
77
<Copyright>Copyright 2018–2022 Bradley Grainger</Copyright>

src/MySqlConnector.Logging.Serilog/MySqlConnector.Logging.Serilog.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
4+
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
55
<Title>MySqlConnector Logging Adapter for Serilog</Title>
66
<Description>Writes lightly-structured MySqlConnector logging output to Serilog.</Description>
77
<Copyright>Copyright 2017–2022 Bradley Grainger</Copyright>

src/MySqlConnector.Logging.log4net/MySqlConnector.Logging.log4net.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net45;netstandard2.0</TargetFrameworks>
4+
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
55
<Title>MySqlConnector Logging Adapter for log4net</Title>
66
<Description>Writes MySqlConnector logging output to log4net with one line of code.</Description>
77
<Copyright>Copyright 2017–2022 Bradley Grainger</Copyright>

src/MySqlConnector/Core/ServerSession.cs

Lines changed: 4 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -730,13 +730,8 @@ private async Task<PayloadData> SwitchAuthenticationAsync(ConnectionSettings cs,
730730
case "sha256_password":
731731
if (!m_isSecureConnection && password.Length != 0)
732732
{
733-
#if NET45
734-
Log.Error("Session{0} can't use AuthenticationMethod '{1}' without secure connection on .NET 4.5", m_logArguments);
735-
throw new MySqlException(MySqlErrorCode.UnableToConnectToHost, "Authentication method '{0}' requires a secure connection (prior to .NET 4.6).".FormatInvariant(switchRequest.Name));
736-
#else
737733
var publicKey = await GetRsaPublicKeyAsync(switchRequest.Name, cs, ioBehavior, cancellationToken).ConfigureAwait(false);
738734
return await SendEncryptedPasswordAsync(switchRequest, publicKey, password, ioBehavior, cancellationToken).ConfigureAwait(false);
739-
#endif
740735
}
741736
else
742737
{
@@ -775,7 +770,6 @@ private async Task<PayloadData> SendClearPasswordAsync(string password, IOBehavi
775770
return await ReceiveReplyAsync(ioBehavior, cancellationToken).ConfigureAwait(false);
776771
}
777772

778-
#if !NET45
779773
private async Task<PayloadData> SendEncryptedPasswordAsync(
780774
AuthenticationMethodSwitchRequestPayload switchRequest,
781775
string rsaPublicKey,
@@ -826,9 +820,7 @@ private async Task<PayloadData> SendEncryptedPasswordAsync(
826820
await SendReplyAsync(payload, ioBehavior, cancellationToken).ConfigureAwait(false);
827821
return await ReceiveReplyAsync(ioBehavior, cancellationToken).ConfigureAwait(false);
828822
}
829-
#endif
830823

831-
#if !NET45
832824
private async Task<string> GetRsaPublicKeyAsync(string switchRequestName, ConnectionSettings cs, IOBehavior ioBehavior, CancellationToken cancellationToken)
833825
{
834826
if (cs.ServerRsaPublicKeyFile.Length != 0)
@@ -859,7 +851,6 @@ private async Task<string> GetRsaPublicKeyAsync(string switchRequestName, Connec
859851
Log.Error("Session{0} couldn't use AuthenticationMethod '{1}' because RSA key wasn't specified or couldn't be retrieved", m_logArguments);
860852
throw new MySqlException(MySqlErrorCode.UnableToConnectToHost, "Authentication method '{0}' failed. Either use a secure connection, specify the server's RSA public key with ServerRSAPublicKeyFile, or set AllowPublicKeyRetrieval=True.".FormatInvariant(switchRequestName));
861853
}
862-
#endif
863854

864855
public async ValueTask<bool> TryPingAsync(bool logInfo, IOBehavior ioBehavior, CancellationToken cancellationToken)
865856
{
@@ -1185,13 +1176,7 @@ private async Task<bool> OpenUnixSocketAsync(ConnectionSettings cs, IOBehavior i
11851176
return false;
11861177
}
11871178

1188-
#if NET45
1189-
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
1190-
#endif
11911179
private async Task<bool> OpenNamedPipeAsync(ConnectionSettings cs, int startTickCount, IOBehavior ioBehavior, CancellationToken cancellationToken)
1192-
#if NET45
1193-
#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously
1194-
#endif
11951180
{
11961181
if (Log.IsTraceEnabled())
11971182
Log.Trace("Session{0} connecting to NamedPipe '{1}' on Server '{2}'", m_logArguments[0], cs.PipeName, cs.HostNames![0]);
@@ -1203,12 +1188,10 @@ private async Task<bool> OpenNamedPipeAsync(ConnectionSettings cs, int startTick
12031188
{
12041189
try
12051190
{
1206-
#if !NET45
12071191
if (ioBehavior == IOBehavior.Asynchronous)
12081192
await namedPipeStream.ConnectAsync(timeout, cancellationToken).ConfigureAwait(false);
12091193
else
1210-
#endif
1211-
namedPipeStream.Connect(timeout);
1194+
namedPipeStream.Connect(timeout);
12121195
}
12131196
catch (Exception ex) when ((ex is ObjectDisposedException && cancellationToken.IsCancellationRequested) || ex is TimeoutException)
12141197
{
@@ -1295,11 +1278,8 @@ private async Task InitSslAsync(ProtocolCapabilities serverCapabilities, Connect
12951278
var certificate = new X509Certificate2(cs.CertificateFile, cs.CertificatePassword, X509KeyStorageFlags.MachineKeySet);
12961279
if (!certificate.HasPrivateKey)
12971280
{
1298-
#if NET45
1299-
certificate.Reset();
1300-
#else
13011281
certificate.Dispose();
1302-
#endif
1282+
13031283
m_logArguments[1] = cs.CertificateFile;
13041284
Log.Error("Session{0} no private key included with CertificateFile '{1}'", m_logArguments);
13051285
throw new MySqlException("CertificateFile does not contain a private key. " +
@@ -1391,11 +1371,7 @@ private async Task InitSslAsync(ProtocolCapabilities serverCapabilities, Connect
13911371
}
13921372
finally
13931373
{
1394-
#if NET45
1395-
certificateChain?.Reset();
1396-
#else
13971374
certificateChain?.Dispose();
1398-
#endif
13991375
}
14001376
}
14011377

@@ -1481,13 +1457,11 @@ await sslStream.AuthenticateAsClientAsync(clientAuthenticationOptions.TargetHost
14811457
{
14821458
#if NET5_0_OR_GREATER
14831459
sslStream.AuthenticateAsClient(clientAuthenticationOptions);
1484-
#elif NET45_OR_GREATER || NETCOREAPP2_0_OR_GREATER || NETSTANDARD2_0_OR_GREATER
1460+
#else
14851461
sslStream.AuthenticateAsClient(clientAuthenticationOptions.TargetHost,
14861462
clientAuthenticationOptions.ClientCertificates,
14871463
clientAuthenticationOptions.EnabledSslProtocols,
14881464
checkCertificateRevocation);
1489-
#else
1490-
await sslStream.AuthenticateAsClientAsync(HostName, clientCertificates, sslProtocols, checkCertificateRevocation).ConfigureAwait(false);
14911465
#endif
14921466
}
14931467
var sslByteHandler = new StreamByteHandler(sslStream);
@@ -1521,11 +1495,7 @@ await sslStream.AuthenticateAsClientAsync(clientAuthenticationOptions.TargetHost
15211495
}
15221496
finally
15231497
{
1524-
#if NET45
1525-
caCertificateChain?.Reset();
1526-
#else
15271498
caCertificateChain?.Dispose();
1528-
#endif
15291499
}
15301500

15311501
// Returns a X509CertificateCollection containing the single certificate contained in 'sslKeyFile' (PEM private key) and 'sslCertificateFile' (PEM certificate).
@@ -1584,7 +1554,7 @@ X509CertificateCollection LoadCertificate(string sslKeyFile, string sslCertifica
15841554
}
15851555
rsa.ImportParameters(rsaParameters);
15861556

1587-
#if NET45 || NET461 || NET471
1557+
#if NET461 || NET471
15881558
var certificate = new X509Certificate2(sslCertificateFile, "", X509KeyStorageFlags.MachineKeySet)
15891559
{
15901560
PrivateKey = rsa,
@@ -1701,12 +1671,7 @@ private void ShutdownSocket()
17011671
Utility.Dispose(ref m_stream);
17021672
SafeDispose(ref m_tcpClient);
17031673
SafeDispose(ref m_socket);
1704-
#if NET45
1705-
m_clientCertificate?.Reset();
1706-
m_clientCertificate = null;
1707-
#else
17081674
Utility.Dispose(ref m_clientCertificate);
1709-
#endif
17101675
m_activityTags.Clear();
17111676
m_activityTags.Add(ActivitySourceHelper.DatabaseSystemTagName, ActivitySourceHelper.DatabaseSystemValue);
17121677
}

src/MySqlConnector/MySqlConnector.csproj

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net45;net461;net471;netstandard2.0;netstandard2.1;netcoreapp3.1;net6.0;net7.0</TargetFrameworks>
4+
<TargetFrameworks>net461;net471;netstandard2.0;netstandard2.1;netcoreapp3.1;net6.0;net7.0</TargetFrameworks>
55
<Description>A truly async MySQL ADO.NET provider, supporting MySQL Server, MariaDB, Percona Server, Amazon Aurora, Azure Database for MySQL and more.</Description>
66
<Copyright>Copyright 2016–2022 Bradley Grainger</Copyright>
77
<Authors>Bradley Grainger</Authors>
@@ -15,22 +15,18 @@
1515
<ImplicitUsings>enable</ImplicitUsings>
1616
</PropertyGroup>
1717

18-
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' OR '$(TargetFramework)' == 'net461' OR '$(TargetFramework)' == 'net471' ">
18+
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' OR '$(TargetFramework)' == 'net471' ">
1919
<Reference Include="System.Transactions" />
2020
<Using Remove="System.Net.Http" />
2121
</ItemGroup>
2222

23-
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' OR '$(TargetFramework)' == 'net461' OR '$(TargetFramework)' == 'net471' OR '$(TargetFramework)' == 'netstandard2.0' ">
23+
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' OR '$(TargetFramework)' == 'net471' OR '$(TargetFramework)' == 'netstandard2.0' ">
2424
<PackageReference Include="IndexRange" Version="1.0.2" PrivateAssets="All" />
2525
<PackageReference Include="System.Buffers" Version="4.5.1" />
2626
<PackageReference Include="System.Memory" Version="4.5.4" />
2727
<PackageReference Include="System.Threading.Tasks.Extensions" Version="4.3.0" />
2828
</ItemGroup>
2929

30-
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' ">
31-
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="5.0.1" />
32-
</ItemGroup>
33-
3430
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' OR '$(TargetFramework)' == 'net471' OR '$(TargetFramework)' == 'netstandard2.0' OR '$(TargetFramework)' == 'netstandard2.1' OR '$(TargetFramework)' == 'netcoreapp3.1' ">
3531
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="6.0.0" />
3632
</ItemGroup>

src/MySqlConnector/MySqlDataReader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace MySqlConnector;
1010

1111
#pragma warning disable CA1010 // Generic interface should also be implemented
1212

13-
#if NET45 || NET461
13+
#if NET461
1414
public sealed class MySqlDataReader : DbDataReader
1515
#else
1616
public sealed class MySqlDataReader : DbDataReader, IDbColumnSchemaGenerator

src/MySqlConnector/MySqlDbColumn.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using MySqlConnector.Protocol.Payloads;
55
using MySqlConnector.Protocol.Serialization;
66

7-
#if NET45 || NET461
7+
#if NET461
88
#pragma warning disable CA1716 // Don't use reserved language keywords
99
#pragma warning disable SA1402 // File may only contain a single type
1010
#pragma warning disable SA1403 // File may only contain a single namespace

src/MySqlConnector/MySqlParameter.cs

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,8 @@ public override ParameterDirection Direction
9595
}
9696

9797
public override bool IsNullable { get; set; }
98-
99-
#if NET45
100-
public byte Precision { get; set; }
101-
public byte Scale { get; set; }
102-
#else
10398
public override byte Precision { get; set; }
10499
public override byte Scale { get; set; }
105-
#endif
106100

107101
[AllowNull]
108102
public override string ParameterName
@@ -202,12 +196,6 @@ internal void AppendSqlString(ByteBufferWriter writer, StatementPreparerOptions
202196
ReadOnlySpan<byte> nullBytes = "NULL"u8;
203197
writer.Write(nullBytes);
204198
}
205-
#if NET45
206-
else if (Value is string stringValue)
207-
{
208-
WriteString(writer, noBackslashEscapes, stringValue);
209-
}
210-
#else
211199
else if (Value is string stringValue)
212200
{
213201
WriteString(writer, noBackslashEscapes, writeDelimiters: true, stringValue.AsSpan());
@@ -220,7 +208,6 @@ internal void AppendSqlString(ByteBufferWriter writer, StatementPreparerOptions
220208
{
221209
WriteString(writer, noBackslashEscapes, writeDelimiters: true, memoryChar.Span);
222210
}
223-
#endif
224211
else if (Value is char charValue)
225212
{
226213
writer.Write((byte) '\'');
@@ -429,8 +416,6 @@ internal void AppendSqlString(ByteBufferWriter writer, StatementPreparerOptions
429416
if (stringBuilder.Length != 0)
430417
writer.Write("".AsSpan(), flush: true);
431418
writer.Write((byte) '\'');
432-
#elif NET45
433-
WriteString(writer, noBackslashEscapes, stringBuilder.ToString());
434419
#else
435420
WriteString(writer, noBackslashEscapes, writeDelimiters: true, stringBuilder.ToString().AsSpan());
436421
#endif
@@ -472,19 +457,6 @@ internal void AppendSqlString(ByteBufferWriter writer, StatementPreparerOptions
472457
throw new NotSupportedException("Parameter type {0} is not supported; see https://fl.vu/mysql-param-type. Value: {1}".FormatInvariant(Value.GetType().Name, Value));
473458
}
474459

475-
#if NET45
476-
static void WriteString(ByteBufferWriter writer, bool noBackslashEscapes, string value)
477-
{
478-
writer.Write((byte) '\'');
479-
480-
if (noBackslashEscapes)
481-
writer.Write(value.Replace("'", "''"));
482-
else
483-
writer.Write(value.Replace("\\", "\\\\").Replace("'", "''").Replace("\0", "\\0"));
484-
485-
writer.Write((byte) '\'');
486-
}
487-
#else
488460
static void WriteString(ByteBufferWriter writer, bool noBackslashEscapes, bool writeDelimiters, ReadOnlySpan<char> value)
489461
{
490462
if (writeDelimiters)
@@ -522,7 +494,6 @@ static void WriteString(ByteBufferWriter writer, bool noBackslashEscapes, bool w
522494
if (writeDelimiters)
523495
writer.Write((byte) '\'');
524496
}
525-
#endif
526497
}
527498

528499
internal void AppendBinary(ByteBufferWriter writer, StatementPreparerOptions options)
@@ -700,7 +671,6 @@ internal void AppendBinary(ByteBufferWriter writer, StatementPreparerOptions opt
700671
writer.Advance(guidLength);
701672
}
702673
}
703-
#if !NET45
704674
else if (Value is ReadOnlyMemory<char> readOnlyMemoryChar)
705675
{
706676
writer.WriteLengthEncodedString(readOnlyMemoryChar.Span);
@@ -709,7 +679,6 @@ internal void AppendBinary(ByteBufferWriter writer, StatementPreparerOptions opt
709679
{
710680
writer.WriteLengthEncodedString(memoryChar.Span);
711681
}
712-
#endif
713682
else if (Value is StringBuilder stringBuilder)
714683
{
715684
writer.WriteLengthEncodedString(stringBuilder);

src/MySqlConnector/Protocol/Serialization/ByteBufferWriter.cs

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -99,36 +99,6 @@ public void Write(ReadOnlySpan<byte> span)
9999
m_output = m_output[span.Length..];
100100
}
101101

102-
#if NET45
103-
public void Write(string value)
104-
{
105-
Debug.Assert(value is not null, "value is not null");
106-
if (value!.Length == 0)
107-
return;
108-
109-
var byteCount = Encoding.UTF8.GetByteCount(value);
110-
if (byteCount > m_output.Length)
111-
Reallocate(byteCount);
112-
Encoding.UTF8.GetBytes(value.AsSpan(), m_output.Span);
113-
m_output = m_output.Slice(byteCount);
114-
}
115-
116-
public unsafe void Write(string value, int offset, int length)
117-
{
118-
if (length == 0)
119-
return;
120-
121-
Debug.Assert(value is not null, "value is not null");
122-
fixed (char* charsPtr = value)
123-
{
124-
var byteCount = Encoding.UTF8.GetByteCount(charsPtr + offset, length);
125-
if (byteCount > m_output.Length)
126-
Reallocate(byteCount);
127-
Encoding.UTF8.GetBytes(value.AsSpan(offset, length), m_output.Span);
128-
m_output = m_output.Slice(byteCount);
129-
}
130-
}
131-
#else
132102
public void Write(string value) => Write(value.AsSpan(), flush: true);
133103
public void Write(string value, int offset, int length) => Write(value.AsSpan(offset, length), flush: true);
134104

@@ -155,7 +125,6 @@ public void Write(ReadOnlySpan<char> chars, bool flush)
155125
m_output = m_output[bytesUsed..];
156126
}
157127
}
158-
#endif
159128

160129
public void WriteLengthEncodedString(StringBuilder stringBuilder)
161130
{
@@ -257,9 +226,7 @@ private void Reallocate(int additional = 0)
257226
m_output = new(m_buffer, usedLength, m_buffer.Length - usedLength);
258227
}
259228

260-
#if !NET45
261229
private Encoder? m_encoder;
262-
#endif
263230
private byte[] m_buffer;
264231
private Memory<byte> m_output;
265232
}
@@ -290,14 +257,6 @@ public static void WriteLengthEncodedInteger(this ByteBufferWriter writer, ulong
290257
}
291258
}
292259

293-
#if NET45
294-
public static void WriteLengthEncodedString(this ByteBufferWriter writer, string value)
295-
{
296-
var byteCount = Encoding.UTF8.GetByteCount(value);
297-
writer.WriteLengthEncodedInteger((ulong) byteCount);
298-
writer.Write(value);
299-
}
300-
#else
301260
public static void WriteLengthEncodedString(this ByteBufferWriter writer, string value) => writer.WriteLengthEncodedString(value.AsSpan());
302261

303262
public static void WriteLengthEncodedString(this ByteBufferWriter writer, ReadOnlySpan<char> value)
@@ -306,7 +265,6 @@ public static void WriteLengthEncodedString(this ByteBufferWriter writer, ReadOn
306265
writer.WriteLengthEncodedInteger((ulong) byteCount);
307266
writer.Write(value, flush: true);
308267
}
309-
#endif
310268

311269
public static void WriteNullTerminatedString(this ByteBufferWriter writer, string value)
312270
{

0 commit comments

Comments
 (0)