Skip to content

Commit dd5ed9d

Browse files
WojciechNagorskidrieseng
authored andcommitted
Removing old target frameworks (#1109)
Remove support for legacy / deprecated target frameworks while adding support for .NET 6.0 (and higher). The supported target frameworks are now: * .NETFramework 4.6.2 (and higher) * .NET Standard 2.0 * .NET 6.0 (and higher)
1 parent 7f50484 commit dd5ed9d

File tree

100 files changed

+376
-9051
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+376
-9051
lines changed

README.md

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,9 @@ Private keys can be encrypted using one of the following cipher methods:
116116

117117
## Framework Support
118118
**SSH.NET** supports the following target frameworks:
119-
* .NET Framework 3.5
120-
* .NET Framework 4.0 (and higher)
121-
* .NET Standard 1.3
119+
* .NETFramework 4.6.2 (and higher)
122120
* .NET Standard 2.0
123-
* Silverlight 4
124-
* Silverlight 5
125-
* Windows Phone 7.1
126-
* Windows Phone 8.0
127-
* Universal Windows Platform 10
121+
* .NET 6 (and higher)
128122

129123
## Usage
130124

@@ -178,16 +172,6 @@ using (var client = new SshClient("sftp.foo.com", "guest", "pwd"))
178172
}
179173
```
180174

181-
## Building SSH.NET
182-
183-
Software | net35 | net40 | netstandard1.3 | netstandard2.0 | sl4 | sl5 | wp71 | wp8 | uap10.0 |
184-
--------------------------------- | :---: | :---: | :------------: | :------------: | :-: | :-: | :--: | :-: | :-----: |
185-
Windows Phone SDK 8.0 | | | | | x | x | x | x |
186-
Visual Studio 2012 Update 5 | x | x | | | x | x | x | x |
187-
Visual Studio 2015 Update 3 | x | x | | | | x | | x | x
188-
Visual Studio 2017 | x | x | x | x | | | | |
189-
Visual Studio 2019 | x | x | x | x | | | | |
190-
191175
## Supporting SSH.NET
192176

193177
Do you or your company rely on **SSH.NET** in your projects? If you want to encourage us to keep on going and show us that you appreciate our work, please consider becoming a [sponsor](https://github.com/sponsors/sshnet) through GitHub Sponsors.

appveyor.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
os: Visual Studio 2019
1+
os: Visual Studio 2022
22

33
before_build:
4-
- nuget restore src\Renci.SshNet.VS2019.sln
4+
- nuget restore src\Renci.SshNet.sln
55

66
build:
7-
project: src\Renci.SshNet.VS2019.sln
7+
project: src\Renci.SshNet.sln
88
verbosity: minimal
99

1010
test_script:
1111
- cmd: >-
12-
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net35\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning"
13-
14-
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net472\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning"
12+
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net462\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning" --blame
13+
14+
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net7.0\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning" --blame

build/build.proj

Lines changed: 18 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -8,86 +8,37 @@
88
<MSBuildTasksPackageId>MSBuildTasks</MSBuildTasksPackageId>
99
<MSBuildTasksPackageVersion>1.5.0.214</MSBuildTasksPackageVersion>
1010
</PropertyGroup>
11-
12-
<ItemGroup>
13-
<VisualStudioVersionClassic Include="2012">
14-
<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2012.sln</SolutionFile>
15-
<ToolsVersion>14.0</ToolsVersion>
16-
<VisualStudioVersion>14.0</VisualStudioVersion>
17-
</VisualStudioVersionClassic>
18-
<VisualStudioVersionClassic Include="2015">
19-
<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2015.sln</SolutionFile>
20-
<ToolsVersion>14.0</ToolsVersion>
21-
<VisualStudioVersion>14.0</VisualStudioVersion>
22-
</VisualStudioVersionClassic>
23-
</ItemGroup>
24-
25-
<ItemGroup>
26-
<VisualStudioVersionModern Include="2019">
27-
<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2019.sln</SolutionFile>
28-
<VisualStudioVersion>16.0</VisualStudioVersion>
29-
</VisualStudioVersionModern>
30-
</ItemGroup>
3111

3212
<ItemGroup>
33-
<TargetFrameworkClassic Include="Windows Phone Silverlight 7.1">
34-
<OutputDirectory>Renci.SshNet.WindowsPhone\bin\$(Configuration)</OutputDirectory>
35-
<Moniker>wp71</Moniker>
36-
</TargetFrameworkClassic>
37-
<TargetFrameworkClassic Include="Windows Phone Silverlight 8.0">
38-
<OutputDirectory>Renci.SshNet.WindowsPhone8\bin\$(Configuration)</OutputDirectory>
39-
<Moniker>wp8</Moniker>
40-
</TargetFrameworkClassic>
41-
<TargetFrameworkClassic Include="Silverlight 4">
42-
<OutputDirectory>Renci.SshNet.Silverlight\bin\$(Configuration)</OutputDirectory>
43-
<Moniker>sl4</Moniker>
44-
</TargetFrameworkClassic>
45-
<TargetFrameworkClassic Include="Silverlight 5">
46-
<OutputDirectory>Renci.SshNet.Silverlight5\bin\$(Configuration)</OutputDirectory>
47-
<Moniker>sl5</Moniker>
48-
</TargetFrameworkClassic>
49-
<TargetFrameworkClassic Include="Universal Windows Platform 10">
50-
<OutputDirectory>Renci.SshNet.UAP10\bin\$(Configuration)</OutputDirectory>
51-
<Moniker>uap10</Moniker>
52-
</TargetFrameworkClassic>
13+
<VisualStudioVersionModern Include="2022">
14+
<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.sln</SolutionFile>
15+
<VisualStudioVersion>17.0</VisualStudioVersion>
16+
</VisualStudioVersionModern>
5317
</ItemGroup>
5418

5519
<ItemGroup>
56-
<TargetFrameworkModern Include=".NET Framework 3.5">
57-
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\net35</OutputDirectory>
58-
<Moniker>net35</Moniker>
59-
</TargetFrameworkModern>
60-
<TargetFrameworkModern Include=".NET Framework 4.0">
61-
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\net40</OutputDirectory>
62-
<Moniker>net40</Moniker>
63-
</TargetFrameworkModern>
64-
<TargetFrameworkModern Include=".NETStandard 1.3">
65-
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\netstandard1.3</OutputDirectory>
66-
<Moniker>netstandard1.3</Moniker>
20+
<TargetFrameworkModern Include=".NET Framework 4.6.2">
21+
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\net462</OutputDirectory>
22+
<Moniker>net462</Moniker>
6723
</TargetFrameworkModern>
6824
<TargetFrameworkModern Include=".NETStandard 2.0">
6925
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\netstandard2.0</OutputDirectory>
7026
<Moniker>netstandard2.0</Moniker>
7127
</TargetFrameworkModern>
28+
<TargetFrameworkModern Include=".NET 6.0">
29+
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\net6.0</OutputDirectory>
30+
<Moniker>net6.0</Moniker>
31+
</TargetFrameworkModern>
32+
<TargetFrameworkModern Include=".NET 7.0">
33+
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\net7.0</OutputDirectory>
34+
<Moniker>net7.0</Moniker>
35+
</TargetFrameworkModern>
7236
</ItemGroup>
73-
74-
<Target Name="CleanClassic" DependsOnTargets="CleanSolutionClassic">
75-
<RemoveDir Directories="$(MSBuildThisFileDirectory)target"/>
76-
</Target>
77-
37+
7838
<Target Name="CleanModern" DependsOnTargets="CleanSolutionModern">
7939
<RemoveDir Directories="$(MSBuildThisFileDirectory)target"/>
8040
</Target>
8141

82-
<Target Name="CleanSolutionClassic" Outputs="%(VisualStudioVersionClassic.Identity)">
83-
<ItemGroup>
84-
<ProjectToBuild Remove="@(ProjectToBuild)"/>
85-
<ProjectToBuild Include="%(VisualStudioVersionClassic.SolutionFile)">
86-
<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersionClassic.VisualStudioVersion)</Properties>
87-
</ProjectToBuild>
88-
</ItemGroup>
89-
<MSBuild Projects="@(ProjectToBuild)" ToolsVersion="%(VisualStudioVersionClassic.ToolsVersion)" Targets="Clean"/>
90-
</Target>
9142

9243
<Target Name="CleanSolutionModern" Outputs="%(VisualStudioVersionModern.Identity)">
9344
<ItemGroup>
@@ -99,26 +50,11 @@
9950
<MSBuild Projects="@(ProjectToBuild)" Targets="Clean"/>
10051
</Target>
10152

102-
<Target Name="RestoreNuGetPackagesClassic" DependsOnTargets="DownloadNuGet" Outputs="%(VisualStudioVersionClassic.Identity)">
103-
<Message Text="Restoring nuget packages for '%(VisualStudioVersionClassic.SolutionFile)'..." Importance="High"/>
104-
<Exec Command="$(NuGetExe) restore &quot;%(VisualStudioVersionClassic.SolutionFile)&quot;"/>
105-
</Target>
106-
10753
<Target Name="RestoreNuGetPackagesModern" DependsOnTargets="DownloadNuGet" Outputs="%(VisualStudioVersionModern.Identity)">
10854
<Message Text="Restoring nuget packages for '%(VisualStudioVersionModern.SolutionFile)'..." Importance="High"/>
10955
<Exec Command="$(NuGetExe) restore &quot;%(VisualStudioVersionModern.SolutionFile)&quot;"/>
11056
</Target>
111-
112-
<Target Name="BuildClassic" DependsOnTargets="RestoreNuGetPackagesClassic" Outputs="%(VisualStudioVersionClassic.Identity)">
113-
<ItemGroup>
114-
<ProjectToBuild Remove="@(ProjectToBuild)"/>
115-
<ProjectToBuild Include="%(VisualStudioVersionClassic.SolutionFile)">
116-
<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersionClassic.VisualStudioVersion)</Properties>
117-
</ProjectToBuild>
118-
</ItemGroup>
119-
<MSBuild Projects="@(ProjectToBuild)" ToolsVersion="%(VisualStudioVersionClassic.ToolsVersion)" Targets="Rebuild"/>
120-
</Target>
121-
57+
12258
<Target Name="BuildModern" DependsOnTargets="RestoreNuGetPackagesModern" Outputs="%(VisualStudioVersionModern.Identity)">
12359
<ItemGroup>
12460
<ProjectToBuild Remove="@(ProjectToBuild)"/>
@@ -131,12 +67,7 @@
13167

13268
<Target Name="Package" DependsOnTargets="CreateNuGetPackage;CreateBinPackage;GenerateHelpFile"/>
13369

134-
<Target Name="ValidatePackage" DependsOnTargets="ValidatePackageClassic;ValidatePackageModern"/>
135-
136-
<Target Name="ValidatePackageClassic" DependsOnTargets="CheckNuGetPackageDirectory" Outputs="%(TargetFrameworkClassic.Identity)">
137-
<Error Text="The 'Renci.SshNet.dll' file is not available for %(TargetFrameworkClassic.Identity) in $(NuGetPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)." Condition="!Exists('$(NuGetPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)\Renci.SshNet.dll')"/>
138-
<Error Text="The 'Renci.SshNet.xml' file is not available for %(TargetFrameworkClassic.Identity) in $(NuGetPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)." Condition="!Exists('$(NuGetPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)\Renci.SshNet.xml')"/>
139-
</Target>
70+
<Target Name="ValidatePackage" DependsOnTargets="ValidatePackageModern"/>
14071

14172
<Target Name="ValidatePackageModern" DependsOnTargets="CheckNuGetPackageDirectory" Outputs="%(TargetFrameworkModern.Identity)">
14273
<Error Text="The 'Renci.SshNet.dll' file is not available for %(TargetFrameworkModern.Identity) in $(NuGetPackageDirectory)\lib\%(TargetFrameworkModern.Moniker)." Condition="!Exists('$(NuGetPackageDirectory)\lib\%(TargetFrameworkModern.Moniker)\Renci.SshNet.dll')"/>
@@ -153,16 +84,6 @@
15384
<Move SourceFiles="$(MSBuildThisFileDirectory)target\help\SshNet.Help.chm" DestinationFiles="$(MSBuildThisFileDirectory)target\SSH.NET-$(ReleaseVersion)-help.chm"/>
15485
</Target>
15586

156-
<Target Name="PreparePackageClassic" DependsOnTargets="BuildClassic;CheckNuGetPackageDirectory;CheckBinaryZipPackageDirectory" Outputs="%(TargetFrameworkClassic.Identity)">
157-
<ItemGroup>
158-
<BuildOutput Remove="@(BuildOutput)"/>
159-
<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFrameworkClassic.OutputDirectory)\Renci.SshNet.dll"/>
160-
<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFrameworkClassic.OutputDirectory)\Renci.SshNet.xml"/>
161-
</ItemGroup>
162-
<Copy SourceFiles="@(BuildOutput)" DestinationFolder="$(NuGetPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)"/>
163-
<Copy SourceFiles="@(BuildOutput)" DestinationFolder="$(BinPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)"/>
164-
</Target>
165-
16687
<Target Name="PreparePackageModern" DependsOnTargets="BuildModern;CheckNuGetPackageDirectory" Outputs="%(TargetFrameworkModern.Identity)">
16788
<ItemGroup>
16889
<BuildOutput Remove="@(BuildOutput)"/>

build/nuget/SSH.NET.nuspec

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,37 +16,15 @@
1616
<language>en-US</language>
1717
<tags>ssh scp sftp</tags>
1818
<dependencies>
19-
<group targetFramework="net35" />
20-
<group targetFramework="net40" />
21-
<group targetFramework="netstandard1.3">
22-
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
23-
<dependency id="System.Diagnostics.TraceSource" version="4.3.0" />
24-
<dependency id="System.Net.NameResolution" version="4.3.0" />
25-
<dependency id="System.Net.Sockets" version="4.3.0" />
26-
<dependency id="System.Threading.Thread" version="4.3.0" />
27-
<dependency id="System.Threading.ThreadPool" version="4.3.0" />
28-
<dependency id="System.Threading.Timer" version="4.3.0" />
29-
<dependency id="System.Xml.XmlDocument" version="4.3.0" />
30-
<dependency id="System.Xml.XPath.XmlDocument" version="4.3.0" />
31-
</group>
19+
<group targetFramework="net462" />
3220
<group targetFramework="netstandard2.0">
3321
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
3422
</group>
35-
<group targetFramework="sl4">
36-
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
37-
</group>
38-
<group targetFramework="sl5">
39-
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
40-
</group>
41-
<group targetFramework="wp71">
42-
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
43-
</group>
44-
<group targetFramework="wp8">
23+
<group targetFramework="net6.0">
4524
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
4625
</group>
47-
<group targetFramework="uap10.0">
26+
<group targetFramework="net7.0">
4827
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
49-
<dependency id="System.Xml.XPath.XmlDocument" version="4.3.0" />
5028
</group>
5129
</dependencies>
5230
</metadata>

build/sandcastle/SSH.NET.shfbproj

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
33
<PropertyGroup>
4-
<!--
5-
The configuration and platform will be used to determine which assemblies to include from solution and
6-
project documentation sources
7-
-->
4+
<!-- A target framework version is required by Visual Studio. It can be any version with a targeting pack installed. -->
5+
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
6+
<!-- The configuration and platform will be used to determine which assemblies to include from solution and
7+
project documentation sources -->
88
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
99
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
10+
1011
<SchemaVersion>2.0</SchemaVersion>
1112
<ProjectGuid>{f7266fb1-f50a-4a5b-b35a-5ea8ebdc1be9}</ProjectGuid>
12-
<SHFBSchemaVersion>2015.6.5.0</SHFBSchemaVersion>
13+
<SHFBSchemaVersion>2017.9.26.0</SHFBSchemaVersion>
1314
<!-- AssemblyName, Name, and RootNamespace are not used by SHFB but Visual Studio adds them anyway -->
1415
<AssemblyName>Documentation</AssemblyName>
1516
<RootNamespace>Documentation</RootNamespace>
1617
<Name>Documentation</Name>
1718
<!-- SHFB properties -->
18-
<FrameworkVersion>.NET Framework 4.0</FrameworkVersion>
19+
<FrameworkVersion>.NET Framework 4.6.2</FrameworkVersion>
1920
<OutputPath>..\target\help</OutputPath>
2021
<HtmlHelpName>SshNet.Help</HtmlHelpName>
2122
<Language>en-US</Language>
@@ -24,25 +25,15 @@
2425
<SyntaxFilters>C#</SyntaxFilters>
2526
<SdkLinkTarget>Blank</SdkLinkTarget>
2627
<RootNamespaceContainer>False</RootNamespaceContainer>
27-
<PresentationStyle>VS2010</PresentationStyle>
28+
<PresentationStyle>VS2013</PresentationStyle>
2829
<Preliminary>False</Preliminary>
2930
<NamingMethod>Guid</NamingMethod>
3031
<HelpTitle>SSH.NET Client Library Documentation</HelpTitle>
3132
<ContentPlacement>AboveNamespaces</ContentPlacement>
32-
<ComponentConfigurations>
33-
<ComponentConfig id="Code Block Component" enabled="True">
34-
<component id="Code Block Component">
35-
<basePath value="{@HtmlEncProjectFolder}" />
36-
<outputPaths>{@HelpFormatOutputPaths}</outputPaths>
37-
<allowMissingSource value="false" />
38-
<removeRegionMarkers value="false" />
39-
<colorizer syntaxFile="{@SHFBROOT}\PresentationStyles\Colorizer\highlight.xml" styleFile="{@SHFBROOT}\PresentationStyles\Colorizer\highlight.xsl" stylesheet="{@SHFBROOT}\PresentationStyles\Colorizer\highlight.css" scriptFile="{@SHFBROOT}\PresentationStyles\Colorizer\highlight.js" disabled="{@DisableCodeBlockComponent}" language="cs" tabSize="0" numberLines="false" outlining="false" keepSeeTags="false" defaultTitle="true" />
40-
</component>
41-
</ComponentConfig>
42-
</ComponentConfigurations>
33+
4334
<DocumentationSources>
44-
<DocumentationSource sourceFile="..\..\src\Renci.SshNet\bin\Release\net40\Renci.SshNet.dll" xmlns="" />
45-
<DocumentationSource sourceFile="..\..\src\Renci.SshNet\bin\Release\net40\Renci.SshNet.xml" xmlns="" />
35+
<DocumentationSource sourceFile="..\..\src\Renci.SshNet\bin\Release\net462\Renci.SshNet.dll" xmlns="" />
36+
<DocumentationSource sourceFile="..\..\src\Renci.SshNet\bin\Release\net462\Renci.SshNet.xml" xmlns="" />
4637
</DocumentationSources>
4738
<MissingTags>Summary, Parameter, Returns, AutoDocumentCtors, TypeParameter, AutoDocumentDispose</MissingTags>
4839
<BuildAssemblerVerbosity>OnlyWarningsAndErrors</BuildAssemblerVerbosity>
@@ -54,7 +45,7 @@
5445
<CleanIntermediates>True</CleanIntermediates>
5546
</PropertyGroup>
5647
<!-- There are no properties for these groups. AnyCPU needs to appear in order for Visual Studio to perform
57-
the build. The others are optional common platform types that may appear. -->
48+
the build. The others are optional common platform types that may appear. -->
5849
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
5950
</PropertyGroup>
6051
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

src/Renci.SshNet.Silverlight/Properties/AssemblyInfo.cs

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)