diff --git a/adapter/MTConnect.NET-Adapter/MTConnect.NET-Adapter.csproj b/adapter/MTConnect.NET-Adapter/MTConnect.NET-Adapter.csproj index 896b89282..6108f5c5e 100644 --- a/adapter/MTConnect.NET-Adapter/MTConnect.NET-Adapter.csproj +++ b/adapter/MTConnect.NET-Adapter/MTConnect.NET-Adapter.csproj @@ -5,13 +5,13 @@ full - net461;net48;net6.0;net7.0;net8.0;net9.0 + net461;net48;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;net6.0;net7.0;net8.0;net9.0;net10.0 diff --git a/adapter/MTConnect.NET-Applications-Adapter/MTConnect.NET-Applications-Adapter.csproj b/adapter/MTConnect.NET-Applications-Adapter/MTConnect.NET-Applications-Adapter.csproj index ea7f60619..d94f1b86a 100644 --- a/adapter/MTConnect.NET-Applications-Adapter/MTConnect.NET-Applications-Adapter.csproj +++ b/adapter/MTConnect.NET-Applications-Adapter/MTConnect.NET-Applications-Adapter.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -65,4 +65,11 @@ + + + True + \ + + + diff --git a/adapter/Modules/MTConnect.NET-AdapterModule-MQTT/MTConnect.NET-AdapterModule-MQTT.csproj b/adapter/Modules/MTConnect.NET-AdapterModule-MQTT/MTConnect.NET-AdapterModule-MQTT.csproj index 67a6772c9..d74d5dd73 100644 --- a/adapter/Modules/MTConnect.NET-AdapterModule-MQTT/MTConnect.NET-AdapterModule-MQTT.csproj +++ b/adapter/Modules/MTConnect.NET-AdapterModule-MQTT/MTConnect.NET-AdapterModule-MQTT.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -52,6 +52,10 @@ True \ + + True + \ + diff --git a/adapter/Modules/MTConnect.NET-AdapterModule-MQTT/Module.cs b/adapter/Modules/MTConnect.NET-AdapterModule-MQTT/Module.cs index c6df0ac18..354d3673e 100644 --- a/adapter/Modules/MTConnect.NET-AdapterModule-MQTT/Module.cs +++ b/adapter/Modules/MTConnect.NET-AdapterModule-MQTT/Module.cs @@ -109,14 +109,23 @@ private async Task Worker() // Add CA (Certificate Authority) if (!string.IsNullOrEmpty(_configuration.CertificateAuthority)) { +#if NET9_0_OR_GREATER + certificates.Add(X509CertificateLoader.LoadCertificateFromFile(GetFilePath(_configuration.CertificateAuthority))); +#else certificates.Add(new X509Certificate2(GetFilePath(_configuration.CertificateAuthority))); +#endif } // Add Client Certificate & Private Key if (!string.IsNullOrEmpty(_configuration.PemCertificate) && !string.IsNullOrEmpty(_configuration.PemPrivateKey)) { #if NET5_0_OR_GREATER + +#if NET9_0_OR_GREATER + certificates.Add(X509CertificateLoader.LoadCertificate(X509Certificate2.CreateFromPemFile(GetFilePath(_configuration.PemCertificate), GetFilePath(_configuration.PemPrivateKey)).Export(X509ContentType.Pfx))); +#else certificates.Add(new X509Certificate2(X509Certificate2.CreateFromPemFile(GetFilePath(_configuration.PemCertificate), GetFilePath(_configuration.PemPrivateKey)).Export(X509ContentType.Pfx))); +#endif clientOptionsBuilder.WithTlsOptions(b => b .WithSslProtocols(System.Security.Authentication.SslProtocols.Tls12) diff --git a/adapter/Modules/MTConnect.NET-AdapterModule-SHDR/MTConnect.NET-AdapterModule-SHDR.csproj b/adapter/Modules/MTConnect.NET-AdapterModule-SHDR/MTConnect.NET-AdapterModule-SHDR.csproj index 1faedf150..17cd8ae42 100644 --- a/adapter/Modules/MTConnect.NET-AdapterModule-SHDR/MTConnect.NET-AdapterModule-SHDR.csproj +++ b/adapter/Modules/MTConnect.NET-AdapterModule-SHDR/MTConnect.NET-AdapterModule-SHDR.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -52,6 +52,10 @@ True \ + + True + \ + diff --git a/agent/MTConnect.NET-Agent/MTConnect.NET-Agent.csproj b/agent/MTConnect.NET-Agent/MTConnect.NET-Agent.csproj index e4324583b..4c48d80c4 100644 --- a/agent/MTConnect.NET-Agent/MTConnect.NET-Agent.csproj +++ b/agent/MTConnect.NET-Agent/MTConnect.NET-Agent.csproj @@ -5,13 +5,13 @@ full - net461;net48;net6.0;net7.0;net8.0;net9.0 + net461;net48;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;net6.0;net7.0;net8.0;net9.0;net10.0 diff --git a/agent/MTConnect.NET-Applications-Agents/MTConnect.NET-Applications-Agents.csproj b/agent/MTConnect.NET-Applications-Agents/MTConnect.NET-Applications-Agents.csproj index 00ba1ec91..2b658f28e 100644 --- a/agent/MTConnect.NET-Applications-Agents/MTConnect.NET-Applications-Agents.csproj +++ b/agent/MTConnect.NET-Applications-Agents/MTConnect.NET-Applications-Agents.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -65,4 +65,11 @@ + + + True + \ + + + diff --git a/agent/Modules/MTConnect.NET-AgentModule-HttpAdapter/MTConnect.NET-AgentModule-HttpAdapter.csproj b/agent/Modules/MTConnect.NET-AgentModule-HttpAdapter/MTConnect.NET-AgentModule-HttpAdapter.csproj index 25a162e04..46ca4b252 100644 --- a/agent/Modules/MTConnect.NET-AgentModule-HttpAdapter/MTConnect.NET-AgentModule-HttpAdapter.csproj +++ b/agent/Modules/MTConnect.NET-AgentModule-HttpAdapter/MTConnect.NET-AgentModule-HttpAdapter.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -45,6 +45,10 @@ True \ + + True + \ + diff --git a/agent/Modules/MTConnect.NET-AgentModule-HttpServer/MTConnect.NET-AgentModule-HttpServer.csproj b/agent/Modules/MTConnect.NET-AgentModule-HttpServer/MTConnect.NET-AgentModule-HttpServer.csproj index f80a831d7..360ce16a4 100644 --- a/agent/Modules/MTConnect.NET-AgentModule-HttpServer/MTConnect.NET-AgentModule-HttpServer.csproj +++ b/agent/Modules/MTConnect.NET-AgentModule-HttpServer/MTConnect.NET-AgentModule-HttpServer.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -46,6 +46,10 @@ True \ + + True + \ + diff --git a/agent/Modules/MTConnect.NET-AgentModule-MqttAdapter/MTConnect.NET-AgentModule-MqttAdapter.csproj b/agent/Modules/MTConnect.NET-AgentModule-MqttAdapter/MTConnect.NET-AgentModule-MqttAdapter.csproj index b8ef774fa..c56578ff5 100644 --- a/agent/Modules/MTConnect.NET-AgentModule-MqttAdapter/MTConnect.NET-AgentModule-MqttAdapter.csproj +++ b/agent/Modules/MTConnect.NET-AgentModule-MqttAdapter/MTConnect.NET-AgentModule-MqttAdapter.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -49,6 +49,10 @@ True \ + + True + \ + diff --git a/agent/Modules/MTConnect.NET-AgentModule-MqttAdapter/Module.cs b/agent/Modules/MTConnect.NET-AgentModule-MqttAdapter/Module.cs index 3a7f12c36..26a903a9f 100644 --- a/agent/Modules/MTConnect.NET-AgentModule-MqttAdapter/Module.cs +++ b/agent/Modules/MTConnect.NET-AgentModule-MqttAdapter/Module.cs @@ -132,14 +132,23 @@ private async Task Worker() // Add CA (Certificate Authority) if (!string.IsNullOrEmpty(_configuration.CertificateAuthority)) { +#if NET9_0_OR_GREATER + certificates.Add(X509CertificateLoader.LoadCertificateFromFile(GetFilePath(_configuration.CertificateAuthority))); +#else certificates.Add(new X509Certificate2(GetFilePath(_configuration.CertificateAuthority))); +#endif } // Add Client Certificate & Private Key if (!string.IsNullOrEmpty(_configuration.PemCertificate) && !string.IsNullOrEmpty(_configuration.PemPrivateKey)) { #if NET5_0_OR_GREATER + +#if NET9_0_OR_GREATER + certificates.Add(X509CertificateLoader.LoadCertificate(X509Certificate2.CreateFromPemFile(GetFilePath(_configuration.PemCertificate), GetFilePath(_configuration.PemPrivateKey)).Export(X509ContentType.Pfx))); +#else certificates.Add(new X509Certificate2(X509Certificate2.CreateFromPemFile(GetFilePath(_configuration.PemCertificate), GetFilePath(_configuration.PemPrivateKey)).Export(X509ContentType.Pfx))); +#endif clientOptionsBuilder.WithTlsOptions(b => b .WithSslProtocols(System.Security.Authentication.SslProtocols.Tls12) @@ -148,7 +157,7 @@ private async Task Worker() .WithAllowUntrustedCertificates(_configuration.AllowUntrustedCertificates) .WithClientCertificates(certificates)); #else - throw new Exception("PEM Certificates Not Supported in .NET Framework 4.8 or older"); + throw new Exception("PEM Certificates Not Supported in .NET Framework 4.8 or older"); #endif } diff --git a/agent/Modules/MTConnect.NET-AgentModule-MqttBroker/MTConnect.NET-AgentModule-MqttBroker.csproj b/agent/Modules/MTConnect.NET-AgentModule-MqttBroker/MTConnect.NET-AgentModule-MqttBroker.csproj index ad790c35d..5c8d33a71 100644 --- a/agent/Modules/MTConnect.NET-AgentModule-MqttBroker/MTConnect.NET-AgentModule-MqttBroker.csproj +++ b/agent/Modules/MTConnect.NET-AgentModule-MqttBroker/MTConnect.NET-AgentModule-MqttBroker.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -45,6 +45,10 @@ True \ + + True + \ + diff --git a/agent/Modules/MTConnect.NET-AgentModule-MqttRelay/MTConnect.NET-AgentModule-MqttRelay.csproj b/agent/Modules/MTConnect.NET-AgentModule-MqttRelay/MTConnect.NET-AgentModule-MqttRelay.csproj index f94469e39..73000f2a1 100644 --- a/agent/Modules/MTConnect.NET-AgentModule-MqttRelay/MTConnect.NET-AgentModule-MqttRelay.csproj +++ b/agent/Modules/MTConnect.NET-AgentModule-MqttRelay/MTConnect.NET-AgentModule-MqttRelay.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -49,6 +49,10 @@ True \ + + True + \ + diff --git a/agent/Modules/MTConnect.NET-AgentModule-ShdrAdapter/MTConnect.NET-AgentModule-ShdrAdapter.csproj b/agent/Modules/MTConnect.NET-AgentModule-ShdrAdapter/MTConnect.NET-AgentModule-ShdrAdapter.csproj index 7a18de441..1e9a4784b 100644 --- a/agent/Modules/MTConnect.NET-AgentModule-ShdrAdapter/MTConnect.NET-AgentModule-ShdrAdapter.csproj +++ b/agent/Modules/MTConnect.NET-AgentModule-ShdrAdapter/MTConnect.NET-AgentModule-ShdrAdapter.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -45,6 +45,10 @@ True \ + + True + \ + diff --git a/agent/Processors/MTConnect.NET-AgentProcessor-Python/MTConnect.NET-AgentProcessor-Python.csproj b/agent/Processors/MTConnect.NET-AgentProcessor-Python/MTConnect.NET-AgentProcessor-Python.csproj index 8e354f0b4..96626e1b7 100644 --- a/agent/Processors/MTConnect.NET-AgentProcessor-Python/MTConnect.NET-AgentProcessor-Python.csproj +++ b/agent/Processors/MTConnect.NET-AgentProcessor-Python/MTConnect.NET-AgentProcessor-Python.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -63,6 +63,10 @@ True \ + + True + \ + diff --git a/build/MTConnect.NET.Builder/CommandLine.cs b/build/MTConnect.NET.Builder/CommandLine.cs index 33bb30c76..386d23583 100644 --- a/build/MTConnect.NET.Builder/CommandLine.cs +++ b/build/MTConnect.NET.Builder/CommandLine.cs @@ -58,7 +58,7 @@ public static bool Run(string cmd, string workingDirectory, bool verbose) process.Close(); - return exitCode >= 0; + return exitCode == 0; } } } diff --git a/build/MTConnect.NET.Builder/Parts/agent/installer/installer.iss b/build/MTConnect.NET.Builder/Parts/agent/installer/installer.iss index 0eb4157c6..a037d8e21 100644 --- a/build/MTConnect.NET.Builder/Parts/agent/installer/installer.iss +++ b/build/MTConnect.NET.Builder/Parts/agent/installer/installer.iss @@ -65,6 +65,8 @@ CreateStartMenuIcon=Create a Start Menu icon CreateDesktopIcon=Create a Desktop icon [Types] +Name: "win64net10"; Description: "Windows x64 .NET 10" +Name: "win86net10"; Description: "Windows x86 .NET 10" Name: "win64net9"; Description: "Windows x64 .NET 9" Name: "win86net9"; Description: "Windows x86 .NET 9" Name: "win64net8"; Description: "Windows x64 .NET 8" @@ -79,6 +81,8 @@ Name: "win64net461"; Description: "Windows x64 .NET 4.6.1 Framework" Name: "win86net461"; Description: "Windows x86 .NET 4.6.1 Framework" [Components] +Name: "win64net10"; Description: "{#MyAppVerName}"; Types: win64net10 +Name: "win86net10"; Description: "{#MyAppVerName}"; Types: win86net10 Name: "win64net9"; Description: "{#MyAppVerName}"; Types: win64net9 Name: "win86net9"; Description: "{#MyAppVerName}"; Types: win86net9 Name: "win64net8"; Description: "{#MyAppVerName}"; Types: win64net8 @@ -91,9 +95,9 @@ Name: "win64net48"; Description: "{#MyAppVerName}"; Types: win64net48 Name: "win86net48"; Description: "{#MyAppVerName}"; Types: win86net48 Name: "win64net461"; Description: "{#MyAppVerName}"; Types: win64net461 Name: "win86net461"; Description: "{#MyAppVerName}"; Types: win86net461 -Name: "configuration"; Description: "Configuration Files"; Types: win86net461 win64net461 win86net48 win64net48 win86net6 win64net6 win86net7 win64net7 win86net8 win64net8 win86net9 win64net9 -Name: "schemas"; Description: "MTConnect XSD Schema Files"; Types: win86net461 win64net461 win86net48 win64net48 win86net6 win64net6 win86net7 win64net7 win86net8 win64net8 win86net9 win64net9 -Name: "styles"; Description: "XSL Stylesheet Files"; Types: win86net461 win64net461 win86net48 win64net48 win86net6 win64net6 win86net7 win64net7 win86net8 win64net8 win86net9 win64net9 +Name: "configuration"; Description: "Configuration Files"; Types: win86net461 win64net461 win86net48 win64net48 win86net6 win64net6 win86net7 win64net7 win86net8 win64net8 win86net9 win64net9 win86net10 win64net10 +Name: "schemas"; Description: "MTConnect XSD Schema Files"; Types: win86net461 win64net461 win86net48 win64net48 win86net6 win64net6 win86net7 win64net7 win86net8 win64net8 win86net9 win64net9 win86net10 win64net10 +Name: "styles"; Description: "XSL Stylesheet Files"; Types: win86net461 win64net461 win86net48 win64net48 win86net6 win64net6 win86net7 win64net7 win86net8 win64net8 win86net9 win64net9 win86net10 win64net10 [Languages] @@ -109,6 +113,8 @@ Name: "{app}\schemas"; Permissions: everyone-full [Files] ; Program Files +Source: "[INPUT_PATH]\win-x64\net10.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Permissions: everyone-full; Components: win64net10; +Source: "[INPUT_PATH]\win-x86\net10.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Permissions: everyone-full; Components: win86net10; Source: "[INPUT_PATH]\win-x64\net9.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Permissions: everyone-full; Components: win64net9; Source: "[INPUT_PATH]\win-x86\net9.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Permissions: everyone-full; Components: win86net9; Source: "[INPUT_PATH]\win-x64\net8.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Permissions: everyone-full; Components: win64net8; diff --git a/build/MTConnect.NET.Builder/Parts/libraries/Nuget.cs b/build/MTConnect.NET.Builder/Parts/libraries/Nuget.cs index 747a25f0d..b96e10213 100644 --- a/build/MTConnect.NET.Builder/Parts/libraries/Nuget.cs +++ b/build/MTConnect.NET.Builder/Parts/libraries/Nuget.cs @@ -50,7 +50,8 @@ public static async Task Build([CommandOption] string configurationId = null, [C parts.Add($"-p:RepositoryBranch=\"{librariesConfiguration.RepositoryBranch?.Replace("{VERSION}", version)}\""); parts.Add($"-p:PackageProjectUrl=\"{librariesConfiguration.PackageProjectUrl}\""); parts.Add($"-p:PackageLicenseExpression=\"{librariesConfiguration.PackageLicenseExpression}\""); - parts.Add($"-p:PackageIconUrl=\"{librariesConfiguration.PackageIconUrl}\""); + parts.Add($"-p:PackageIcon=\"package-icon.png\""); + //parts.Add($"-p:PackageIconUrl=\"{librariesConfiguration.PackageIconUrl}\""); parts.Add($"-p:RepositoryType={librariesConfiguration.RepositoryType}"); parts.Add($"-p:PublishRepositoryUrl=true"); parts.Add($"-p:IncludeSymbols=true"); diff --git a/docs/img/package-icon.png b/docs/img/package-icon.png new file mode 100644 index 000000000..d068a871d Binary files /dev/null and b/docs/img/package-icon.png differ diff --git a/libraries/MTConnect.NET-Common/MTConnect.NET-Common.csproj b/libraries/MTConnect.NET-Common/MTConnect.NET-Common.csproj index d6c02e259..2b3b615c8 100644 --- a/libraries/MTConnect.NET-Common/MTConnect.NET-Common.csproj +++ b/libraries/MTConnect.NET-Common/MTConnect.NET-Common.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -120,6 +120,10 @@ True \ + + True + \ + diff --git a/libraries/MTConnect.NET-DeviceFinder/MTConnect.NET-DeviceFinder.csproj b/libraries/MTConnect.NET-DeviceFinder/MTConnect.NET-DeviceFinder.csproj index 5b4324921..e07725b3d 100644 --- a/libraries/MTConnect.NET-DeviceFinder/MTConnect.NET-DeviceFinder.csproj +++ b/libraries/MTConnect.NET-DeviceFinder/MTConnect.NET-DeviceFinder.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -45,6 +45,10 @@ True \ + + True + \ + diff --git a/libraries/MTConnect.NET-HTTP/Ceen/Httpd/LimitedBodyStream.cs b/libraries/MTConnect.NET-HTTP/Ceen/Httpd/LimitedBodyStream.cs index fb2fa0cc6..8f7d1fd2b 100644 --- a/libraries/MTConnect.NET-HTTP/Ceen/Httpd/LimitedBodyStream.cs +++ b/libraries/MTConnect.NET-HTTP/Ceen/Httpd/LimitedBodyStream.cs @@ -152,11 +152,17 @@ public async Task DiscardAllAsync(System.Threading.CancellationToken cance var buf = new byte[1024 * 8]; while (m_bytesleft > 0) + { +#if NET9_0_OR_GREATER + await ReadExactlyAsync(buf, 0, buf.Length, cancellationToken); +#else await ReadAsync(buf, 0, buf.Length, cancellationToken); +#endif + } return true; } - #endregion +#endregion } } diff --git a/libraries/MTConnect.NET-HTTP/Ceen/Httpd/ServerConfig.cs b/libraries/MTConnect.NET-HTTP/Ceen/Httpd/ServerConfig.cs index 2c63ab6c4..753cce92b 100644 --- a/libraries/MTConnect.NET-HTTP/Ceen/Httpd/ServerConfig.cs +++ b/libraries/MTConnect.NET-HTTP/Ceen/Httpd/ServerConfig.cs @@ -178,7 +178,11 @@ public ServerConfig() /// The certificate password. public void LoadCertificate(string path, string password) { +#if NET9_0_OR_GREATER + this.SSLCertificate = X509CertificateLoader.LoadPkcs12FromFile(path, password ?? ""); +#else this.SSLCertificate = new X509Certificate2(path, password ?? ""); +#endif } /// diff --git a/libraries/MTConnect.NET-HTTP/MTConnect.NET-HTTP.csproj b/libraries/MTConnect.NET-HTTP/MTConnect.NET-HTTP.csproj index 8fe2432c8..dd55800b0 100644 --- a/libraries/MTConnect.NET-HTTP/MTConnect.NET-HTTP.csproj +++ b/libraries/MTConnect.NET-HTTP/MTConnect.NET-HTTP.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -112,6 +112,10 @@ True \ + + True + \ + diff --git a/libraries/MTConnect.NET-HTTP/Servers/MTConnectPostResponseHandler.cs b/libraries/MTConnect.NET-HTTP/Servers/MTConnectPostResponseHandler.cs index 339739924..4040e4728 100644 --- a/libraries/MTConnect.NET-HTTP/Servers/MTConnectPostResponseHandler.cs +++ b/libraries/MTConnect.NET-HTTP/Servers/MTConnectPostResponseHandler.cs @@ -105,7 +105,12 @@ private static async Task ReadRequestBytes(Stream inputStream) { var bufferSize = 1048576 * 2; // 2 MB var bytes = new byte[bufferSize]; + +#if NET9_0_OR_GREATER + await inputStream.ReadExactlyAsync(bytes, 0, bytes.Length); +#else await inputStream.ReadAsync(bytes, 0, bytes.Length); +#endif return TrimEnd(bytes); } diff --git a/libraries/MTConnect.NET-JSON-cppagent/MTConnect.NET-JSON-cppagent.csproj b/libraries/MTConnect.NET-JSON-cppagent/MTConnect.NET-JSON-cppagent.csproj index 97af06986..4a27e9f30 100644 --- a/libraries/MTConnect.NET-JSON-cppagent/MTConnect.NET-JSON-cppagent.csproj +++ b/libraries/MTConnect.NET-JSON-cppagent/MTConnect.NET-JSON-cppagent.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -52,6 +52,10 @@ True \ + + True + \ + diff --git a/libraries/MTConnect.NET-JSON/MTConnect.NET-JSON.csproj b/libraries/MTConnect.NET-JSON/MTConnect.NET-JSON.csproj index 7874233e5..de175985c 100644 --- a/libraries/MTConnect.NET-JSON/MTConnect.NET-JSON.csproj +++ b/libraries/MTConnect.NET-JSON/MTConnect.NET-JSON.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -93,6 +93,10 @@ True \ + + True + \ + diff --git a/libraries/MTConnect.NET-MQTT/Clients/MTConnectMqttExpandedClient.cs b/libraries/MTConnect.NET-MQTT/Clients/MTConnectMqttExpandedClient.cs index e532a5344..3512a7558 100644 --- a/libraries/MTConnect.NET-MQTT/Clients/MTConnectMqttExpandedClient.cs +++ b/libraries/MTConnect.NET-MQTT/Clients/MTConnectMqttExpandedClient.cs @@ -290,7 +290,11 @@ private async Task Worker() // Add CA (Certificate Authority) if (!string.IsNullOrEmpty(_caCertPath)) { +#if NET9_0_OR_GREATER + certificates.Add(X509CertificateLoader.LoadCertificateFromFile(GetFilePath(_caCertPath))); +#else certificates.Add(new X509Certificate2(GetFilePath(_caCertPath))); +#endif } // Add Client Certificate & Private Key @@ -298,7 +302,12 @@ private async Task Worker() { #if NET5_0_OR_GREATER + +#if NET9_0_OR_GREATER + certificates.Add(X509CertificateLoader.LoadCertificate(X509Certificate2.CreateFromPemFile(GetFilePath(_pemClientCertPath), GetFilePath(_pemPrivateKeyPath)).Export(X509ContentType.Pfx))); +#else certificates.Add(new X509Certificate2(X509Certificate2.CreateFromPemFile(GetFilePath(_pemClientCertPath), GetFilePath(_pemPrivateKeyPath)).Export(X509ContentType.Pfx))); +#endif clientOptionsBuilder.WithTlsOptions(b => b .WithSslProtocols(System.Security.Authentication.SslProtocols.Tls12) diff --git a/libraries/MTConnect.NET-MQTT/MTConnect.NET-MQTT.csproj b/libraries/MTConnect.NET-MQTT/MTConnect.NET-MQTT.csproj index b38908076..2be550076 100644 --- a/libraries/MTConnect.NET-MQTT/MTConnect.NET-MQTT.csproj +++ b/libraries/MTConnect.NET-MQTT/MTConnect.NET-MQTT.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -58,12 +58,42 @@ by GHSA-hh2w-p6rv-4g7w. On netstandard2.0 and net48 the package is the only thing on the wire, so the override here closes the actual exposure surface. --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -73,6 +103,10 @@ True \ + + True + \ + diff --git a/libraries/MTConnect.NET-MQTT/MTConnectMqttRelay.cs b/libraries/MTConnect.NET-MQTT/MTConnectMqttRelay.cs index 14804df53..1b858a8c4 100644 --- a/libraries/MTConnect.NET-MQTT/MTConnectMqttRelay.cs +++ b/libraries/MTConnect.NET-MQTT/MTConnectMqttRelay.cs @@ -214,7 +214,11 @@ private async Task Worker() // Add CA (Certificate Authority) if (!string.IsNullOrEmpty(_configuration.CertificateAuthority)) { +#if NET9_0_OR_GREATER + certificates.Add(X509CertificateLoader.LoadCertificateFromFile(GetFilePath(_configuration.CertificateAuthority))); +#else certificates.Add(new X509Certificate2(GetFilePath(_configuration.CertificateAuthority))); +#endif } // Add Client Certificate & Private Key @@ -222,7 +226,12 @@ private async Task Worker() { #if NET5_0_OR_GREATER + +#if NET9_0_OR_GREATER + certificates.Add(X509CertificateLoader.LoadCertificate(X509Certificate2.CreateFromPemFile(GetFilePath(_configuration.PemCertificate), GetFilePath(_configuration.PemPrivateKey)).Export(X509ContentType.Pfx))); +#else certificates.Add(new X509Certificate2(X509Certificate2.CreateFromPemFile(GetFilePath(_configuration.PemCertificate), GetFilePath(_configuration.PemPrivateKey)).Export(X509ContentType.Pfx))); +#endif clientOptionsBuilder.WithCleanSession(); clientOptionsBuilder.WithTlsOptions(b => b diff --git a/libraries/MTConnect.NET-SHDR/MTConnect.NET-SHDR.csproj b/libraries/MTConnect.NET-SHDR/MTConnect.NET-SHDR.csproj index 4eae6edba..a22ab056a 100644 --- a/libraries/MTConnect.NET-SHDR/MTConnect.NET-SHDR.csproj +++ b/libraries/MTConnect.NET-SHDR/MTConnect.NET-SHDR.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -53,6 +53,10 @@ True \ + + True + \ + diff --git a/libraries/MTConnect.NET-Services/MTConnect.NET-Services.csproj b/libraries/MTConnect.NET-Services/MTConnect.NET-Services.csproj index b6f1d0eb2..f84cbc2e1 100644 --- a/libraries/MTConnect.NET-Services/MTConnect.NET-Services.csproj +++ b/libraries/MTConnect.NET-Services/MTConnect.NET-Services.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -56,6 +56,10 @@ True \ + + True + \ + diff --git a/libraries/MTConnect.NET-SysML/MTConnect.NET-SysML.csproj b/libraries/MTConnect.NET-SysML/MTConnect.NET-SysML.csproj index c0ea260e0..5045ee92e 100644 --- a/libraries/MTConnect.NET-SysML/MTConnect.NET-SysML.csproj +++ b/libraries/MTConnect.NET-SysML/MTConnect.NET-SysML.csproj @@ -4,13 +4,13 @@ net8.0 - net6.0;net7.0;net8.0;net9.0 + net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net6.0;net7.0;net8.0;net9.0 + net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -49,6 +49,10 @@ True \ + + True + \ + diff --git a/libraries/MTConnect.NET-TLS/MTConnect.NET-TLS.csproj b/libraries/MTConnect.NET-TLS/MTConnect.NET-TLS.csproj index 18d6219c9..56edaab52 100644 --- a/libraries/MTConnect.NET-TLS/MTConnect.NET-TLS.csproj +++ b/libraries/MTConnect.NET-TLS/MTConnect.NET-TLS.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -45,6 +45,10 @@ True \ + + True + \ + diff --git a/libraries/MTConnect.NET-TLS/TlsConfiguration.cs b/libraries/MTConnect.NET-TLS/TlsConfiguration.cs index f6c3f3143..ffdf10504 100644 --- a/libraries/MTConnect.NET-TLS/TlsConfiguration.cs +++ b/libraries/MTConnect.NET-TLS/TlsConfiguration.cs @@ -81,8 +81,13 @@ private CertificateLoadResult GetPfxCertificate() { X509Certificate2 certificate; +#if NET9_0_OR_GREATER + if (!string.IsNullOrEmpty(Pfx.CertificatePassword)) certificate = X509CertificateLoader.LoadPkcs12FromFile(Pfx.CertificatePath, Pfx.CertificatePassword); + else certificate = X509CertificateLoader.LoadCertificateFromFile(Pfx.CertificatePath); +#else if (!string.IsNullOrEmpty(Pfx.CertificatePassword)) certificate = new X509Certificate2(Pfx.CertificatePath, Pfx.CertificatePassword); else certificate = new X509Certificate2(Pfx.CertificatePath); +#endif return CertificateLoadResult.Ok(certificate); } @@ -121,10 +126,17 @@ private CertificateLoadResult GetPemCertificate() certificate = null; #endif +#if NET9_0_OR_GREATER + // Export to Pkcs12 + var pfxPassword = Guid.NewGuid().ToString(); + var pkcsCert = certificate.Export(X509ContentType.Pkcs12, pfxPassword); + certificate = X509CertificateLoader.LoadPkcs12(pkcsCert, pfxPassword); +#else // Export to Pkcs12 var pfxPassword = Guid.NewGuid().ToString(); var pkcsCert = certificate.Export(X509ContentType.Pkcs12, pfxPassword); certificate = new X509Certificate2(pkcsCert, pfxPassword); +#endif return CertificateLoadResult.Ok(certificate); } @@ -145,16 +157,23 @@ private CertificateLoadResult GetPemCertificateAuthority() { X509Certificate2 certificate; -#if NET5_0_OR_GREATER +#if NET9_0_OR_GREATER + certificate = X509CertificateLoader.LoadCertificateFromFile(Pem.CertificateAuthority); + + // Export to Pkcs12 + var pfxPassword = Guid.NewGuid().ToString(); + var pkcsCert = certificate.Export(X509ContentType.Pkcs12, pfxPassword); + certificate = X509CertificateLoader.LoadPkcs12(pkcsCert, pfxPassword); +#elif NET5_0_OR_GREATER certificate = new X509Certificate2(Pem.CertificateAuthority); -#else - certificate = null; -#endif // Export to Pkcs12 var pfxPassword = Guid.NewGuid().ToString(); var pkcsCert = certificate.Export(X509ContentType.Pkcs12, pfxPassword); certificate = new X509Certificate2(pkcsCert, pfxPassword); +#else + certificate = null; +#endif return CertificateLoadResult.Ok(certificate); } diff --git a/libraries/MTConnect.NET-XML/MTConnect.NET-XML.csproj b/libraries/MTConnect.NET-XML/MTConnect.NET-XML.csproj index 41e35537a..4307e5eeb 100644 --- a/libraries/MTConnect.NET-XML/MTConnect.NET-XML.csproj +++ b/libraries/MTConnect.NET-XML/MTConnect.NET-XML.csproj @@ -4,13 +4,13 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 false None true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -77,6 +77,10 @@ True \ + + True + \ + diff --git a/libraries/MTConnect.NET/MTConnect.NET.csproj b/libraries/MTConnect.NET/MTConnect.NET.csproj index 37c2c90e7..ac643edb8 100644 --- a/libraries/MTConnect.NET/MTConnect.NET.csproj +++ b/libraries/MTConnect.NET/MTConnect.NET.csproj @@ -4,11 +4,11 @@ net8.0 - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true - net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0 + net461;net462;net47;net471;net472;net48;netstandard2.0;net6.0;net7.0;net8.0;net9.0;net10.0 true @@ -56,6 +56,10 @@ True \ + + True + \ +