ソースを参照

Added build script which by default:
* cleans the build output
* compiles the solution in Release configuration
* creates a NuGet package containing our assembly for all supported target frameworks

Added nuspec file, and updated it with information on
new features, breaking changes and fixes.

Removed generated NuGet package.

Gert Driesen 11 年 前
コミット
53de0a237e

+ 33 - 0
Renci.SshClient/Build/build.cmd

@@ -0,0 +1,33 @@
+@echo off
+
+rem We use the version of MSBuild that is included in .NET 4.0 / 4.5
+set MSBUILD_HOME=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
+
+rem MSBuild project file is located in the same directory as the current script
+set MSBUILD_PROJECT=%~dp0\build.proj
+
+set MSBUILD_EXE=%MSBUILD_HOME%\msbuild.exe
+
+rem verify whether the version of MSBuild that we need is installed
+if not exist %MSBUILD_EXE% goto msbuild_missing
+
+rem launch the build script
+call %MSBUILD_HOME%\msbuild.exe %MSBUILD_PROJECT% /verbosity:minimal /nologo
+if errorlevel 1 goto msbuild_failure
+goto :EOF
+
+:msbuild_missing
+echo.
+echo Build FAILED.
+echo.
+echo MSBuild is not available in the following directory:
+echo %MSBUILD_HOME%
+echo.
+echo Please check your local setup.
+goto :EOF
+
+:msbuild_failure
+echo.
+echo Build FAILED.
+echo.
+echo Please check the MSBuild output for information on the cause.

+ 75 - 0
Renci.SshClient/Build/build.proj

@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Clean;CreatePackage" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
+        <BuildRoot>$(MSBuildThisFileDirectory)</BuildRoot>
+        <NuGetExe>$(BuildRoot)nuget\nuget.exe</NuGetExe>
+    </PropertyGroup>
+
+	<Target Name="Clean">
+		<RemoveDir Directories="$(MSBuildThisFileDirectory)target" />
+	</Target>
+	
+    <Target Name="Build">
+		<ItemGroup>
+			<ProjectToBuild Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.sln">
+				<Properties>Configuration=Release</Properties>
+			</ProjectToBuild>
+		</ItemGroup>
+		<MSBuild Projects="@(ProjectToBuild)" Targets="Rebuild" />
+	</Target>
+	
+	<Target Name="CreatePackage" DependsOnTargets="CopyBuildOutputToPackage">
+		<Exec Command="$(NuGetExe) pack $(MSBuildThisFileDirectory)nuget\SSH.NET.nuspec -OutputDirectory &quot;$(MSBuildThisFileDirectory)target&quot; -BasePath &quot;$(MSBuildThisFileDirectory)target\package&quot; -NonInteractive" />
+	</Target>
+	
+	<Target Name="CopyBuildOutputToPackage" DependsOnTargets="CopyNet40BuildOutputToPackage;CopyNet35BuildOutputToPackage;CopyWindowsPhone71BuildOutputToPackage;CopyWindowsPhone8BuildOutputToPackage;CopySilverlight4BuildOutputToPackage;CopySilverlight5BuildOutputToPackage" />
+	
+	<Target Name="CopyNet40BuildOutputToPackage" DependsOnTargets="Build">
+		<ItemGroup>
+			<Net40BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet\bin\$(Configuration)\Renci.SshNet.dll" />
+			<Net40BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet\bin\$(Configuration)\Renci.SshNet.xml" />
+		</ItemGroup>
+		<Copy SourceFiles="@(Net40BuildOutput)" DestinationFolder="$(MSBuildThisFileDirectory)target\package\lib\net40" />
+	</Target>
+	
+	<Target Name="CopyNet35BuildOutputToPackage" DependsOnTargets="Build">
+		<ItemGroup>
+			<Net35BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.NET35\bin\$(Configuration)\Renci.SshNet.dll" />
+			<Net35BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.NET35\bin\$(Configuration)\Renci.SshNet.xml" />
+		</ItemGroup>
+		<Copy SourceFiles="@(Net35BuildOutput)" DestinationFolder="$(MSBuildThisFileDirectory)target\package\lib\net35" />
+	</Target>
+	
+	<Target Name="CopyWindowsPhone71BuildOutputToPackage" DependsOnTargets="Build">
+		<ItemGroup>
+			<WindowsPhone71BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.WindowsPhone\bin\$(Configuration)\Renci.SshNet.dll" />
+			<WindowsPhone71BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.WindowsPhone\bin\$(Configuration)\Renci.SshNet.xml" />
+		</ItemGroup>
+		<Copy SourceFiles="@(WindowsPhone71BuildOutput)" DestinationFolder="$(MSBuildThisFileDirectory)target\package\lib\sl4-windowsphone71" />
+	</Target>
+	
+	<Target Name="CopyWindowsPhone8BuildOutputToPackage" DependsOnTargets="Build">
+		<ItemGroup>
+			<WindowsPhone8BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.WindowsPhone8\bin\$(Configuration)\Renci.SshNet.dll" />
+			<WindowsPhone8BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.WindowsPhone8\bin\$(Configuration)\Renci.SshNet.xml" />
+		</ItemGroup>
+		<Copy SourceFiles="@(WindowsPhone8BuildOutput)" DestinationFolder="$(MSBuildThisFileDirectory)target\package\lib\windowsphone8" />
+	</Target>
+	
+	<Target Name="CopySilverlight4BuildOutputToPackage" DependsOnTargets="Build">
+		<ItemGroup>
+			<Silverlight4BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.Silverlight\bin\$(Configuration)\Renci.SshNet.dll" />
+			<Silverlight4BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.Silverlight\bin\$(Configuration)\Renci.SshNet.xml" />
+		</ItemGroup>
+		<Copy SourceFiles="@(Silverlight4BuildOutput)" DestinationFolder="$(MSBuildThisFileDirectory)target\package\lib\sl4" />
+	</Target>
+	
+	<Target Name="CopySilverlight5BuildOutputToPackage" DependsOnTargets="Build">
+		<ItemGroup>
+			<Silverlight5BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.Silverlight5\bin\$(Configuration)\Renci.SshNet.dll" />
+			<Silverlight5BuildOutput Include="$(MSBuildThisFileDirectory)..\Renci.SshNet.Silverlight5\bin\$(Configuration)\Renci.SshNet.xml" />
+		</ItemGroup>
+		<Copy SourceFiles="@(Silverlight5BuildOutput)" DestinationFolder="$(MSBuildThisFileDirectory)target\package\lib\sl5" />
+	</Target>
+</Project>

