mirror of
https://github.com/sshnet/SSH.NET.git
synced 2026-09-10 01:05:42 +00:00
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)
This commit is contained in:
committed by
GitHub
parent
ab2ccc40bc
commit
cf8510013d
@@ -116,15 +116,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
|
||||
* .NETFramework 4.6.2 (and higher)
|
||||
* .NET Standard 2.0
|
||||
* Silverlight 4
|
||||
* Silverlight 5
|
||||
* Windows Phone 7.1
|
||||
* Windows Phone 8.0
|
||||
* Universal Windows Platform 10
|
||||
* .NET 6 (and higher)
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -178,16 +172,6 @@ using (var client = new SshClient("sftp.foo.com", "guest", "pwd"))
|
||||
}
|
||||
```
|
||||
|
||||
## 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.
|
||||
|
||||
+6
-6
@@ -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\net35\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning"
|
||||
|
||||
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net472\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&TestCategory!=LongRunning" --blame
|
||||
|
||||
vstest.console /logger:Appveyor src\Renci.SshNet.Tests\bin\Debug\net7.0\Renci.SshNet.Tests.dll /TestCaseFilter:"TestCategory!=integration&TestCategory!=LongRunning" --blame
|
||||
+18
-97
@@ -8,86 +8,37 @@
|
||||
<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 Include="2022">
|
||||
<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.sln</SolutionFile>
|
||||
<VisualStudioVersion>17.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>
|
||||
</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=".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>
|
||||
@@ -99,26 +50,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 "%(VisualStudioVersionClassic.SolutionFile)""/>
|
||||
</Target>
|
||||
|
||||
<Target Name="RestoreNuGetPackagesModern" DependsOnTargets="DownloadNuGet" Outputs="%(VisualStudioVersionModern.Identity)">
|
||||
<Message Text="Restoring nuget packages for '%(VisualStudioVersionModern.SolutionFile)'..." Importance="High"/>
|
||||
<Exec Command="$(NuGetExe) restore "%(VisualStudioVersionModern.SolutionFile)""/>
|
||||
</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)"/>
|
||||
@@ -131,12 +67,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')"/>
|
||||
@@ -153,16 +84,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)"/>
|
||||
|
||||
@@ -16,38 +16,16 @@
|
||||
<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">
|
||||
<group targetFramework="net6.0">
|
||||
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
|
||||
</group>
|
||||
<group targetFramework="sl5">
|
||||
<group targetFramework="net7.0">
|
||||
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
|
||||
</group>
|
||||
<group targetFramework="wp71">
|
||||
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
|
||||
</group>
|
||||
<group targetFramework="wp8">
|
||||
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
|
||||
</group>
|
||||
<group targetFramework="uap10.0">
|
||||
<dependency id="SshNet.Security.Cryptography" version="[1.3.0]" />
|
||||
<dependency id="System.Xml.XPath.XmlDocument" version="4.3.0" />
|
||||
</group>
|
||||
</dependencies>
|
||||
</metadata>
|
||||
</package>
|
||||
@@ -1,21 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||
<PropertyGroup>
|
||||
<!--
|
||||
The configuration and platform will be used to determine which assemblies to include from solution and
|
||||
project documentation sources
|
||||
-->
|
||||
<!-- A target framework version is required by Visual Studio. It can be any version with a targeting pack installed. -->
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<!-- The configuration and platform will be used to determine which assemblies to include from solution and
|
||||
project documentation sources -->
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{f7266fb1-f50a-4a5b-b35a-5ea8ebdc1be9}</ProjectGuid>
|
||||
<SHFBSchemaVersion>2015.6.5.0</SHFBSchemaVersion>
|
||||
<SHFBSchemaVersion>2017.9.26.0</SHFBSchemaVersion>
|
||||
<!-- AssemblyName, Name, and RootNamespace are not used by SHFB but Visual Studio adds them anyway -->
|
||||
<AssemblyName>Documentation</AssemblyName>
|
||||
<RootNamespace>Documentation</RootNamespace>
|
||||
<Name>Documentation</Name>
|
||||
<!-- SHFB properties -->
|
||||
<FrameworkVersion>.NET Framework 4.0</FrameworkVersion>
|
||||
<FrameworkVersion>.NET Framework 4.6.2</FrameworkVersion>
|
||||
<OutputPath>..\target\help</OutputPath>
|
||||
<HtmlHelpName>SshNet.Help</HtmlHelpName>
|
||||
<Language>en-US</Language>
|
||||
@@ -24,25 +25,15 @@
|
||||
<SyntaxFilters>C#</SyntaxFilters>
|
||||
<SdkLinkTarget>Blank</SdkLinkTarget>
|
||||
<RootNamespaceContainer>False</RootNamespaceContainer>
|
||||
<PresentationStyle>VS2010</PresentationStyle>
|
||||
<PresentationStyle>VS2013</PresentationStyle>
|
||||
<Preliminary>False</Preliminary>
|
||||
<NamingMethod>Guid</NamingMethod>
|
||||
<HelpTitle>SSH.NET Client Library Documentation</HelpTitle>
|
||||
<ContentPlacement>AboveNamespaces</ContentPlacement>
|
||||
<ComponentConfigurations>
|
||||
<ComponentConfig id="Code Block Component" enabled="True">
|
||||
<component id="Code Block Component">
|
||||
<basePath value="{@HtmlEncProjectFolder}" />
|
||||
<outputPaths>{@HelpFormatOutputPaths}</outputPaths>
|
||||
<allowMissingSource value="false" />
|
||||
<removeRegionMarkers value="false" />
|
||||
<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" />
|
||||
</component>
|
||||
</ComponentConfig>
|
||||
</ComponentConfigurations>
|
||||
|
||||
<DocumentationSources>
|
||||
<DocumentationSource sourceFile="..\..\src\Renci.SshNet\bin\Release\net40\Renci.SshNet.dll" xmlns="" />
|
||||
<DocumentationSource sourceFile="..\..\src\Renci.SshNet\bin\Release\net40\Renci.SshNet.xml" xmlns="" />
|
||||
<DocumentationSource sourceFile="..\..\src\Renci.SshNet\bin\Release\net462\Renci.SshNet.dll" xmlns="" />
|
||||
<DocumentationSource sourceFile="..\..\src\Renci.SshNet\bin\Release\net462\Renci.SshNet.xml" xmlns="" />
|
||||
</DocumentationSources>
|
||||
<MissingTags>Summary, Parameter, Returns, AutoDocumentCtors, TypeParameter, AutoDocumentDispose</MissingTags>
|
||||
<BuildAssemblerVerbosity>OnlyWarningsAndErrors</BuildAssemblerVerbosity>
|
||||
@@ -54,7 +45,7 @@
|
||||
<CleanIntermediates>True</CleanIntermediates>
|
||||
</PropertyGroup>
|
||||
<!-- There are no properties for these groups. AnyCPU needs to appear in order for Visual Studio to perform
|
||||
the build. The others are optional common platform types that may appear. -->
|
||||
the build. The others are optional common platform types that may appear. -->
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("SSH.NET Silverlight 4")]
|
||||
[assembly: Guid("2b3f6251-8079-48aa-a76b-df70e40092e2")]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="SshNet.Security.Cryptography" version="1.2.0" targetFramework="sl40" />
|
||||
</packages>
|
||||
@@ -1,5 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("SSH.NET Silverlight 5")]
|
||||
[assembly: Guid("2b3f6251-8079-48aa-a76b-df70e40092e2")]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="SshNet.Security.Cryptography" version="1.2.0" targetFramework="sl5" />
|
||||
</packages>
|
||||
+6
-1
@@ -56,8 +56,13 @@ namespace Renci.SshNet.Tests.Classes
|
||||
{
|
||||
_client.KeepAliveInterval = _keepAliveInterval;
|
||||
|
||||
// allow keep-alive to be sent a few times
|
||||
// allow keep-alive to be sent a few times. .NET 7 is faster and
|
||||
// we need to wait less because we want exactly three messages in a session.
|
||||
#if NETFRAMEWORK
|
||||
Thread.Sleep(195);
|
||||
#else
|
||||
Thread.Sleep(180);
|
||||
#endif
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Moq;
|
||||
using Renci.SshNet.Tests.Common;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes
|
||||
{
|
||||
@@ -28,7 +29,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
catch (ArgumentOutOfRangeException ex)
|
||||
{
|
||||
Assert.IsNull(ex.InnerException);
|
||||
Assert.AreEqual(string.Format("Cannot be less than one.{0}Parameter name: {1}", Environment.NewLine, ex.ParamName), ex.Message);
|
||||
ArgumentExceptionAssert.MessageEquals("Cannot be less than one.", ex);
|
||||
Assert.AreEqual("partialSuccessLimit", ex.ParamName);
|
||||
}
|
||||
}
|
||||
@@ -46,7 +47,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
catch (ArgumentOutOfRangeException ex)
|
||||
{
|
||||
Assert.IsNull(ex.InnerException);
|
||||
Assert.AreEqual(string.Format("Cannot be less than one.{0}Parameter name: {1}", Environment.NewLine, ex.ParamName), ex.Message);
|
||||
ArgumentExceptionAssert.MessageEquals("Cannot be less than one.", ex);
|
||||
Assert.AreEqual("partialSuccessLimit", ex.ParamName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Threading;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
#if !FEATURE_THREAD_COUNTDOWNEVENT
|
||||
@@ -111,16 +112,17 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
threads[i].Start();
|
||||
}
|
||||
|
||||
var start = DateTime.Now;
|
||||
var watch = new Stopwatch();
|
||||
watch.Start();
|
||||
var actual = countdownEvent.Wait(timeout);
|
||||
var elapsedTime = DateTime.Now - start;
|
||||
watch.Stop();
|
||||
|
||||
Assert.IsTrue(actual);
|
||||
Assert.AreEqual(expectedSignalCount, signalCount);
|
||||
Assert.IsTrue(countdownEvent.IsSet);
|
||||
Assert.IsTrue(countdownEvent.WaitHandle.WaitOne(0));
|
||||
Assert.IsTrue(elapsedTime >= sleep);
|
||||
Assert.IsTrue(elapsedTime <= sleep.Add(TimeSpan.FromMilliseconds(100)));
|
||||
Assert.IsTrue(watch.Elapsed >= sleep);
|
||||
Assert.IsTrue(watch.Elapsed <= sleep.Add(TimeSpan.FromMilliseconds(100)));
|
||||
|
||||
countdownEvent.Dispose();
|
||||
}
|
||||
@@ -150,16 +152,17 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
threads[i].Start();
|
||||
}
|
||||
|
||||
var start = DateTime.Now;
|
||||
var watch = new Stopwatch();
|
||||
watch.Start();
|
||||
var actual = countdownEvent.Wait(timeout);
|
||||
var elapsedTime = DateTime.Now - start;
|
||||
watch.Stop();
|
||||
|
||||
Assert.IsTrue(actual);
|
||||
Assert.AreEqual(expectedSignalCount, signalCount);
|
||||
Assert.IsTrue(countdownEvent.IsSet);
|
||||
Assert.IsTrue(countdownEvent.WaitHandle.WaitOne(0));
|
||||
Assert.IsTrue(elapsedTime >= sleep);
|
||||
Assert.IsTrue(elapsedTime <= timeout);
|
||||
Assert.IsTrue(watch.Elapsed >= sleep);
|
||||
Assert.IsTrue(watch.Elapsed <= timeout);
|
||||
|
||||
countdownEvent.Dispose();
|
||||
}
|
||||
@@ -189,14 +192,14 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
threads[i].Start();
|
||||
}
|
||||
|
||||
var start = DateTime.Now;
|
||||
var watch = new Stopwatch();
|
||||
watch.Start();
|
||||
var actual = countdownEvent.Wait(timeout);
|
||||
var elapsedTime = DateTime.Now - start;
|
||||
watch.Stop();
|
||||
|
||||
Assert.IsFalse(actual);
|
||||
Assert.IsFalse(countdownEvent.IsSet);
|
||||
Assert.IsFalse(countdownEvent.WaitHandle.WaitOne(0));
|
||||
Assert.IsTrue(elapsedTime >= timeout);
|
||||
|
||||
countdownEvent.Wait(Session.InfiniteTimeSpan);
|
||||
countdownEvent.Dispose();
|
||||
@@ -239,16 +242,17 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
threads[i].Start();
|
||||
}
|
||||
|
||||
var start = DateTime.Now;
|
||||
var watch = new Stopwatch();
|
||||
watch.Start();
|
||||
var actual = countdownEvent.WaitHandle.WaitOne(timeout);
|
||||
var elapsedTime = DateTime.Now - start;
|
||||
watch.Stop();
|
||||
|
||||
Assert.IsTrue(actual);
|
||||
Assert.AreEqual(expectedSignalCount, signalCount);
|
||||
Assert.IsTrue(countdownEvent.IsSet);
|
||||
Assert.IsTrue(countdownEvent.WaitHandle.WaitOne(0));
|
||||
Assert.IsTrue(elapsedTime >= sleep);
|
||||
Assert.IsTrue(elapsedTime <= sleep.Add(TimeSpan.FromMilliseconds(100)));
|
||||
Assert.IsTrue(watch.Elapsed >= sleep);
|
||||
Assert.IsTrue(watch.Elapsed <= sleep.Add(TimeSpan.FromMilliseconds(100)));
|
||||
|
||||
countdownEvent.Dispose();
|
||||
}
|
||||
@@ -278,16 +282,17 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
threads[i].Start();
|
||||
}
|
||||
|
||||
var start = DateTime.Now;
|
||||
var watch = new Stopwatch();
|
||||
watch.Start();
|
||||
var actual = countdownEvent.Wait(timeout);
|
||||
var elapsedTime = DateTime.Now - start;
|
||||
watch.Stop();
|
||||
|
||||
Assert.IsTrue(actual);
|
||||
Assert.AreEqual(expectedSignalCount, signalCount);
|
||||
Assert.IsTrue(countdownEvent.IsSet);
|
||||
Assert.IsTrue(countdownEvent.WaitHandle.WaitOne(0));
|
||||
Assert.IsTrue(elapsedTime >= sleep);
|
||||
Assert.IsTrue(elapsedTime <= timeout);
|
||||
Assert.IsTrue(watch.Elapsed >= sleep);
|
||||
Assert.IsTrue(watch.Elapsed <= timeout);
|
||||
|
||||
countdownEvent.Dispose();
|
||||
}
|
||||
@@ -317,14 +322,14 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
threads[i].Start();
|
||||
}
|
||||
|
||||
var start = DateTime.Now;
|
||||
var watch = new Stopwatch();
|
||||
watch.Start();
|
||||
var actual = countdownEvent.WaitHandle.WaitOne(timeout);
|
||||
var elapsedTime = DateTime.Now - start;
|
||||
watch.Stop();
|
||||
|
||||
Assert.IsFalse(actual);
|
||||
Assert.IsFalse(countdownEvent.IsSet);
|
||||
Assert.IsFalse(countdownEvent.WaitHandle.WaitOne(0));
|
||||
Assert.IsTrue(elapsedTime >= timeout);
|
||||
|
||||
countdownEvent.Wait(Session.InfiniteTimeSpan);
|
||||
countdownEvent.Dispose();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Renci.SshNet.Common;
|
||||
using System;
|
||||
using Renci.SshNet.Tests.Common;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Common
|
||||
{
|
||||
@@ -37,11 +38,9 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
catch (ArgumentOutOfRangeException ex)
|
||||
{
|
||||
Assert.IsNull(ex.InnerException);
|
||||
#if NETFRAMEWORK
|
||||
Assert.AreEqual(string.Format("Cannot be less than zero.{0}Parameter name: {1}", Environment.NewLine, ex.ParamName), ex.Message);
|
||||
#else
|
||||
Assert.AreEqual(string.Format("Cannot be less than zero. (Parameter '{1}')", Environment.NewLine, ex.ParamName), ex.Message);
|
||||
#endif
|
||||
|
||||
ArgumentExceptionAssert.MessageEquals("Cannot be less than zero.", ex);
|
||||
|
||||
Assert.AreEqual("indentLevel", ex.ParamName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,6 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
catch (Exception ex)
|
||||
{
|
||||
_writeException = ex;
|
||||
throw;
|
||||
}
|
||||
});
|
||||
_writehread.Start();
|
||||
|
||||
@@ -88,7 +88,7 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
Assert.AreEqual(0, buffer[2]);
|
||||
Assert.AreEqual(0, buffer[3]);
|
||||
}
|
||||
|
||||
#if NETFRAMEWORK
|
||||
[TestMethod]
|
||||
public void WriteCausesSubsequentReadToBlockUntilRequestedNumberOfBytesAreAvailable()
|
||||
{
|
||||
@@ -104,7 +104,10 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
readThread.Start();
|
||||
|
||||
Assert.IsFalse(readThread.Join(500));
|
||||
|
||||
// Thread Abort method is obsolete: https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/5.0/thread-abort-obsolete
|
||||
readThread.Abort();
|
||||
|
||||
|
||||
Assert.AreEqual(int.MaxValue, bytesRead);
|
||||
Assert.AreEqual(0, buffer[0]);
|
||||
@@ -112,5 +115,6 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
Assert.AreEqual(0, buffer[2]);
|
||||
Assert.AreEqual(0, buffer[3]);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Renci.SshNet.Common;
|
||||
using System;
|
||||
using Renci.SshNet.Tests.Common;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Common
|
||||
{
|
||||
@@ -37,7 +38,7 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
catch (ArgumentException ex)
|
||||
{
|
||||
Assert.IsNull(ex.InnerException);
|
||||
Assert.AreEqual(string.Format("The path is a zero-length string.{0}Parameter name: {1}", Environment.NewLine, ex.ParamName), ex.Message);
|
||||
ArgumentExceptionAssert.MessageEquals("The path is a zero-length string.", ex);
|
||||
Assert.AreEqual("path", ex.ParamName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Threading;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Renci.SshNet.Common;
|
||||
@@ -58,12 +59,13 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
const int initialCount = 2;
|
||||
var target = new SemaphoreLight(initialCount);
|
||||
|
||||
var start = DateTime.Now;
|
||||
var watch = new Stopwatch();
|
||||
watch.Start();
|
||||
|
||||
target.Wait();
|
||||
target.Wait();
|
||||
|
||||
Assert.IsTrue((DateTime.Now - start).TotalMilliseconds < 50);
|
||||
|
||||
Assert.IsTrue(watch.ElapsedMilliseconds < 50);
|
||||
|
||||
var releaseThread = new Thread(
|
||||
() =>
|
||||
@@ -75,11 +77,10 @@ namespace Renci.SshNet.Tests.Classes.Common
|
||||
|
||||
target.Wait();
|
||||
|
||||
var end = DateTime.Now;
|
||||
var elapsed = end - start;
|
||||
watch.Stop();
|
||||
|
||||
Assert.IsTrue(elapsed.TotalMilliseconds > 200);
|
||||
Assert.IsTrue(elapsed.TotalMilliseconds < 250);
|
||||
Assert.IsTrue(watch.ElapsedMilliseconds > 200);
|
||||
Assert.IsTrue(watch.ElapsedMilliseconds < 250);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected virtual void SetupMocks()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
protected sealed override void Arrange()
|
||||
{
|
||||
CreateMocks();
|
||||
|
||||
+4
@@ -5,6 +5,7 @@ using Renci.SshNet.Tests.Common;
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -76,6 +77,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -88,6 +89,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected override void Act()
|
||||
{
|
||||
_actual = Connector.Connect(_connectionInfo);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -88,6 +89,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected override void Act()
|
||||
{
|
||||
_actual = Connector.Connect(_connectionInfo);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(400);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -81,6 +82,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -92,6 +93,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected override void Act()
|
||||
{
|
||||
_actual = Connector.Connect(_connectionInfo);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -92,6 +93,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected override void Act()
|
||||
{
|
||||
_actual = Connector.Connect(_connectionInfo);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -90,6 +91,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected override void Act()
|
||||
{
|
||||
_actual = Connector.Connect(_connectionInfo);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -81,6 +82,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -89,6 +90,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected override void Act()
|
||||
{
|
||||
_actual = Connector.Connect(_connectionInfo);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -85,6 +86,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected override void Act()
|
||||
{
|
||||
_actual = Connector.Connect(_connectionInfo);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -90,6 +91,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected override void Act()
|
||||
{
|
||||
_actual = Connector.Connect(_connectionInfo);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -10,6 +10,7 @@ using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -113,6 +114,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_stopWatch.Stop();
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -89,6 +90,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_stopWatch.Stop();
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -6,6 +6,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -79,6 +80,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -83,6 +84,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -84,6 +85,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -76,6 +77,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected void Act()
|
||||
{
|
||||
_actual = _protocolVersionExchange.Start(_clientVersion, _client, _timeout);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -76,6 +77,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected void Act()
|
||||
{
|
||||
_actual = _protocolVersionExchange.Start(_clientVersion, _client, _timeout);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -76,6 +77,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected void Act()
|
||||
{
|
||||
_actual = _protocolVersionExchange.Start(_clientVersion, _client, _timeout);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -81,6 +82,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using Renci.SshNet.Connection;
|
||||
using Renci.SshNet.Tests.Common;
|
||||
using System.Net;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -32,7 +33,7 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
SetupData();
|
||||
SetupMocks();
|
||||
}
|
||||
|
||||
|
||||
protected ConnectionInfo CreateConnectionInfo(string proxyUser, string proxyPassword)
|
||||
{
|
||||
return new ConnectionInfo(IPAddress.Loopback.ToString(),
|
||||
|
||||
+4
@@ -6,6 +6,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -81,6 +82,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -92,6 +93,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected override void Act()
|
||||
{
|
||||
_actual = Connector.Connect(_connectionInfo);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -93,6 +94,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_stopWatch.Stop();
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -89,6 +90,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_stopWatch.Stop();
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -81,6 +82,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_stopWatch.Stop();
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
@@ -4,6 +4,7 @@ using Renci.SshNet.Tests.Common;
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -122,6 +123,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected override void Act()
|
||||
{
|
||||
_actual = Connector.Connect(_connectionInfo);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -5,6 +5,7 @@ using Renci.SshNet.Tests.Common;
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -70,6 +71,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -97,6 +98,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -123,6 +124,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
protected override void Act()
|
||||
{
|
||||
_actual = Connector.Connect(_connectionInfo);
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -84,6 +85,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
+4
@@ -7,6 +7,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
@@ -84,6 +85,9 @@ namespace Renci.SshNet.Tests.Classes.Connection
|
||||
{
|
||||
_actualException = ex;
|
||||
}
|
||||
|
||||
// Give some time to process all messages
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
@@ -86,7 +86,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
catch (ArgumentOutOfRangeException ex)
|
||||
{
|
||||
Assert.IsNull(ex.InnerException);
|
||||
Assert.AreEqual("The timeout must represent a value between -1 and Int32.MaxValue, inclusive." + Environment.NewLine + "Parameter name: " + ex.ParamName, ex.Message);
|
||||
ArgumentExceptionAssert.MessageEquals("The timeout must represent a value between -1 and Int32.MaxValue, inclusive.", ex);
|
||||
Assert.AreEqual("value", ex.ParamName);
|
||||
}
|
||||
}
|
||||
@@ -105,7 +105,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
catch (ArgumentOutOfRangeException ex)
|
||||
{
|
||||
Assert.IsNull(ex.InnerException);
|
||||
Assert.AreEqual("The timeout must represent a value between -1 and Int32.MaxValue, inclusive." + Environment.NewLine + "Parameter name: " + ex.ParamName, ex.Message);
|
||||
ArgumentExceptionAssert.MessageEquals("The timeout must represent a value between -1 and Int32.MaxValue, inclusive.", ex);
|
||||
Assert.AreEqual("value", ex.ParamName);
|
||||
}
|
||||
}
|
||||
|
||||
-8
@@ -54,11 +54,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
.Setup(p => p.SendExecRequest(string.Format("scp -prf {0}", _transformedPath)))
|
||||
.Returns(false);
|
||||
_channelSessionMock.InSequence(sequence).Setup(p => p.Dispose());
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().InSequence(sequence).Setup(p => p.Dispose());
|
||||
#else
|
||||
_pipeStreamMock.InSequence(sequence).Setup(p => p.Close());
|
||||
#endif
|
||||
}
|
||||
|
||||
protected override void Arrange()
|
||||
@@ -106,11 +102,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
[TestMethod]
|
||||
public void DisposeOnPipeStreamShouldBeInvokedOnce()
|
||||
{
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().Verify(p => p.Dispose(), Times.Once);
|
||||
#else
|
||||
_pipeStreamMock.Verify(p => p.Close(), Times.Once);
|
||||
#endif
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
-8
@@ -53,11 +53,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
_channelSessionMock.InSequence(sequence)
|
||||
.Setup(p => p.SendExecRequest(string.Format("scp -pf {0}", _transformedPath))).Returns(false);
|
||||
_channelSessionMock.InSequence(sequence).Setup(p => p.Dispose());
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().InSequence(sequence).Setup(p => p.Dispose());
|
||||
#else
|
||||
_pipeStreamMock.InSequence(sequence).Setup(p => p.Close());
|
||||
#endif
|
||||
}
|
||||
|
||||
protected override void Arrange()
|
||||
@@ -105,11 +101,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
[TestMethod]
|
||||
public void DisposeOnPipeStreamShouldBeInvokedOnce()
|
||||
{
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().Verify(p => p.Dispose(), Times.Once);
|
||||
#else
|
||||
_pipeStreamMock.Verify(p => p.Close(), Times.Once);
|
||||
#endif
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
-8
@@ -54,11 +54,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
.Setup(p => p.SendExecRequest(string.Format("scp -f {0}", _transformedPath)))
|
||||
.Returns(false);
|
||||
_channelSessionMock.InSequence(sequence).Setup(p => p.Dispose());
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().InSequence(sequence).Setup(p => p.Dispose());
|
||||
#else
|
||||
_pipeStreamMock.InSequence(sequence).Setup(p => p.Close());
|
||||
#endif
|
||||
}
|
||||
|
||||
protected override void Arrange()
|
||||
@@ -116,11 +112,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
[TestMethod]
|
||||
public void DisposeOnPipeStreamShouldBeInvokedOnce()
|
||||
{
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().Verify(p => p.Dispose(), Times.Once);
|
||||
#else
|
||||
_pipeStreamMock.Verify(p => p.Close(), Times.Once);
|
||||
#endif
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
-8
@@ -53,11 +53,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
.Setup(p => p.SendExecRequest(string.Format("scp -r -p -d -t {0}", _transformedPath)))
|
||||
.Returns(false);
|
||||
_channelSessionMock.InSequence(sequence).Setup(p => p.Dispose());
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().InSequence(sequence).Setup(p => p.Dispose());
|
||||
#else
|
||||
_pipeStreamMock.InSequence(sequence).Setup(p => p.Close());
|
||||
#endif
|
||||
}
|
||||
|
||||
protected override void Arrange()
|
||||
@@ -105,11 +101,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
[TestMethod]
|
||||
public void DisposeOnPipeStreamShouldBeInvokedOnce()
|
||||
{
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().Verify(p => p.Dispose(), Times.Once);
|
||||
#else
|
||||
_pipeStreamMock.Verify(p => p.Close(), Times.Once);
|
||||
#endif
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
-8
@@ -59,11 +59,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
.Setup(p => p.SendExecRequest(string.Format("scp -t -d {0}", _transformedPath)))
|
||||
.Returns(false);
|
||||
_channelSessionMock.InSequence(sequence).Setup(p => p.Dispose());
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().InSequence(sequence).Setup(p => p.Dispose());
|
||||
#else
|
||||
_pipeStreamMock.InSequence(sequence).Setup(p => p.Close());
|
||||
#endif
|
||||
}
|
||||
|
||||
protected override void Arrange()
|
||||
@@ -122,11 +118,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
[TestMethod]
|
||||
public void DisposeOnPipeStreamShouldBeInvokedOnce()
|
||||
{
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().Verify(p => p.Dispose(), Times.Once);
|
||||
#else
|
||||
_pipeStreamMock.Verify(p => p.Close(), Times.Once);
|
||||
#endif
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
@@ -84,11 +84,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
p => p.SendData(It.Is<byte[]>(b => b.SequenceEqual(new byte[] {0}))));
|
||||
_pipeStreamMock.InSequence(sequence).Setup(p => p.ReadByte()).Returns(0);
|
||||
_channelSessionMock.InSequence(sequence).Setup(p => p.Dispose());
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().InSequence(sequence).Setup(p => p.Dispose());
|
||||
#else
|
||||
_pipeStreamMock.InSequence(sequence).Setup(p => p.Close());
|
||||
#endif
|
||||
}
|
||||
|
||||
protected override void Arrange()
|
||||
@@ -134,11 +130,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
[TestMethod]
|
||||
public void DisposeOnPipeStreamShouldBeInvokedOnce()
|
||||
{
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().Verify(p => p.Dispose(), Times.Once);
|
||||
#else
|
||||
_pipeStreamMock.Verify(p => p.Close(), Times.Once);
|
||||
#endif
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
-8
@@ -57,11 +57,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
.Setup(p => p.SendExecRequest(string.Format("scp -t -d {0}", _transformedPath)))
|
||||
.Returns(false);
|
||||
_channelSessionMock.InSequence(sequence).Setup(p => p.Dispose());
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().InSequence(sequence).Setup(p => p.Dispose());
|
||||
#else
|
||||
_pipeStreamMock.InSequence(sequence).Setup(p => p.Close());
|
||||
#endif
|
||||
}
|
||||
|
||||
protected override void Arrange()
|
||||
@@ -119,11 +115,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
[TestMethod]
|
||||
public void DisposeOnPipeStreamShouldBeInvokedOnce()
|
||||
{
|
||||
#if NET35
|
||||
_pipeStreamMock.As<IDisposable>().Verify(p => p.Dispose(), Times.Once);
|
||||
#else
|
||||
_pipeStreamMock.Verify(p => p.Close(), Times.Once);
|
||||
#endif
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
ServerSocket.Close();
|
||||
|
||||
// give session some time to react to connection reset
|
||||
Thread.Sleep(200);
|
||||
Thread.Sleep(300);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
||||
@@ -94,11 +94,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
catch (ArgumentOutOfRangeException ex)
|
||||
{
|
||||
Assert.IsNull(ex.InnerException);
|
||||
#if NETFRAMEWORK
|
||||
Assert.AreEqual("The timeout must represent a value between -1 and Int32.MaxValue, inclusive." + Environment.NewLine + "Parameter name: " + ex.ParamName, ex.Message);
|
||||
#else
|
||||
Assert.AreEqual("The timeout must represent a value between -1 and Int32.MaxValue, inclusive. (Parameter '" + ex.ParamName + "')", ex.Message);
|
||||
#endif
|
||||
ArgumentExceptionAssert.MessageEquals("The timeout must represent a value between -1 and Int32.MaxValue, inclusive.", ex);
|
||||
Assert.AreEqual("value", ex.ParamName);
|
||||
}
|
||||
}
|
||||
@@ -117,11 +113,7 @@ namespace Renci.SshNet.Tests.Classes
|
||||
catch (ArgumentOutOfRangeException ex)
|
||||
{
|
||||
Assert.IsNull(ex.InnerException);
|
||||
#if NETFRAMEWORK
|
||||
Assert.AreEqual("The timeout must represent a value between -1 and Int32.MaxValue, inclusive." + Environment.NewLine + "Parameter name: " + ex.ParamName, ex.Message);
|
||||
#else
|
||||
Assert.AreEqual("The timeout must represent a value between -1 and Int32.MaxValue, inclusive. (Parameter '" + ex.ParamName + "')", ex.Message);
|
||||
#endif
|
||||
ArgumentExceptionAssert.MessageEquals("The timeout must represent a value between -1 and Int32.MaxValue, inclusive.", ex);
|
||||
Assert.AreEqual("value", ex.ParamName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
namespace Renci.SshNet.Tests.Common
|
||||
{
|
||||
public static class ArgumentExceptionAssert
|
||||
{
|
||||
public static void MessageEquals(string expected, ArgumentException exception)
|
||||
{
|
||||
var newMessage = new ArgumentException(expected, exception.ParamName);
|
||||
|
||||
Assert.AreEqual(newMessage.Message, exception.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -107,12 +107,24 @@ namespace Renci.SshNet.Tests.Common
|
||||
|
||||
private void StartListener(object state)
|
||||
{
|
||||
var listener = (Socket)state;
|
||||
while (_started)
|
||||
try
|
||||
{
|
||||
_acceptCallbackDone.Reset();
|
||||
listener.BeginAccept(AcceptCallback, listener);
|
||||
_acceptCallbackDone.WaitOne();
|
||||
var listener = (Socket)state;
|
||||
while (_started)
|
||||
{
|
||||
_acceptCallbackDone.Reset();
|
||||
listener.BeginAccept(AcceptCallback, listener);
|
||||
_acceptCallbackDone.WaitOne();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// On .NET framework when Thread throws an exception then unit tests
|
||||
// were executed without any problem.
|
||||
// On new .NET exceptions from Thread breaks unit tests session.
|
||||
Console.Error.WriteLine("[{0}] Failure in StartListener: {1}",
|
||||
typeof(AsyncSocketListener).FullName,
|
||||
ex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,21 +143,38 @@ namespace Renci.SshNet.Tests.Common
|
||||
{
|
||||
handler = listener.EndAccept(ar);
|
||||
}
|
||||
catch (ObjectDisposedException ex)
|
||||
catch (SocketException ex)
|
||||
{
|
||||
// The listener is stopped through a Dispose() call, which in turn causes
|
||||
// Socket.EndAccept(IAsyncResult) to throw an ObjectDisposedException
|
||||
// Socket.EndAccept(...) to throw a SocketException or
|
||||
// ObjectDisposedException
|
||||
//
|
||||
// Since we consider this ObjectDisposedException normal when the listener
|
||||
// is being stopped, we only write a message to stderr if the listener
|
||||
// is considered to be up and running
|
||||
// Since we consider such an exception normal when the listener is being
|
||||
// stopped, we only write a message to stderr if the listener is considered
|
||||
// to be up and running
|
||||
if (_started)
|
||||
{
|
||||
Console.Error.WriteLine("[{0}] Failure accepting new connection: {1}",
|
||||
typeof(AsyncSocketListener).FullName,
|
||||
ex);
|
||||
typeof(AsyncSocketListener).FullName,
|
||||
ex);
|
||||
}
|
||||
return;
|
||||
}
|
||||
catch (ObjectDisposedException ex)
|
||||
{
|
||||
// The listener is stopped through a Dispose() call, which in turn causes
|
||||
// Socket.EndAccept(IAsyncResult) to throw a SocketException or
|
||||
// ObjectDisposedException
|
||||
//
|
||||
// Since we consider such an exception normal when the listener is being
|
||||
// stopped, we only write a message to stderr if the listener is considered
|
||||
// to be up and running
|
||||
if (_started)
|
||||
{
|
||||
Console.Error.WriteLine("[{0}] Failure accepting new connection: {1}",
|
||||
typeof(AsyncSocketListener).FullName,
|
||||
ex);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -164,14 +193,31 @@ namespace Renci.SshNet.Tests.Common
|
||||
{
|
||||
handler.BeginReceive(state.Buffer, 0, state.Buffer.Length, 0, ReadCallback, state);
|
||||
}
|
||||
catch (SocketException ex)
|
||||
{
|
||||
// The listener is stopped through a Dispose() call, which in turn causes
|
||||
// Socket.BeginReceive(...) to throw a SocketException or
|
||||
// ObjectDisposedException
|
||||
//
|
||||
// Since we consider such an exception normal when the listener is being
|
||||
// stopped, we only write a message to stderr if the listener is considered
|
||||
// to be up and running
|
||||
if (_started)
|
||||
{
|
||||
Console.Error.WriteLine("[{0}] Failure receiving new data: {1}",
|
||||
typeof(AsyncSocketListener).FullName,
|
||||
ex);
|
||||
}
|
||||
}
|
||||
catch (ObjectDisposedException ex)
|
||||
{
|
||||
// The listener is stopped through a Dispose() call, which in turn causes
|
||||
// Socket.BeginReceive(...) to throw an ObjectDisposedException
|
||||
// Socket.BeginReceive(...) to throw a SocketException or
|
||||
// ObjectDisposedException
|
||||
//
|
||||
// Since we consider this ObjectDisposedException normal when the listener
|
||||
// is being stopped, we only write a message to stderr if the listener
|
||||
// is considered to be up and running
|
||||
// Since we consider such an exception normal when the listener is being
|
||||
// stopped, we only write a message to stderr if the listener is considered
|
||||
// to be up and running
|
||||
if (_started)
|
||||
{
|
||||
Console.Error.WriteLine("[{0}] Failure receiving new data: {1}",
|
||||
@@ -192,7 +238,11 @@ namespace Renci.SshNet.Tests.Common
|
||||
try
|
||||
{
|
||||
// Read data from the client socket.
|
||||
bytesRead = handler.EndReceive(ar);
|
||||
bytesRead = handler.EndReceive(ar, out var errorCode);
|
||||
if (errorCode != SocketError.Success)
|
||||
{
|
||||
bytesRead = 0;
|
||||
}
|
||||
}
|
||||
catch (SocketException ex)
|
||||
{
|
||||
@@ -229,6 +279,43 @@ namespace Renci.SshNet.Tests.Common
|
||||
return;
|
||||
}
|
||||
|
||||
void ConnectionDisconnected()
|
||||
{
|
||||
SignalDisconnected(handler);
|
||||
|
||||
if (ShutdownRemoteCommunicationSocket)
|
||||
{
|
||||
lock (_syncLock)
|
||||
{
|
||||
if (!_started)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
handler.Shutdown(SocketShutdown.Send);
|
||||
handler.Close();
|
||||
}
|
||||
catch (SocketException ex) when (ex.SocketErrorCode == SocketError.ConnectionReset)
|
||||
{
|
||||
// On .NET 7 we got Socker Exception with ConnectionReset from Shutdown method
|
||||
// when the socket is disposed
|
||||
}
|
||||
catch (SocketException ex)
|
||||
{
|
||||
throw new Exception("Exception in ReadCallback: " + ex.SocketErrorCode + " " + _stackTrace, ex);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception("Exception in ReadCallback: " + _stackTrace, ex);
|
||||
}
|
||||
|
||||
_connectedClients.Remove(handler);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bytesRead > 0)
|
||||
{
|
||||
var bytesReceived = new byte[bytesRead];
|
||||
@@ -239,6 +326,11 @@ namespace Renci.SshNet.Tests.Common
|
||||
{
|
||||
handler.BeginReceive(state.Buffer, 0, state.Buffer.Length, 0, ReadCallback, state);
|
||||
}
|
||||
catch (ObjectDisposedException)
|
||||
{
|
||||
// TODO On .NET 7, sometimes we get ObjectDisposedException when _started but only on appveyor, locally it works
|
||||
ConnectionDisconnected();
|
||||
}
|
||||
catch (SocketException ex)
|
||||
{
|
||||
if (!_started)
|
||||
@@ -252,33 +344,7 @@ namespace Renci.SshNet.Tests.Common
|
||||
}
|
||||
else
|
||||
{
|
||||
SignalDisconnected(handler);
|
||||
|
||||
if (ShutdownRemoteCommunicationSocket)
|
||||
{
|
||||
lock (_syncLock)
|
||||
{
|
||||
if (!_started)
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
handler.Shutdown(SocketShutdown.Send);
|
||||
handler.Close();
|
||||
}
|
||||
catch (SocketException ex)
|
||||
{
|
||||
throw new Exception("Exception in ReadCallback: " + ex.SocketErrorCode + " " + _stackTrace, ex);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception("Exception in ReadCallback: " + _stackTrace, ex);
|
||||
}
|
||||
|
||||
_connectedClients.Remove(handler);
|
||||
}
|
||||
}
|
||||
ConnectionDisconnected();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,44 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<AssemblyOriginatorKeyFile>..\Renci.SshNet.snk</AssemblyOriginatorKeyFile>
|
||||
<TargetFrameworks>net462;net6.0;net7.0</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '15.0' ">
|
||||
<TargetFrameworks>net35;net472;netcoreapp2.1</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '16.0' ">
|
||||
<TargetFrameworks>net35;net472;netcoreapp3.1;net5.0</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '17.0' ">
|
||||
<TargetFrameworks>net472;netcoreapp3.1;net5.0;net6.0</TargetFrameworks>
|
||||
<PropertyGroup>
|
||||
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL;FEATURE_TAP</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net35' ">
|
||||
<DefineConstants></DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net40' ">
|
||||
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net472' ">
|
||||
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL;FEATURE_TAP</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.1' ">
|
||||
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL;FEATURE_TAP</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.2' ">
|
||||
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL;FEATURE_TAP</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp3.1' ">
|
||||
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL;FEATURE_TAP</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net5.0' ">
|
||||
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL;FEATURE_TAP</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net6.0' ">
|
||||
<DefineConstants>FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_TPL;FEATURE_TAP</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Data\Key.ECDSA.Encrypted.txt" />
|
||||
<EmbeddedResource Include="Data\Key.ECDSA.txt" />
|
||||
@@ -73,18 +44,6 @@
|
||||
<None Include="..\Renci.SshNet.snk" Link="Renci.SshNet.snk" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '15.0' ">
|
||||
<!-- Look for Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll in VS 2017 Enterprise -->
|
||||
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
|
||||
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
|
||||
<!-- Fall back to VS 2017 Professional -->
|
||||
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
|
||||
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
|
||||
<!-- Fall back to VS 2017 Community -->
|
||||
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2017\Community\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
|
||||
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '16.0' ">
|
||||
<!-- Look for Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll in VS 2019 Enterprise -->
|
||||
<MSTestV1UnitTestFrameworkAssemblyCandidate>$(MSBuildProgramFiles32)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</MSTestV1UnitTestFrameworkAssemblyCandidate>
|
||||
@@ -100,17 +59,12 @@
|
||||
<MSTestV1UnitTestFrameworkAssembly Condition="'$(MSTestV1UnitTestFrameworkAssembly)' == '' and Exists('$(MSTestV1UnitTestFrameworkAssemblyCandidate)')">$(MSTestV1UnitTestFrameworkAssemblyCandidate)</MSTestV1UnitTestFrameworkAssembly>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="'$(TargetFramework)' == 'net35'">
|
||||
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework">
|
||||
<HintPath>$(MSTestV1UnitTestFrameworkAssembly)</HintPath>
|
||||
</Reference>
|
||||
<PackageReference Include="Moq" Version="4.2.1409.1722" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(TargetFramework)' != 'net35'">
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
|
||||
<PackageReference Include="Moq" Version="4.16.1" />
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
|
||||
<PackageReference Include="Moq" Version="4.18.4" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Renci.SshNet\Renci.SshNet.csproj" />
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
[assembly: AssemblyTitle("SSH.NET UAP 10.0")]
|
||||
[assembly: InternalsVisibleTo("Renci.SshNet.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f9194e1eb66b7e2575aaee115ee1d27bc100920e7150e43992d6f668f9737de8b9c7ae892b62b8a36dd1d57929ff1541665d101dc476d6e02390846efae7e5186eec409710fdb596e3f83740afef0d4443055937649bc5a773175b61c57615dac0f0fd10f52b52fedf76c17474cc567b3f7a79de95dde842509fb39aaf69c6c2")]
|
||||
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
|
||||
|
||||
// https://github.com/dotnet/corefx/issues/7274
|
||||
//[assembly: Guid("4EE4F2DC-208D-42B2-B286-5E5DEC1DD766")]
|
||||
@@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This file contains Runtime Directives, specifications about types your application accesses
|
||||
through reflection and other dynamic code patterns. Runtime Directives are used to control the
|
||||
.NET Native optimizer and ensure that it does not remove code accessed by your library. If your
|
||||
library does not do any reflection, then you generally do not need to edit this file. However,
|
||||
if your library reflects over types, especially types passed to it or derived from its types,
|
||||
then you should write Runtime Directives.
|
||||
|
||||
The most common use of reflection in libraries is to discover information about types passed
|
||||
to the library. Runtime Directives have three ways to express requirements on types passed to
|
||||
your library.
|
||||
|
||||
1. Parameter, GenericParameter, TypeParameter, TypeEnumerableParameter
|
||||
Use these directives to reflect over types passed as a parameter.
|
||||
|
||||
2. SubTypes
|
||||
Use a SubTypes directive to reflect over types derived from another type.
|
||||
|
||||
3. AttributeImplies
|
||||
Use an AttributeImplies directive to indicate that your library needs to reflect over
|
||||
types or methods decorated with an attribute.
|
||||
|
||||
For more information on writing Runtime Directives for libraries, please visit
|
||||
http://go.microsoft.com/fwlink/?LinkID=391919
|
||||
-->
|
||||
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
|
||||
<Library Name="Renci.SshNet.UAP10">
|
||||
|
||||
<!-- add directives for your library here -->
|
||||
|
||||
</Library>
|
||||
</Directives>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.UniversalWindowsPlatform": "5.2.0",
|
||||
"SshNet.Security.Cryptography": "1.2.0",
|
||||
"System.Xml.XPath.XmlDocument": "4.0.1"
|
||||
},
|
||||
"frameworks": {
|
||||
"uap10.0": {}
|
||||
},
|
||||
"runtimes": {
|
||||
"win10-arm": {},
|
||||
"win10-arm-aot": {},
|
||||
"win10-x86": {},
|
||||
"win10-x86-aot": {},
|
||||
"win10-x64": {},
|
||||
"win10-x64-aot": {}
|
||||
}
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2012
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet.Silverlight", "Renci.SshNet.Silverlight\Renci.SshNet.Silverlight.csproj", "{77C294BB-1DC2-49DC-BE16-963F8F22794D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet.WindowsPhone", "Renci.SshNet.WindowsPhone\Renci.SshNet.WindowsPhone.csproj", "{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet.Silverlight5", "Renci.SshNet.Silverlight5\Renci.SshNet.Silverlight5.csproj", "{E367F791-C1EC-4181-912A-2943CAC6B3BC}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet.WindowsPhone8", "Renci.SshNet.WindowsPhone8\Renci.SshNet.WindowsPhone8.csproj", "{4A6CA785-1C8A-47FE-98C0-30C675A9328B}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\build\build.proj = ..\build\build.proj
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "nuget", "nuget", "{94EE3919-19FA-4D9B-8DA9-249050B15232}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\build\nuget\SSH.NET.nuspec = ..\build\nuget\SSH.NET.nuspec
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sandcastle", "sandcastle", "{A6C3FFD3-16A5-44D3-8C1F-3613D6DD17D1}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\build\sandcastle\SSH.NET.shfbproj = ..\build\sandcastle\SSH.NET.shfbproj
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(TestCaseManagementSettings) = postSolution
|
||||
CategoryFile = Renci.SshNet1.vsmdi
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|ARM = Release|ARM
|
||||
Release|Mixed Platforms = Release|Mixed Platforms
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{77C294BB-1DC2-49DC-BE16-963F8F22794D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{3AD3EDF0-702E-4A91-8735-DCE4659AA54C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{94EE3919-19FA-4D9B-8DA9-249050B15232} = {2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}
|
||||
{A6C3FFD3-16A5-44D3-8C1F-3613D6DD17D1} = {2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,130 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.25420.1
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\build\build.proj = ..\build\build.proj
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "nuget", "nuget", "{94EE3919-19FA-4D9B-8DA9-249050B15232}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\build\nuget\SSH.NET.nuspec = ..\build\nuget\SSH.NET.nuspec
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sandcastle", "sandcastle", "{A6C3FFD3-16A5-44D3-8C1F-3613D6DD17D1}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\build\sandcastle\SSH.NET.shfbproj = ..\build\sandcastle\SSH.NET.shfbproj
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet.Silverlight5", "Renci.SshNet.Silverlight5\Renci.SshNet.Silverlight5.csproj", "{E367F791-C1EC-4181-912A-2943CAC6B3BC}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet.WindowsPhone8", "Renci.SshNet.WindowsPhone8\Renci.SshNet.WindowsPhone8.csproj", "{4A6CA785-1C8A-47FE-98C0-30C675A9328B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet.UAP10", "Renci.SshNet.UAP10\Renci.SshNet.UAP10.csproj", "{EC212E04-A372-4B95-B45B-C0D4A739EF80}"
|
||||
EndProject
|
||||
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Renci.SshNet.Shared.Tests", "..\test\Renci.SshNet.Shared.Tests\Renci.SshNet.Shared.Tests.shproj", "{FAE3948F-A438-458E-8E0E-7F6E39A5DD8A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Renci.SshNet.WindowsPhone8.Tests", "..\test\Renci.SshNet.WindowsPhone8.Tests\Renci.SshNet.WindowsPhone8.Tests.csproj", "{26F0D644-B3EF-47DF-8040-E9E4B2E63884}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
||||
..\test\Renci.SshNet.Shared.Tests\Renci.SshNet.Shared.Tests.projitems*{26f0d644-b3ef-47df-8040-e9e4b2e63884}*SharedItemsImports = 4
|
||||
..\test\Renci.SshNet.Shared.Tests\Renci.SshNet.Shared.Tests.projitems*{fae3948f-a438-458e-8e0e-7f6e39a5dd8a}*SharedItemsImports = 13
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|ARM = Release|ARM
|
||||
Release|Mixed Platforms = Release|Mixed Platforms
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{E367F791-C1EC-4181-912A-2943CAC6B3BC}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{4A6CA785-1C8A-47FE-98C0-30C675A9328B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Debug|x64.Build.0 = Debug|x64
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Debug|x86.Build.0 = Debug|x86
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Release|ARM.Build.0 = Release|ARM
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Release|x64.ActiveCfg = Release|x64
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Release|x64.Build.0 = Release|x64
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Release|x86.ActiveCfg = Release|x86
|
||||
{EC212E04-A372-4B95-B45B-C0D4A739EF80}.Release|x86.Build.0 = Release|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Debug|Mixed Platforms.Deploy.0 = Debug|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Debug|x64.ActiveCfg = Debug|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Debug|x86.Build.0 = Debug|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Debug|x86.Deploy.0 = Debug|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|ARM.Build.0 = Release|ARM
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|ARM.Deploy.0 = Release|ARM
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|Mixed Platforms.Deploy.0 = Release|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|x64.ActiveCfg = Release|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|x86.ActiveCfg = Release|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|x86.Build.0 = Release|x86
|
||||
{26F0D644-B3EF-47DF-8040-E9E4B2E63884}.Release|x86.Deploy.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{94EE3919-19FA-4D9B-8DA9-249050B15232} = {2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}
|
||||
{A6C3FFD3-16A5-44D3-8C1F-3613D6DD17D1} = {2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}
|
||||
EndGlobalSection
|
||||
GlobalSection(TestCaseManagementSettings) = postSolution
|
||||
CategoryFile = Renci.SshNet1.vsmdi
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,22 +0,0 @@
|
||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=AutoPropertyCanBeMadeGetOnly_002ELocal/@EntryIndexedValue">DO_NOT_SHOW</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertIfStatementToConditionalTernaryExpression/@EntryIndexedValue">DO_NOT_SHOW</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertIfStatementToNullCoalescingExpression/@EntryIndexedValue">DO_NOT_SHOW</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertPropertyToExpressionBody/@EntryIndexedValue">DO_NOT_SHOW</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToAutoProperty/@EntryIndexedValue">DO_NOT_SHOW</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MemberCanBeMadeStatic_002ELocal/@EntryIndexedValue">SUGGESTION</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedParameter_002ELocal/@EntryIndexedValue">WARNING</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseNameofExpression/@EntryIndexedValue">DO_NOT_SHOW</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseNullPropagation/@EntryIndexedValue">DO_NOT_SHOW</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseStringInterpolation/@EntryIndexedValue">DO_NOT_SHOW</s:String>
|
||||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ALIGN_MULTILINE_ARGUMENT/@EntryValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ALIGN_MULTILINE_CALLS_CHAIN/@EntryValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ALIGN_MULTILINE_PARAMETER/@EntryValue">True</s:Boolean>
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/INITIALIZER_BRACES/@EntryValue">NEXT_LINE_SHIFTED_2</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_ARGUMENTS_STYLE/@EntryValue">CHOP_IF_LONG</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=HMACMD/@EntryIndexedValue">HMACMD</s:String>
|
||||
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=HMACSHA/@EntryIndexedValue">HMACSHA</s:String>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAddAccessorOwnerDeclarationBracesMigration/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:String x:Key="/Default/Environment/UnitTesting/ExcludedCategoriesList/@EntryValue">integration,LongRunning</s:String></wpf:ResourceDictionary>
|
||||
@@ -1,82 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26014.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\build\build.cmd = ..\build\build.cmd
|
||||
..\build\build.proj = ..\build\build.proj
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "nuget", "nuget", "{94EE3919-19FA-4D9B-8DA9-249050B15232}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\build\nuget\SSH.NET.nuspec = ..\build\nuget\SSH.NET.nuspec
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sandcastle", "sandcastle", "{A6C3FFD3-16A5-44D3-8C1F-3613D6DD17D1}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
..\build\sandcastle\SSH.NET.shfbproj = ..\build\sandcastle\SSH.NET.shfbproj
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Renci.SshNet", "Renci.SshNet\Renci.SshNet.csproj", "{2F5F8C90-0BD1-424F-997C-7BC6280919D1}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Renci.SshNet.Tests", "Renci.SshNet.Tests\Renci.SshNet.Tests.csproj", "{C45379B9-17B1-4E89-BC2E-6D41726413E8}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|ARM = Release|ARM
|
||||
Release|Mixed Platforms = Release|Mixed Platforms
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{2F5F8C90-0BD1-424F-997C-7BC6280919D1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{C45379B9-17B1-4E89-BC2E-6D41726413E8}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(NestedProjects) = preSolution
|
||||
{94EE3919-19FA-4D9B-8DA9-249050B15232} = {2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}
|
||||
{A6C3FFD3-16A5-44D3-8C1F-3613D6DD17D1} = {2D6CAE62-D053-476F-9BDD-2B1F27FA9C5D}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {C3D130B3-A070-4B12-A10F-E3E44D6ACEE2}
|
||||
EndGlobalSection
|
||||
GlobalSection(TestCaseManagementSettings) = postSolution
|
||||
CategoryFile = Renci.SshNet1.vsmdi
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,5 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("SSH.NET Windows Phone 7.1")]
|
||||
[assembly: Guid("b044a9d9-fe40-4d7e-b198-c142ab9721f0")]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="SshNet.Security.Cryptography" version="1.2.0" targetFramework="wp71" />
|
||||
</packages>
|
||||
@@ -1,8 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("SSH.NET Windows Phone 8.0")]
|
||||
[assembly: Guid("b044a9d9-fe40-4d7e-b198-c142ab9721f0")]
|
||||
|
||||
[assembly: InternalsVisibleTo("Renci.SshNet.Tests")]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="SshNet.Security.Cryptography" version="1.2.0" targetFramework="wp8" />
|
||||
<package id="System.IO" version="4.1.0" targetFramework="wp8" />
|
||||
</packages>
|
||||
@@ -63,9 +63,9 @@ namespace Renci.SshNet.Abstractions
|
||||
}
|
||||
|
||||
#if FEATURE_TAP
|
||||
public static Task ConnectAsync(Socket socket, IPEndPoint remoteEndpoint, CancellationToken cancellationToken)
|
||||
public static async Task ConnectAsync(Socket socket, IPEndPoint remoteEndpoint, CancellationToken cancellationToken)
|
||||
{
|
||||
return socket.ConnectAsync(remoteEndpoint, cancellationToken);
|
||||
await socket.ConnectAsync(remoteEndpoint, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -204,10 +204,19 @@ namespace Renci.SshNet
|
||||
{
|
||||
// ignore exception thrown by interrupting the blocking receive as part of closing
|
||||
// the forwarded port
|
||||
#if NETFRAMEWORK
|
||||
if (ex.SocketErrorCode != SocketError.Interrupted)
|
||||
{
|
||||
RaiseExceptionEvent(ex);
|
||||
}
|
||||
#else
|
||||
// Since .NET 5 the exception has been changed.
|
||||
// more info https://github.com/dotnet/runtime/issues/41585
|
||||
if (ex.SocketErrorCode != SocketError.ConnectionAborted)
|
||||
{
|
||||
RaiseExceptionEvent(ex);
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
|
||||
@@ -7,44 +7,18 @@
|
||||
<AssemblyOriginatorKeyFile>../Renci.SshNet.snk</AssemblyOriginatorKeyFile>
|
||||
<LangVersion>6</LangVersion>
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<TargetFrameworks>net35;net40;net472;netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||
<TargetFrameworks>net462;netstandard2.0;net6.0;net7.0</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
|
||||
<!--
|
||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '16.0' ">
|
||||
<TargetFrameworks>net35;net40;netstandard1.3;netstandard2.0;netstandard2.1</TargetFrameworks>
|
||||
</PropertyGroup>
|
||||
-->
|
||||
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
|
||||
<PackageReference Include="SshNet.Security.Cryptography" Version="[1.3.0]" />
|
||||
<PackageReference Include="System.Diagnostics.TraceSource" Version="4.3.0" />
|
||||
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
|
||||
<PackageReference Include="System.Net.Sockets" Version="4.3.0" />
|
||||
<PackageReference Include="System.Threading.Thread" Version="4.3.0" />
|
||||
<PackageReference Include="System.Threading.ThreadPool" Version="4.3.0" />
|
||||
<PackageReference Include="System.Threading.Timer" Version="4.3.0" />
|
||||
<PackageReference Include="System.Xml.XmlDocument" Version="4.3.0" />
|
||||
<PackageReference Include="System.Xml.XPath.XmlDocument" Version="4.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'netstandard2.1' ">
|
||||
<PackageReference Include="SshNet.Security.Cryptography" Version="[1.3.0]" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net35' ">
|
||||
<DefineConstants>FEATURE_REGEX_COMPILE;FEATURE_BINARY_SERIALIZATION;FEATURE_RNG_CREATE;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_POLL;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_HASH_MD5;FEATURE_HASH_SHA1_CREATE;FEATURE_HASH_SHA256_CREATE;FEATURE_HASH_SHA384_CREATE;FEATURE_HASH_SHA512_CREATE;FEATURE_HASH_RIPEMD160_CREATE;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_HMAC_RIPEMD160;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_ENCODING_ASCII;FEATURE_ECDSA</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net40' ">
|
||||
<DefineConstants>FEATURE_STRINGBUILDER_CLEAR;FEATURE_HASHALGORITHM_DISPOSE;FEATURE_REGEX_COMPILE;FEATURE_BINARY_SERIALIZATION;FEATURE_RNG_CREATE;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_SELECT;FEATURE_SOCKET_POLL;FEATURE_SOCKET_DISPOSE;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_WAITHANDLE_DISPOSE;FEATURE_HASH_MD5;FEATURE_HASH_SHA1_CREATE;FEATURE_HASH_SHA256_CREATE;FEATURE_HASH_SHA384_CREATE;FEATURE_HASH_SHA512_CREATE;FEATURE_HASH_RIPEMD160_CREATE;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_HMAC_RIPEMD160;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_ENCODING_ASCII;FEATURE_ECDSA</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net472' ">
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'net462' ">
|
||||
<DefineConstants>FEATURE_STRINGBUILDER_CLEAR;FEATURE_HASHALGORITHM_DISPOSE;FEATURE_REGEX_COMPILE;FEATURE_BINARY_SERIALIZATION;FEATURE_RNG_CREATE;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_EAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_SELECT;FEATURE_SOCKET_POLL;FEATURE_SOCKET_DISPOSE;FEATURE_STREAM_APM;FEATURE_DNS_SYNC;FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_WAITHANDLE_DISPOSE;FEATURE_HASH_MD5;FEATURE_HASH_SHA1_CREATE;FEATURE_HASH_SHA256_CREATE;FEATURE_HASH_SHA384_CREATE;FEATURE_HASH_SHA512_CREATE;FEATURE_HASH_RIPEMD160_CREATE;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_HMAC_RIPEMD160;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_ENCODING_ASCII;FEATURE_ECDSA;FEATURE_TAP</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.3' ">
|
||||
<DefineConstants>FEATURE_STRINGBUILDER_CLEAR;FEATURE_HASHALGORITHM_DISPOSE;FEATURE_ENCODING_ASCII;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_DIRECTORYINFO_ENUMERATEFILES;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_REFLECTION_TYPEINFO;FEATURE_RNG_CREATE;FEATURE_SOCKET_TAP;FEATURE_SOCKET_EAP;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_SELECT;FEATURE_SOCKET_POLL;FEATURE_SOCKET_DISPOSE;FEATURE_DNS_TAP;FEATURE_STREAM_TAP;FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_THREAD_TAP;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_WAITHANDLE_DISPOSE;FEATURE_HASH_MD5;FEATURE_HASH_SHA1_CREATE;FEATURE_HASH_SHA256_CREATE;FEATURE_HASH_SHA384_CREATE;FEATURE_HASH_SHA512_CREATE;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_TAP</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'netstandard2.1' ">
|
||||
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0' ">
|
||||
<PackageReference Include="SshNet.Security.Cryptography" Version="[1.3.0]" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0' ">
|
||||
<DefineConstants>FEATURE_STRINGBUILDER_CLEAR;FEATURE_HASHALGORITHM_DISPOSE;FEATURE_ENCODING_ASCII;FEATURE_DIAGNOSTICS_TRACESOURCE;FEATURE_DIRECTORYINFO_ENUMERATEFILES;FEATURE_MEMORYSTREAM_GETBUFFER;FEATURE_MEMORYSTREAM_TRYGETBUFFER;FEATURE_RNG_CREATE;FEATURE_SOCKET_TAP;FEATURE_SOCKET_APM;FEATURE_SOCKET_EAP;FEATURE_SOCKET_SYNC;FEATURE_SOCKET_SELECT;FEATURE_SOCKET_POLL;FEATURE_SOCKET_DISPOSE;FEATURE_DNS_SYNC;FEATURE_DNS_APM;FEATURE_DNS_TAP;FEATURE_STREAM_APM;FEATURE_STREAM_TAP;FEATURE_THREAD_COUNTDOWNEVENT;FEATURE_THREAD_TAP;FEATURE_THREAD_THREADPOOL;FEATURE_THREAD_SLEEP;FEATURE_WAITHANDLE_DISPOSE;FEATURE_HASH_MD5;FEATURE_HASH_SHA1_CREATE;FEATURE_HASH_SHA256_CREATE;FEATURE_HASH_SHA384_CREATE;FEATURE_HASH_SHA512_CREATE;FEATURE_HMAC_MD5;FEATURE_HMAC_SHA1;FEATURE_HMAC_SHA256;FEATURE_HMAC_SHA384;FEATURE_HMAC_SHA512;FEATURE_ECDSA;FEATURE_TAP</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
<Application
|
||||
x:Class="Renci.SshNet.Tests.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:tests="clr-namespace:Renci.SshNet.Tests">
|
||||
|
||||
<!--Application Resources-->
|
||||
<Application.Resources>
|
||||
<tests:LocalizedStrings xmlns:local="clr-namespace:Renci.SshNet.Tests" x:Key="LocalizedStrings"/>
|
||||
</Application.Resources>
|
||||
|
||||
<Application.ApplicationLifetimeObjects>
|
||||
<!--Required object that handles lifetime events for the application-->
|
||||
<shell:PhoneApplicationService
|
||||
Launching="Application_Launching" Closing="Application_Closing"
|
||||
Activated="Application_Activated" Deactivated="Application_Deactivated"/>
|
||||
</Application.ApplicationLifetimeObjects>
|
||||
|
||||
</Application>
|
||||
@@ -1,222 +0,0 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Windows;
|
||||
using System.Windows.Markup;
|
||||
using System.Windows.Navigation;
|
||||
using Microsoft.Phone.Controls;
|
||||
using Microsoft.Phone.Shell;
|
||||
using Renci.SshNet.Tests.Resources;
|
||||
|
||||
namespace Renci.SshNet.Tests
|
||||
{
|
||||
public partial class App : Application
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides easy access to the root frame of the Phone Application.
|
||||
/// </summary>
|
||||
/// <returns>The root frame of the Phone Application.</returns>
|
||||
public static PhoneApplicationFrame RootFrame { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Constructor for the Application object.
|
||||
/// </summary>
|
||||
public App()
|
||||
{
|
||||
// Global handler for uncaught exceptions.
|
||||
UnhandledException += Application_UnhandledException;
|
||||
|
||||
// Standard XAML initialization
|
||||
InitializeComponent();
|
||||
|
||||
// Phone-specific initialization
|
||||
InitializePhoneApplication();
|
||||
|
||||
// Language display initialization
|
||||
InitializeLanguage();
|
||||
|
||||
// Show graphics profiling information while debugging.
|
||||
if (Debugger.IsAttached)
|
||||
{
|
||||
// Display the current frame rate counters.
|
||||
Application.Current.Host.Settings.EnableFrameRateCounter = true;
|
||||
|
||||
// Show the areas of the app that are being redrawn in each frame.
|
||||
//Application.Current.Host.Settings.EnableRedrawRegions = true;
|
||||
|
||||
// Enable non-production analysis visualization mode,
|
||||
// which shows areas of a page that are handed off to GPU with a colored overlay.
|
||||
//Application.Current.Host.Settings.EnableCacheVisualization = true;
|
||||
|
||||
// Prevent the screen from turning off while under the debugger by disabling
|
||||
// the application's idle detection.
|
||||
// Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run
|
||||
// and consume battery power when the user is not using the phone.
|
||||
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Code to execute when the application is launching (eg, from Start)
|
||||
// This code will not execute when the application is reactivated
|
||||
private void Application_Launching(object sender, LaunchingEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
// Code to execute when the application is activated (brought to foreground)
|
||||
// This code will not execute when the application is first launched
|
||||
private void Application_Activated(object sender, ActivatedEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
// Code to execute when the application is deactivated (sent to background)
|
||||
// This code will not execute when the application is closing
|
||||
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
// Code to execute when the application is closing (eg, user hit Back)
|
||||
// This code will not execute when the application is deactivated
|
||||
private void Application_Closing(object sender, ClosingEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
// Code to execute if a navigation fails
|
||||
private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
|
||||
{
|
||||
if (Debugger.IsAttached)
|
||||
{
|
||||
// A navigation has failed; break into the debugger
|
||||
Debugger.Break();
|
||||
}
|
||||
}
|
||||
|
||||
// Code to execute on Unhandled Exceptions
|
||||
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
|
||||
{
|
||||
if (Debugger.IsAttached)
|
||||
{
|
||||
// An unhandled exception has occurred; break into the debugger
|
||||
Debugger.Break();
|
||||
}
|
||||
}
|
||||
|
||||
#region Phone application initialization
|
||||
|
||||
// Avoid double-initialization
|
||||
private bool phoneApplicationInitialized = false;
|
||||
|
||||
// Do not add any additional code to this method
|
||||
private void InitializePhoneApplication()
|
||||
{
|
||||
if (phoneApplicationInitialized)
|
||||
return;
|
||||
|
||||
// Create the frame but don't set it as RootVisual yet; this allows the splash
|
||||
// screen to remain active until the application is ready to render.
|
||||
RootFrame = new PhoneApplicationFrame();
|
||||
RootFrame.Navigated += CompleteInitializePhoneApplication;
|
||||
|
||||
// Handle navigation failures
|
||||
RootFrame.NavigationFailed += RootFrame_NavigationFailed;
|
||||
|
||||
// Handle reset requests for clearing the backstack
|
||||
RootFrame.Navigated += CheckForResetNavigation;
|
||||
|
||||
// Ensure we don't initialize again
|
||||
phoneApplicationInitialized = true;
|
||||
}
|
||||
|
||||
// Do not add any additional code to this method
|
||||
private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
|
||||
{
|
||||
// Set the root visual to allow the application to render
|
||||
if (RootVisual != RootFrame)
|
||||
RootVisual = RootFrame;
|
||||
|
||||
// Remove this handler since it is no longer needed
|
||||
RootFrame.Navigated -= CompleteInitializePhoneApplication;
|
||||
}
|
||||
|
||||
private void CheckForResetNavigation(object sender, NavigationEventArgs e)
|
||||
{
|
||||
// If the app has received a 'reset' navigation, then we need to check
|
||||
// on the next navigation to see if the page stack should be reset
|
||||
if (e.NavigationMode == NavigationMode.Reset)
|
||||
RootFrame.Navigated += ClearBackStackAfterReset;
|
||||
}
|
||||
|
||||
private void ClearBackStackAfterReset(object sender, NavigationEventArgs e)
|
||||
{
|
||||
// Unregister the event so it doesn't get called again
|
||||
RootFrame.Navigated -= ClearBackStackAfterReset;
|
||||
|
||||
// Only clear the stack for 'new' (forward) and 'refresh' navigations
|
||||
if (e.NavigationMode != NavigationMode.New && e.NavigationMode != NavigationMode.Refresh)
|
||||
return;
|
||||
|
||||
// For UI consistency, clear the entire page stack
|
||||
while (RootFrame.RemoveBackEntry() != null)
|
||||
{
|
||||
; // do nothing
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// Initialize the app's font and flow direction as defined in its localized resource strings.
|
||||
//
|
||||
// To ensure that the font of your application is aligned with its supported languages and that the
|
||||
// FlowDirection for each of those languages follows its traditional direction, ResourceLanguage
|
||||
// and ResourceFlowDirection should be initialized in each resx file to match these values with that
|
||||
// file's culture. For example:
|
||||
//
|
||||
// AppResources.es-ES.resx
|
||||
// ResourceLanguage's value should be "es-ES"
|
||||
// ResourceFlowDirection's value should be "LeftToRight"
|
||||
//
|
||||
// AppResources.ar-SA.resx
|
||||
// ResourceLanguage's value should be "ar-SA"
|
||||
// ResourceFlowDirection's value should be "RightToLeft"
|
||||
//
|
||||
// For more info on localizing Windows Phone apps see http://go.microsoft.com/fwlink/?LinkId=262072.
|
||||
//
|
||||
private void InitializeLanguage()
|
||||
{
|
||||
try
|
||||
{
|
||||
// Set the font to match the display language defined by the
|
||||
// ResourceLanguage resource string for each supported language.
|
||||
//
|
||||
// Fall back to the font of the neutral language if the Display
|
||||
// language of the phone is not supported.
|
||||
//
|
||||
// If a compiler error is hit then ResourceLanguage is missing from
|
||||
// the resource file.
|
||||
RootFrame.Language = XmlLanguage.GetLanguage(AppResources.ResourceLanguage);
|
||||
|
||||
// Set the FlowDirection of all elements under the root frame based
|
||||
// on the ResourceFlowDirection resource string for each
|
||||
// supported language.
|
||||
//
|
||||
// If a compiler error is hit then ResourceFlowDirection is missing from
|
||||
// the resource file.
|
||||
FlowDirection flow = (FlowDirection)Enum.Parse(typeof(FlowDirection), AppResources.ResourceFlowDirection);
|
||||
RootFrame.FlowDirection = flow;
|
||||
}
|
||||
catch
|
||||
{
|
||||
// If an exception is caught here it is most likely due to either
|
||||
// ResourceLangauge not being correctly set to a supported language
|
||||
// code or ResourceFlowDirection is set to a value other than LeftToRight
|
||||
// or RightToLeft.
|
||||
|
||||
if (Debugger.IsAttached)
|
||||
{
|
||||
Debugger.Break();
|
||||
}
|
||||
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 8.8 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.3 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 9.7 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 8.9 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.6 KiB |
@@ -1,14 +0,0 @@
|
||||
using Renci.SshNet.Tests.Resources;
|
||||
|
||||
namespace Renci.SshNet.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides access to string resources.
|
||||
/// </summary>
|
||||
public class LocalizedStrings
|
||||
{
|
||||
private static readonly AppResources _localizedResources = new AppResources();
|
||||
|
||||
public AppResources LocalizedResources { get { return _localizedResources; } }
|
||||
}
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
<phone:PhoneApplicationPage
|
||||
x:Class="Renci.SshNet.Tests.MainPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="Portrait" Orientation="Portrait"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<!--LayoutRoot is the root grid where all page content is placed-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- LOCALIZATION NOTE:
|
||||
To localize the displayed strings copy their values to appropriately named
|
||||
keys in the app's neutral language resource file (AppResources.resx) then
|
||||
replace the hard-coded text value between the attributes' quotation marks
|
||||
with the binding clause whose path points to that string name.
|
||||
|
||||
For example:
|
||||
|
||||
Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}"
|
||||
|
||||
This binding points to the template's string resource named "ApplicationTitle".
|
||||
|
||||
Adding supported languages in the Project Properties tab will create a
|
||||
new resx file per language that can carry the translated values of your
|
||||
UI strings. The binding in these examples will cause the value of the
|
||||
attributes to be drawn from the .resx file that matches the
|
||||
CurrentUICulture of the app at run time.
|
||||
-->
|
||||
|
||||
<!--TitlePanel contains the name of the application and page title-->
|
||||
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
|
||||
<TextBlock Text="TEST APP" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
|
||||
<TextBlock Text="Unit Test" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
|
||||
</StackPanel>
|
||||
|
||||
<!--ContentPanel - place additional content here-->
|
||||
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
|
||||
<TextBlock x:Name="label" Text="Tests running" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
|
||||
<!--Uncomment to see an alignment grid to help ensure your controls are
|
||||
aligned on common boundaries. The image has a top margin of -32px to
|
||||
account for the System Tray. Set this to 0 (or remove the margin altogether)
|
||||
if the System Tray is hidden.
|
||||
|
||||
Before shipping remove this XAML and the image itself.-->
|
||||
<!--<Image Source="/Assets/AlignmentGrid.png" VerticalAlignment="Top" Height="800" Width="480" Margin="0,-32,0,0" Grid.Row="0" Grid.RowSpan="2" IsHitTestVisible="False" />-->
|
||||
</Grid>
|
||||
|
||||
</phone:PhoneApplicationPage>
|
||||
@@ -1,21 +0,0 @@
|
||||
using System.Threading;
|
||||
using Microsoft.Phone.Controls;
|
||||
using Microsoft.VisualStudio.TestPlatform.Core;
|
||||
using Microsoft.VisualStudio.TestPlatform.TestExecutor;
|
||||
using vstest_executionengine_platformbridge;
|
||||
|
||||
namespace Renci.SshNet.Tests
|
||||
{
|
||||
public partial class MainPage : PhoneApplicationPage
|
||||
{
|
||||
// Constructor
|
||||
public MainPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
var wrapper = new TestExecutorServiceWrapper();
|
||||
new Thread(new ServiceMain((param0, param1) => wrapper.SendMessage((ContractName)param0, param1)).Run).Start();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
>
|
||||
<Deployment.Parts>
|
||||
</Deployment.Parts>
|
||||
</Deployment>
|
||||
@@ -1,37 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Resources;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Renci.SshNet.WindowsPhone8.Tests")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Renci.SshNet.WindowsPhone8.Tests")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("911d635c-6e0e-46e8-9e8b-99bfb1790991")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
[assembly: NeutralResourcesLanguageAttribute("en-US")]
|
||||
@@ -1,46 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2012/deployment" AppPlatformVersion="8.0">
|
||||
<DefaultLanguage xmlns="" code="en-US"/>
|
||||
<App xmlns="" ProductID="{26f0d644-b3ef-47df-8040-e9e4b2e63884}" Title="Renci.SshNet.WindowsPhone8.Tests" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal" Author="Renci.SshNet.WindowsPhone8.Tests author" Description="Sample description" Publisher="Renci.SshNet.WindowsPhone8.Tests" PublisherID="{0a881f10-22b8-403b-aa50-3a03106b9a0b}">
|
||||
<IconPath IsRelative="true" IsResource="false">Assets\ApplicationIcon.png</IconPath>
|
||||
<Capabilities>
|
||||
<Capability Name="ID_CAP_NETWORKING"/>
|
||||
<Capability Name="ID_CAP_MEDIALIB_AUDIO"/>
|
||||
<Capability Name="ID_CAP_MEDIALIB_PLAYBACK"/>
|
||||
<Capability Name="ID_CAP_SENSORS"/>
|
||||
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
|
||||
</Capabilities>
|
||||
<Tasks>
|
||||
<DefaultTask Name ="_default" NavigationPage="MainPage.xaml"/>
|
||||
</Tasks>
|
||||
<Tokens>
|
||||
<PrimaryToken TokenID="Renci.SshNet.WindowsPhone8.TestsToken" TaskName="_default">
|
||||
<TemplateFlip>
|
||||
<SmallImageURI IsRelative="true" IsResource="false">Assets\Tiles\FlipCycleTileSmall.png</SmallImageURI>
|
||||
<Count>0</Count>
|
||||
<BackgroundImageURI IsRelative="true" IsResource="false">Assets\Tiles\FlipCycleTileMedium.png</BackgroundImageURI>
|
||||
<Title>Renci.SshNet.WindowsPhone8.Tests</Title>
|
||||
<BackContent></BackContent>
|
||||
<BackBackgroundImageURI></BackBackgroundImageURI>
|
||||
<BackTitle></BackTitle>
|
||||
<DeviceLockImageURI></DeviceLockImageURI>
|
||||
<HasLarge></HasLarge>
|
||||
</TemplateFlip>
|
||||
</PrimaryToken>
|
||||
</Tokens>
|
||||
<ActivatableClasses>
|
||||
<InProcessServer>
|
||||
<Path>vstest_executionengine_platformbridge.dll</Path>
|
||||
<ActivatableClass ActivatableClassId="vstest_executionengine_platformbridge.ServiceMain" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="vstest_executionengine_platformbridge.MessageTransmitter" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="vstest_executionengine_platformbridge.NativeMethods" ThreadingModel="both" />
|
||||
</InProcessServer>
|
||||
</ActivatableClasses>
|
||||
<ScreenResolutions>
|
||||
<ScreenResolution Name="ID_RESOLUTION_WVGA"/>
|
||||
<ScreenResolution Name="ID_RESOLUTION_WXGA"/>
|
||||
<ScreenResolution Name="ID_RESOLUTION_HD720P"/>
|
||||
</ScreenResolutions>
|
||||
</App>
|
||||
</Deployment>
|
||||
@@ -1,148 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProductVersion>10.0.20506</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{26F0D644-B3EF-47DF-8040-E9E4B2E63884}</ProjectGuid>
|
||||
<ProjectTypeGuids>{C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Renci.SshNet.Tests</RootNamespace>
|
||||
<AssemblyName>Renci.SshNet.Tests</AssemblyName>
|
||||
<TargetFrameworkIdentifier>WindowsPhone</TargetFrameworkIdentifier>
|
||||
<TargetFrameworkVersion>v8.0</TargetFrameworkVersion>
|
||||
<SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
|
||||
<SilverlightApplication>true</SilverlightApplication>
|
||||
<WPTestProject>true</WPTestProject>
|
||||
<SupportedCultures>
|
||||
</SupportedCultures>
|
||||
<XapOutputs>true</XapOutputs>
|
||||
<GenerateSilverlightManifest>true</GenerateSilverlightManifest>
|
||||
<XapFilename>Renci.SshNet.WindowsPhone8.Tests_$(Configuration)_$(Platform).xap</XapFilename>
|
||||
<SilverlightManifestTemplate>Properties\AppManifest.xml</SilverlightManifestTemplate>
|
||||
<SilverlightAppEntry>Renci.SshNet.WindowsPhone8.Tests.App</SilverlightAppEntry>
|
||||
<ValidateXaml>false</ValidateXaml>
|
||||
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
|
||||
<ThrowErrorsInValidation>true</ThrowErrorsInValidation>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>Bin\x86\Debug</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;SILVERLIGHT</DefineConstants>
|
||||
<NoStdLib>true</NoStdLib>
|
||||
<NoConfig>true</NoConfig>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>Bin\x86\Release</OutputPath>
|
||||
<DefineConstants>TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
|
||||
<NoStdLib>true</NoStdLib>
|
||||
<NoConfig>true</NoConfig>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|ARM' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>Bin\ARM\Debug</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
|
||||
<NoStdLib>true</NoStdLib>
|
||||
<NoConfig>true</NoConfig>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|ARM' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>Bin\ARM\Release</OutputPath>
|
||||
<DefineConstants>TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
|
||||
<NoStdLib>true</NoStdLib>
|
||||
<NoConfig>true</NoConfig>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="App.xaml.cs">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LocalizedStrings.cs" />
|
||||
<Compile Include="MainPage.xaml.cs">
|
||||
<DependentUpon>MainPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Resources\AppResources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>AppResources.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ApplicationDefinition Include="App.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</ApplicationDefinition>
|
||||
<Page Include="MainPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Properties\AppManifest.xml" />
|
||||
<None Include="Properties\WMAppManifest.xml">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<SDKReference Include="MSTestFramework, Version=11.0" />
|
||||
<SDKReference Include="TestPlatform, Version=11.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Assets\AlignmentGrid.png" />
|
||||
<Content Include="Assets\ApplicationIcon.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\Tiles\FlipCycleTileLarge.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\Tiles\FlipCycleTileMedium.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\Tiles\FlipCycleTileSmall.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Resources\AppResources.resx">
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>AppResources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\src\Renci.SshNet.WindowsPhone8\Renci.SshNet.WindowsPhone8.csproj">
|
||||
<Project>{4a6ca785-1c8a-47fe-98c0-30c675a9328b}</Project>
|
||||
<Name>Renci.SshNet.WindowsPhone8</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="..\Renci.SshNet.Shared.Tests\Renci.SshNet.Shared.Tests.projitems" Label="Shared" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)\Microsoft.$(TargetFrameworkIdentifier).$(TargetFrameworkVersion).Overrides.targets" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)\Microsoft.$(TargetFrameworkIdentifier).CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
<ProjectExtensions />
|
||||
</Project>
|
||||
@@ -1,108 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Renci.SshNet.Tests.Resources {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
public class AppResources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal AppResources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
public static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Renci.SshNet.Tests.Resources.AppResources", typeof(AppResources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
public static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to add.
|
||||
/// </summary>
|
||||
public static string AppBarButtonText {
|
||||
get {
|
||||
return ResourceManager.GetString("AppBarButtonText", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Menu Item.
|
||||
/// </summary>
|
||||
public static string AppBarMenuItemText {
|
||||
get {
|
||||
return ResourceManager.GetString("AppBarMenuItemText", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to MY APPLICATION.
|
||||
/// </summary>
|
||||
public static string ApplicationTitle {
|
||||
get {
|
||||
return ResourceManager.GetString("ApplicationTitle", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to LeftToRight.
|
||||
/// </summary>
|
||||
public static string ResourceFlowDirection {
|
||||
get {
|
||||
return ResourceManager.GetString("ResourceFlowDirection", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to en-US.
|
||||
/// </summary>
|
||||
public static string ResourceLanguage {
|
||||
get {
|
||||
return ResourceManager.GetString("ResourceLanguage", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,137 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="ResourceFlowDirection" xml:space="preserve">
|
||||
<value>LeftToRight</value>
|
||||
<comment>Controls the FlowDirection for all elements in the RootFrame. Set to the traditional direction of this resource file's language</comment>
|
||||
</data>
|
||||
<data name="ResourceLanguage" xml:space="preserve">
|
||||
<value>en-US</value>
|
||||
<comment>Controls the Language and ensures that the font for all elements in the RootFrame aligns with the app's language. Set to the language code of this resource file's language.</comment>
|
||||
</data>
|
||||
<data name="ApplicationTitle" xml:space="preserve">
|
||||
<value>MY APPLICATION</value>
|
||||
</data>
|
||||
<data name="AppBarButtonText" xml:space="preserve">
|
||||
<value>add</value>
|
||||
</data>
|
||||
<data name="AppBarMenuItemText" xml:space="preserve">
|
||||
<value>Menu Item</value>
|
||||
</data>
|
||||
</root>
|
||||
Reference in New Issue
Block a user