Skip to content

Release 2023.0.0 #1201

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 53 commits into from
Oct 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
a5bd08d
Assets/logos (#782)
Filini Feb 21, 2021
f072c5f
OPENSSH KeyReader for more keys (#614)
darinkes Apr 18, 2021
583a9ce
Add interface to SftpFile #120 (#812)
wxtsxt Sep 8, 2021
30d79c7
Start MessageListener with ThreadAbstraction.ExecuteThreadLongRunning…
IgorMilavec Nov 28, 2021
7bdfc9e
Add async support to SftpClient and SftpFileStream (#819)
IgorMilavec Dec 14, 2021
cad9433
Add CODEOWNERS file.
drieseng Feb 11, 2022
37fb864
Fix virus false-positive by Defender on Renci.SSHNet.Tests.dll (#867)
zybexXL Feb 14, 2022
4dfc126
Add unit tests for task-based asynchronous API (#906)
IgorMilavec Feb 15, 2022
b30b11a
correct 'Documenation' to 'Documentation' (#838)
maxijabase Feb 15, 2022
bc99ada
Agent auth and Keygen (#794)
darinkes Mar 5, 2022
03c6d60
Use cryptographically secure random number generator.
drieseng May 29, 2022
c728fba
Merge branch 'develop' of https://github.com/sshnet/SSH.NET into develop
drieseng May 29, 2022
bd7c02f
Remove unused import.
drieseng May 29, 2022
34ce2bd
Add IBaseClient for BaseClient and ISftpClient to inherit from (#975)
Owen-Krueger Jul 3, 2022
b9bc475
fix typo (#999)
psh9508 Aug 26, 2022
f3ebc29
Fix Seek Operations in SftpFileStream (#910)
lemonyte Nov 29, 2022
ab2ccc4
Add back copyright to license. (#1060)
drieseng Dec 20, 2022
cf85100
Removing old target frameworks (#1109)
WojciechNagorski May 6, 2023
8c932fb
Remove old features [Part 1] (#1117)
WojciechNagorski May 9, 2023
072ba7e
Remove FEATURE_DIRECTORYINFO_ENUMERATEFILES (#1119)
WojciechNagorski May 22, 2023
3ecbd10
Fix some (lots of) issues reported by analyzers. (#1125)
drieseng May 24, 2023
c04cdbc
Round 2 of analyzer fixes and general cleanup. (#1132)
drieseng May 29, 2023
27976bb
Analyzer fixes round 3. (#1135)
drieseng May 31, 2023
a4dbf77
Replace Array<T>.Empty with Array.Empty<T>() (#1137)
Rob-Hague Jun 6, 2023
4577899
Replace IsNullOrWhiteSpace extension (#1142)
Rob-Hague Jun 12, 2023
a3dbbc5
Use License Expression for NuGet Package
mus65 Jun 25, 2023
69a42d3
Integration tests
WojciechNagorski Jun 29, 2023
6f567ec
Remove todos
WojciechNagorski Jun 29, 2023
3d36f88
Update CODEOWNERS
WojciechNagorski Aug 25, 2023
592c86c
Merge pull request #1146 from mus65/nuget_license
WojciechNagorski Aug 25, 2023
77b27e5
Merge branch 'master' of https://github.com/sshnet/SSH.NET into integ…
WojciechNagorski Aug 26, 2023
82dc77a
Use correct SSH.NET
WojciechNagorski Aug 30, 2023
bfef6aa
Merge branch 'develop' of https://github.com/sshnet/SSH.NET into inte…
WojciechNagorski Aug 30, 2023
1b46264
Merge pull request #1148 from WojciechNagorski/integration-tests-mstests
WojciechNagorski Aug 30, 2023
7cd0487
ListDirectoryAsync return IAsyncEnumerable (#1126)
WojciechNagorski Aug 30, 2023
004b57a
Fix the assembly resolution build warning (#1165)
Rob-Hague Aug 30, 2023
9f1699b
Delete performance/longrunning tests (#1143)
Rob-Hague Sep 6, 2023
9593e87
Move Integration tests (#1173)
WojciechNagorski Sep 12, 2023
60de8a4
Add a benchmarks project (#1151)
Rob-Hague Sep 15, 2023
dcc596a
Use ExceptionDispatchInfo to retain call stack in Session.WaitOnHandl…
IgorMilavec Sep 15, 2023
43329ee
Support SHA256 fingerprints for host key validation (#1098)
DavisNT Sep 17, 2023
8732d3d
Add support for RSA SHA-2 public key algorithms (#1177)
Rob-Hague Sep 23, 2023
18e6673
Improvements after #1177 (#1180)
WojciechNagorski Sep 23, 2023
aade354
Use ExceptionDispatchInfo in more places (#1182)
Rob-Hague Sep 23, 2023
51e0c67
Try to "fix" the flaky test (#1185)
Rob-Hague Sep 25, 2023
fdd1130
Enable DSA tests (#1181)
Rob-Hague Sep 25, 2023
4ba591e
FingerPrints (#1186)
WojciechNagorski Sep 26, 2023
dd2e552
Use OS-agnostic socket error codes to allow tests run on different OS…
dimhotepus Sep 26, 2023
f28c2c2
Fix for channel session semaphore from thread blocking (#1071)
patrick-yates-redgate Sep 28, 2023
cd1151d
Update ISftpClient for #120 (#1193)
WojciechNagorski Sep 29, 2023
5803ada
Implement set last write and access time (#1194)
WojciechNagorski Sep 29, 2023
70f58b7
Add/migrate hmac+cipher integration tests (#1189)
Rob-Hague Sep 29, 2023
1c7166a
Update tests for SetLastAccessTime(Utc) to also verify the time compo…
drieseng Oct 9, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1,246 changes: 1,246 additions & 0 deletions .editorconfig

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@ project.lock.json

# Build outputs
build/target/

# Benchmark results
BenchmarkDotNet.Artifacts/
1 change: 1 addition & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @drieseng @WojciechNagorski
44 changes: 44 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<Project>
<Import Project="$(MSBuildThisFileFullPath).user" Condition="Exists('$(MSBuildThisFileFullPath).user')" />

<!--
Assembly Info properties that apply to all projects/assemblies.
-->
<PropertyGroup>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)src\Renci.SshNet.snk</AssemblyOriginatorKeyFile>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<LangVersion>latest</LangVersion>
<WarningLevel>9999</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
</PropertyGroup>

<!--
Code analysis properties.
-->
<PropertyGroup>
<EnableNETAnalyzers>false</EnableNETAnalyzers>
<AnalysisLevel>preview-All</AnalysisLevel>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>

<!--
Add the stylecop config to each project.
-->
<ItemGroup>
<AdditionalFiles Include="..\..\stylecop.json" Link="stylecop.json" />
</ItemGroup>

<!--
Use fixed version of analyzers.
-->
<ItemGroup>
<!--
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0-preview1.23165.1" PrivateAssets="all" />
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.435" PrivateAssets="all" />
<PackageReference Include="Meziantou.Analyzer" Version="2.0.54" PrivateAssets="all" />
<PackageReference Include="SonarAnalyzer.CSharp" Version="8.55.0.65544" PrivateAssets="all" />
-->
</ItemGroup>
</Project>
2 changes: 2 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
The MIT License (MIT)

Copyright (c) Renci, Oleg Kapeljushnik, Gert Driesen and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
Expand Down
47 changes: 8 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ the missing test once you figure things out. 🤓
* RSA in OpenSSL PEM and ssh.com format
* DSA in OpenSSL PEM and ssh.com format
* ECDSA 256/384/521 in OpenSSL PEM format
* ED25519 in OpenSSH key format
* ECDSA 256/384/521, ED25519 and RSA in OpenSSH key format

Private keys can be encrypted using one of the following cipher methods:
* DES-EDE3-CBC
Expand All @@ -97,6 +97,8 @@ Private keys can be encrypted using one of the following cipher methods:
* ecdsa-sha2-nistp256
* ecdsa-sha2-nistp384
* ecdsa-sha2-nistp521
* rsa-sha2-512
* rsa-sha2-256
* ssh-rsa
* ssh-dss

Expand All @@ -116,15 +118,9 @@ Private keys can be encrypted using one of the following cipher methods:

## Framework Support
**SSH.NET** supports the following target frameworks:
* .NET Framework 3.5
* .NET Framework 4.0 (and higher)
* .NET Standard 1.3
* .NET Standard 2.0
* Silverlight 4
* Silverlight 5
* Windows Phone 7.1
* Windows Phone 8.0
* Universal Windows Platform 10
* .NETFramework 4.6.2 (and higher)
* .NET Standard 2.0 and 2.1
* .NET 6 (and higher)

## Usage

Expand All @@ -149,45 +145,18 @@ using (var client = new SftpClient(connectionInfo))
Establish a SSH connection using user name and password, and reject the connection if the fingerprint of the server does not match the expected fingerprint:

```cs
byte[] expectedFingerPrint = new byte[] {
0x66, 0x31, 0xaf, 0x00, 0x54, 0xb9, 0x87, 0x31,
0xff, 0x58, 0x1c, 0x31, 0xb1, 0xa2, 0x4c, 0x6b
};
string expectedFingerPrint = "LKOy5LvmtEe17S4lyxVXqvs7uPMy+yF79MQpHeCs/Qo";

using (var client = new SshClient("sftp.foo.com", "guest", "pwd"))
{
client.HostKeyReceived += (sender, e) =>
{
if (expectedFingerPrint.Length == e.FingerPrint.Length)
{
for (var i = 0; i < expectedFingerPrint.Length; i++)
{
if (expectedFingerPrint[i] != e.FingerPrint[i])
{
e.CanTrust = false;
break;
}
}
}
else
{
e.CanTrust = false;
}
e.CanTrust = expectedFingerPrint.Equals(e.FingerPrintSHA256);
};
client.Connect();
}
```

## Building SSH.NET

Software | net35 | net40 | netstandard1.3 | netstandard2.0 | sl4 | sl5 | wp71 | wp8 | uap10.0 |
--------------------------------- | :---: | :---: | :------------: | :------------: | :-: | :-: | :--: | :-: | :-----: |
Windows Phone SDK 8.0 | | | | | x | x | x | x |
Visual Studio 2012 Update 5 | x | x | | | x | x | x | x |
Visual Studio 2015 Update 3 | x | x | | | | x | | x | x
Visual Studio 2017 | x | x | x | x | | | | |
Visual Studio 2019 | x | x | x | x | | | | |

## Supporting SSH.NET

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.
12 changes: 6 additions & 6 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
os: Visual Studio 2019
os: Visual Studio 2022

before_build:
- nuget restore src\Renci.SshNet.VS2019.sln
- nuget restore src\Renci.SshNet.sln

build:
project: src\Renci.SshNet.VS2019.sln
project: src\Renci.SshNet.sln
verbosity: minimal

test_script:
- cmd: >-
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net40\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning"

vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net35\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning"
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net462\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration" --blame
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net7.0\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration" --blame
119 changes: 22 additions & 97 deletions build/build.proj
Original file line number Diff line number Diff line change
Expand Up @@ -8,86 +8,41 @@
<MSBuildTasksPackageId>MSBuildTasks</MSBuildTasksPackageId>
<MSBuildTasksPackageVersion>1.5.0.214</MSBuildTasksPackageVersion>
</PropertyGroup>

<ItemGroup>
<VisualStudioVersionClassic Include="2012">
<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2012.sln</SolutionFile>
<ToolsVersion>14.0</ToolsVersion>
<VisualStudioVersion>14.0</VisualStudioVersion>
</VisualStudioVersionClassic>
<VisualStudioVersionClassic Include="2015">
<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2015.sln</SolutionFile>
<ToolsVersion>14.0</ToolsVersion>
<VisualStudioVersion>14.0</VisualStudioVersion>
</VisualStudioVersionClassic>
</ItemGroup>

<ItemGroup>
<VisualStudioVersionModern Include="2019">
<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2019.sln</SolutionFile>
<VisualStudioVersion>16.0</VisualStudioVersion>
</VisualStudioVersionModern>
</ItemGroup>

<ItemGroup>
<TargetFrameworkClassic Include="Windows Phone Silverlight 7.1">
<OutputDirectory>Renci.SshNet.WindowsPhone\bin\$(Configuration)</OutputDirectory>
<Moniker>wp71</Moniker>
</TargetFrameworkClassic>
<TargetFrameworkClassic Include="Windows Phone Silverlight 8.0">
<OutputDirectory>Renci.SshNet.WindowsPhone8\bin\$(Configuration)</OutputDirectory>
<Moniker>wp8</Moniker>
</TargetFrameworkClassic>
<TargetFrameworkClassic Include="Silverlight 4">
<OutputDirectory>Renci.SshNet.Silverlight\bin\$(Configuration)</OutputDirectory>
<Moniker>sl4</Moniker>
</TargetFrameworkClassic>
<TargetFrameworkClassic Include="Silverlight 5">
<OutputDirectory>Renci.SshNet.Silverlight5\bin\$(Configuration)</OutputDirectory>
<Moniker>sl5</Moniker>
</TargetFrameworkClassic>
<TargetFrameworkClassic Include="Universal Windows Platform 10">
<OutputDirectory>Renci.SshNet.UAP10\bin\$(Configuration)</OutputDirectory>
<Moniker>uap10</Moniker>
</TargetFrameworkClassic>
<VisualStudioVersionModern Include="2022">
<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.sln</SolutionFile>
<VisualStudioVersion>17.0</VisualStudioVersion>
</VisualStudioVersionModern>
</ItemGroup>

<ItemGroup>
<TargetFrameworkModern Include=".NET Framework 3.5">
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\net35</OutputDirectory>
<Moniker>net35</Moniker>
</TargetFrameworkModern>
<TargetFrameworkModern Include=".NET Framework 4.0">
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\net40</OutputDirectory>
<Moniker>net40</Moniker>
</TargetFrameworkModern>
<TargetFrameworkModern Include=".NETStandard 1.3">
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\netstandard1.3</OutputDirectory>
<Moniker>netstandard1.3</Moniker>
<TargetFrameworkModern Include=".NET Framework 4.6.2">
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\net462</OutputDirectory>
<Moniker>net462</Moniker>
</TargetFrameworkModern>
<TargetFrameworkModern Include=".NETStandard 2.0">
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\netstandard2.0</OutputDirectory>
<Moniker>netstandard2.0</Moniker>
</TargetFrameworkModern>
<TargetFrameworkModern Include=".NETStandard 2.1">
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\netstandard2.1</OutputDirectory>
<Moniker>netstandard2.1</Moniker>
</TargetFrameworkModern>
<TargetFrameworkModern Include=".NET 6.0">
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\net6.0</OutputDirectory>
<Moniker>net6.0</Moniker>
</TargetFrameworkModern>
<TargetFrameworkModern Include=".NET 7.0">
<OutputDirectory>Renci.SshNet\bin\$(Configuration)\net7.0</OutputDirectory>
<Moniker>net7.0</Moniker>
</TargetFrameworkModern>
</ItemGroup>

<Target Name="CleanClassic" DependsOnTargets="CleanSolutionClassic">
<RemoveDir Directories="$(MSBuildThisFileDirectory)target"/>
</Target>


<Target Name="CleanModern" DependsOnTargets="CleanSolutionModern">
<RemoveDir Directories="$(MSBuildThisFileDirectory)target"/>
</Target>

<Target Name="CleanSolutionClassic" Outputs="%(VisualStudioVersionClassic.Identity)">
<ItemGroup>
<ProjectToBuild Remove="@(ProjectToBuild)"/>
<ProjectToBuild Include="%(VisualStudioVersionClassic.SolutionFile)">
<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersionClassic.VisualStudioVersion)</Properties>
</ProjectToBuild>
</ItemGroup>
<MSBuild Projects="@(ProjectToBuild)" ToolsVersion="%(VisualStudioVersionClassic.ToolsVersion)" Targets="Clean"/>
</Target>

<Target Name="CleanSolutionModern" Outputs="%(VisualStudioVersionModern.Identity)">
<ItemGroup>
Expand All @@ -99,26 +54,11 @@
<MSBuild Projects="@(ProjectToBuild)" Targets="Clean"/>
</Target>

<Target Name="RestoreNuGetPackagesClassic" DependsOnTargets="DownloadNuGet" Outputs="%(VisualStudioVersionClassic.Identity)">
<Message Text="Restoring nuget packages for '%(VisualStudioVersionClassic.SolutionFile)'..." Importance="High"/>
<Exec Command="$(NuGetExe) restore &quot;%(VisualStudioVersionClassic.SolutionFile)&quot;"/>
</Target>

<Target Name="RestoreNuGetPackagesModern" DependsOnTargets="DownloadNuGet" Outputs="%(VisualStudioVersionModern.Identity)">
<Message Text="Restoring nuget packages for '%(VisualStudioVersionModern.SolutionFile)'..." Importance="High"/>
<Exec Command="$(NuGetExe) restore &quot;%(VisualStudioVersionModern.SolutionFile)&quot;"/>
</Target>

<Target Name="BuildClassic" DependsOnTargets="RestoreNuGetPackagesClassic" Outputs="%(VisualStudioVersionClassic.Identity)">
<ItemGroup>
<ProjectToBuild Remove="@(ProjectToBuild)"/>
<ProjectToBuild Include="%(VisualStudioVersionClassic.SolutionFile)">
<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersionClassic.VisualStudioVersion)</Properties>
</ProjectToBuild>
</ItemGroup>
<MSBuild Projects="@(ProjectToBuild)" ToolsVersion="%(VisualStudioVersionClassic.ToolsVersion)" Targets="Rebuild"/>
</Target>


<Target Name="BuildModern" DependsOnTargets="RestoreNuGetPackagesModern" Outputs="%(VisualStudioVersionModern.Identity)">
<ItemGroup>
<ProjectToBuild Remove="@(ProjectToBuild)"/>
Expand All @@ -131,12 +71,7 @@

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

<Target Name="ValidatePackage" DependsOnTargets="ValidatePackageClassic;ValidatePackageModern"/>

<Target Name="ValidatePackageClassic" DependsOnTargets="CheckNuGetPackageDirectory" Outputs="%(TargetFrameworkClassic.Identity)">
<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')"/>
<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')"/>
</Target>
<Target Name="ValidatePackage" DependsOnTargets="ValidatePackageModern"/>

<Target Name="ValidatePackageModern" DependsOnTargets="CheckNuGetPackageDirectory" Outputs="%(TargetFrameworkModern.Identity)">
<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')"/>
Expand All @@ -153,16 +88,6 @@
<Move SourceFiles="$(MSBuildThisFileDirectory)target\help\SshNet.Help.chm" DestinationFiles="$(MSBuildThisFileDirectory)target\SSH.NET-$(ReleaseVersion)-help.chm"/>
</Target>

<Target Name="PreparePackageClassic" DependsOnTargets="BuildClassic;CheckNuGetPackageDirectory;CheckBinaryZipPackageDirectory" Outputs="%(TargetFrameworkClassic.Identity)">
<ItemGroup>
<BuildOutput Remove="@(BuildOutput)"/>
<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFrameworkClassic.OutputDirectory)\Renci.SshNet.dll"/>
<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFrameworkClassic.OutputDirectory)\Renci.SshNet.xml"/>
</ItemGroup>
<Copy SourceFiles="@(BuildOutput)" DestinationFolder="$(NuGetPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)"/>
<Copy SourceFiles="@(BuildOutput)" DestinationFolder="$(BinPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)"/>
</Target>

<Target Name="PreparePackageModern" DependsOnTargets="BuildModern;CheckNuGetPackageDirectory" Outputs="%(TargetFrameworkModern.Identity)">
<ItemGroup>
<BuildOutput Remove="@(BuildOutput)"/>
Expand Down
31 changes: 6 additions & 25 deletions build/nuget/SSH.NET.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<title>SSH.NET</title>
<authors>Renci</authors>
<owners>olegkap,drieseng</owners>
<licenseUrl>https://github.com/sshnet/SSH.NET/blob/master/LICENSE</licenseUrl>
<license type="expression">MIT</license>
<projectUrl>https://github.com/sshnet/SSH.NET/</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>SSH.NET is a Secure Shell (SSH) library for .NET, optimized for parallelism and with broad framework support.</description>
Expand All @@ -16,37 +16,18 @@
<language>en-US</language>
<tags>ssh scp sftp</tags>
<dependencies>
<group targetFramework="net35" />
<group targetFramework="net40" />
<group targetFramework="netstandard1.3">
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
<dependency id="System.Diagnostics.TraceSource" version="4.3.0" />
<dependency id="System.Net.NameResolution" version="4.3.0" />
<dependency id="System.Net.Sockets" version="4.3.0" />
<dependency id="System.Threading.Thread" version="4.3.0" />
<dependency id="System.Threading.ThreadPool" version="4.3.0" />
<dependency id="System.Threading.Timer" version="4.3.0" />
<dependency id="System.Xml.XmlDocument" version="4.3.0" />
<dependency id="System.Xml.XPath.XmlDocument" version="4.3.0" />
</group>
<group targetFramework="net462" />
<group targetFramework="netstandard2.0">
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
</group>
<group targetFramework="sl4">
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
</group>
<group targetFramework="sl5">
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
</group>
<group targetFramework="wp71">
</group>
<group targetFramework="netstandard2.1">
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
</group>
<group targetFramework="wp8">
<group targetFramework="net6.0">
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
</group>
<group targetFramework="uap10.0">
<group targetFramework="net7.0">
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
<dependency id="System.Xml.XPath.XmlDocument" version="4.3.0" />
</group>
</dependencies>
</metadata>
Expand Down
Loading