+ 38 - 0
Renci.SshClient/Build/nuget/SSH.NET.nuspec

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
+    <metadata>
+        <id>SSH.NET</id>
+        <version>2014.3.8</version>
+        <title>SSH.NET</title>
+        <authors>Renci</authors>
+        <owners>olegkap</owners>
+        <licenseUrl>http://sshnet.codeplex.com/license</licenseUrl>
+        <projectUrl>http://sshnet.codeplex.com/</projectUrl>
+        <requireLicenseAcceptance>true</requireLicenseAcceptance>
+        <description>This project was inspired by Sharp.SSH library which was ported from Java.  This library is a complete rewrite using .NET, without any third party dependencies and to utilize the parallelism as much as possible to allow best performance you can get.  SSH.NET supports .NET 3.5, .NET 4.0, Silverlight 4.0, Silverlight 5.0, Windows Phone 7.1 and Windows Phone 8.</description>
+        <releaseNotes>New Features:
+
+    * Added callbacks to UploadFile, DownloadFile and ListDirectory in SftpClient (issue #1324)
+    * Allow a given private key file to be used concurrently
+
+Breaking changes:
+
+    * Assembly is now named Renci.SshNet for all supported frameworks
+    * The Renci.SshNet assemblies for .NET and Silverlight are now strong-named (issue #1802)
+
+Fixes:
+
+    * Correct casing of Security/Cryptography/HMAC.cs to fix build on Linux (issue #1505)
+    * HTTP proxy hangs (issue #1890)
+    * Wrong parameters to SetSocketOption leads to SocketException under Mono (issue #1799)
+    * Incorrect check for timeout values (issue #1620)
+    * Wrong PKCS7 padding in DES algorithm (issue #1580)
+    * OverflowException on empty server response (issue #1562)
+    * Event handle leak (issue #1761)
+    * Write access required for private key file</releaseNotes>
+        <summary>A Secure Shell (SSH) library for .NET, optimized for parallelism.</summary>
+        <copyright>2012-2014, RENCI</copyright>
+        <language>en-US</language>
+        <tags>ssh .net40 sftp .net35 wp71 wp8 silverlight windowsphone</tags>
+    </metadata>
+</package>

BIN
Renci.SshClient/Build/nuget/nuget.exe


BIN
Renci.SshClient/SSH.NET.nupkg