Explorar o código

Split build into modern and classic targets to allow building both "flavors" on separate machines.
This is done since I only have a VM for building the "classic" projects, and I build the "modern" projects on my main development box.
Use tokens for replacing the version and copyright in the nuspec.

drieseng %!s(int64=5) %!d(string=hai) anos
pai
achega
93f092ce2c
Modificáronse 2 ficheiros con 152 adicións e 74 borrados
  1. 149 71
      build/build.proj
  2. 3 3
      build/nuget/SSH.NET.nuspec

+ 149 - 71
build/build.proj

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Clean;Build;Package" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 	<UsingTask TaskName="Zip" AssemblyFile="$(MSBuildThisFileDirectory)target\nuget\packages\$(MSBuildTasksPackageId).$(MSBuildTasksPackageVersion)\tools\MSBuild.Community.Tasks.dll"/>
 	<PropertyGroup>
 		<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
@@ -8,136 +8,214 @@
 		<MSBuildTasksPackageId>MSBuildTasks</MSBuildTasksPackageId>
 		<MSBuildTasksPackageVersion>1.5.0.214</MSBuildTasksPackageVersion>
 	</PropertyGroup>
+	
 	<ItemGroup>
-		<VisualStudioVersion Include="2012">
+		<VisualStudioVersionClassic Include="2012">
 			<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2012.sln</SolutionFile>
 			<ToolsVersion>14.0</ToolsVersion>
 			<VisualStudioVersion>14.0</VisualStudioVersion>
-		</VisualStudioVersion>
-		<VisualStudioVersion Include="2015">
+		</VisualStudioVersionClassic>
+		<VisualStudioVersionClassic Include="2015">
 			<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2015.sln</SolutionFile>
 			<ToolsVersion>14.0</ToolsVersion>
 			<VisualStudioVersion>14.0</VisualStudioVersion>
-		</VisualStudioVersion>
-		<VisualStudioVersion Include="2017">
-			<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2017.sln</SolutionFile>
-			<ToolsVersion>15.0</ToolsVersion>
-			<VisualStudioVersion>15.0</VisualStudioVersion>
-		</VisualStudioVersion>
+		</VisualStudioVersionClassic>
 	</ItemGroup>
+	
 	<ItemGroup>
-		<TargetFramework Include=".NET Framework 3.5">
-			<OutputDirectory>Renci.SshNet.NET35\bin\$(Configuration)</OutputDirectory>
-			<Moniker>net35</Moniker>
-		</TargetFramework>
-		<TargetFramework Include=".NET Framework 4.0">
-			<OutputDirectory>Renci.SshNet\bin\$(Configuration)</OutputDirectory>
-			<Moniker>net40</Moniker>
-		</TargetFramework>
-		<TargetFramework Include=".NETStandard 1.3">
-			<OutputDirectory>Renci.SshNet.NETCore\bin\$(Configuration)\netstandard1.3</OutputDirectory>
-			<Moniker>netstandard1.3</Moniker>
-		</TargetFramework>
-		<TargetFramework Include=".NETStandard 2.0">
-			<OutputDirectory>Renci.SshNet.NETCore\bin\$(Configuration)\netstandard2.0</OutputDirectory>
-			<Moniker>netstandard2.0</Moniker>
-		</TargetFramework>
-		<TargetFramework Include="Windows Phone Silverlight 7.1">
+		<VisualStudioVersionModern Include="2019">
+			<SolutionFile>$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2019.sln</SolutionFile>
+			<VisualStudioVersion>16.0</VisualStudioVersion>
+		</VisualStudioVersionModern>
+	</ItemGroup>
+
+	<ItemGroup>
+		<TargetFrameworkClassic Include="Windows Phone Silverlight 7.1">
 			<OutputDirectory>Renci.SshNet.WindowsPhone\bin\$(Configuration)</OutputDirectory>
 			<Moniker>wp71</Moniker>
-		</TargetFramework>
-		<TargetFramework Include="Windows Phone Silverlight 8.0">
+		</TargetFrameworkClassic>
+		<TargetFrameworkClassic Include="Windows Phone Silverlight 8.0">
 			<OutputDirectory>Renci.SshNet.WindowsPhone8\bin\$(Configuration)</OutputDirectory>
 			<Moniker>wp8</Moniker>
-		</TargetFramework>
-		<TargetFramework Include="Silverlight 4">
+		</TargetFrameworkClassic>
+		<TargetFrameworkClassic Include="Silverlight 4">
 			<OutputDirectory>Renci.SshNet.Silverlight\bin\$(Configuration)</OutputDirectory>
 			<Moniker>sl4</Moniker>
-		</TargetFramework>
-		<TargetFramework Include="Silverlight 5">
+		</TargetFrameworkClassic>
+		<TargetFrameworkClassic Include="Silverlight 5">
 			<OutputDirectory>Renci.SshNet.Silverlight5\bin\$(Configuration)</OutputDirectory>
 			<Moniker>sl5</Moniker>
-		</TargetFramework>
-		<TargetFramework Include="Universal Windows Platform 10">
+		</TargetFrameworkClassic>
+		<TargetFrameworkClassic Include="Universal Windows Platform 10">
 			<OutputDirectory>Renci.SshNet.UAP10\bin\$(Configuration)</OutputDirectory>
 			<Moniker>uap10</Moniker>
-		</TargetFramework>
+		</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>
+		<TargetFrameworkModern Include=".NETStandard 2.0">
+			<OutputDirectory>Renci.SshNet\bin\$(Configuration)\netstandard2.0</OutputDirectory>
+			<Moniker>netstandard2.0</Moniker>
+		</TargetFrameworkModern>
 	</ItemGroup>
-	<Target Name="Clean" DependsOnTargets="CleanSolution">
+	
+	<Target Name="CleanClassic" DependsOnTargets="CleanSolutionClassic">
 		<RemoveDir Directories="$(MSBuildThisFileDirectory)target"/>
 	</Target>
-	<Target Name="CleanSolution" Outputs="%(VisualStudioVersion.Identity)">
-		
+	
+	<Target Name="CleanModern" DependsOnTargets="CleanSolutionModern">
+		<RemoveDir Directories="$(MSBuildThisFileDirectory)target"/>
+	</Target>
+
+	<Target Name="CleanSolutionClassic" Outputs="%(VisualStudioVersionClassic.Identity)">
 		<ItemGroup>
 			<ProjectToBuild Remove="@(ProjectToBuild)"/>
-			<ProjectToBuild Include="%(VisualStudioVersion.SolutionFile)">
-				<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersion.VisualStudioVersion)</Properties>
+			<ProjectToBuild Include="%(VisualStudioVersionClassic.SolutionFile)">
+				<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersionClassic.VisualStudioVersion)</Properties>
 			</ProjectToBuild>
 		</ItemGroup>
-		<MSBuild Projects="@(ProjectToBuild)" ToolsVersion="%(VisualStudioVersion.ToolsVersion)" Targets="Clean"/>
+		<MSBuild Projects="@(ProjectToBuild)" ToolsVersion="%(VisualStudioVersionClassic.ToolsVersion)" Targets="Clean"/>
 	</Target>
-	<Target Name="DownloadNuGet">
-		<MakeDir Directories="$(MSBuildThisFileDirectory)target\nuget"/>
-		<DownloadFile
-			Address="https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
-			FileName="$(MSBuildThisFileDirectory)target\nuget\nuget.exe"/>
+	
+	<Target Name="CleanSolutionModern" Outputs="%(VisualStudioVersionModern.Identity)">
+		<ItemGroup>
+			<ProjectToBuild Remove="@(ProjectToBuild)"/>
+			<ProjectToBuild Include="%(VisualStudioVersionModern.SolutionFile)">
+				<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersionModern.VisualStudioVersion)</Properties>
+			</ProjectToBuild>
+		</ItemGroup>
+		<MSBuild Projects="@(ProjectToBuild)" Targets="Clean"/>
 	</Target>
-	<Target Name="RestoreNuGetPackages" DependsOnTargets="DownloadNuGet" Outputs="%(VisualStudioVersion.Identity)">
-		<Message Text="Restoring nuget packages for '%(VisualStudioVersion.SolutionFile)'..." Importance="High"/>
-		<Exec Command="$(NuGetExe) restore &quot;%(VisualStudioVersion.SolutionFile)&quot;"/>
+
+	<Target Name="RestoreNuGetPackagesClassic" DependsOnTargets="DownloadNuGet" Outputs="%(VisualStudioVersionClassic.Identity)">
+		<Message Text="Restoring nuget packages for '%(VisualStudioVersionClassic.SolutionFile)'..." Importance="High"/>
+		<Exec Command="$(NuGetExe) restore &quot;%(VisualStudioVersionClassic.SolutionFile)&quot;"/>
 	</Target>
-	<Target Name="Build" DependsOnTargets="RestoreNuGetPackages" Outputs="%(VisualStudioVersion.Identity)">
+	
+	<Target Name="RestoreNuGetPackagesModern" DependsOnTargets="DownloadNuGet" Outputs="%(VisualStudioVersionModern.Identity)">
+		<Message Text="Restoring nuget packages for '%(VisualStudioVersionModern.SolutionFile)'..." Importance="High"/>
+		<Exec Command="$(NuGetExe) restore &quot;%(VisualStudioVersionModern.SolutionFile)&quot;"/>
+	</Target>
+	
+	<Target Name="BuildClassic" DependsOnTargets="RestoreNuGetPackagesClassic" Outputs="%(VisualStudioVersionClassic.Identity)">
 		<ItemGroup>
 			<ProjectToBuild Remove="@(ProjectToBuild)"/>
-			<ProjectToBuild Include="%(VisualStudioVersion.SolutionFile)">
-				<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersion.VisualStudioVersion)</Properties>
+			<ProjectToBuild Include="%(VisualStudioVersionClassic.SolutionFile)">
+				<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersionClassic.VisualStudioVersion)</Properties>
 			</ProjectToBuild>
 		</ItemGroup>
-		<MSBuild Projects="@(ProjectToBuild)" ToolsVersion="%(VisualStudioVersion.ToolsVersion)" Targets="Rebuild"/>
-	</Target>
-	<Target Name="Package" DependsOnTargets="CreateNuGetPackage;CreateBinPackage;GenerateHelpFile"/>
-	<Target Name="CreateNuGetPackage" DependsOnTargets="CopyBuildOutputToPackage">
-		<Exec Command="$(NuGetExe) pack $(MSBuildThisFileDirectory)nuget\SSH.NET.nuspec -OutputDirectory &quot;$(MSBuildThisFileDirectory)target&quot; -BasePath &quot;$(MSBuildThisFileDirectory)target\package&quot; -NonInteractive"/>
+		<MSBuild Projects="@(ProjectToBuild)" ToolsVersion="%(VisualStudioVersionClassic.ToolsVersion)" Targets="Rebuild"/>
 	</Target>
-	<Target Name="CopyBuildOutputToPackage" Outputs="%(TargetFramework.Identity)">
+	
+	<Target Name="BuildModern" DependsOnTargets="RestoreNuGetPackagesModern" Outputs="%(VisualStudioVersionModern.Identity)">
 		<ItemGroup>
-			<BuildOutput Remove="@(BuildOutput)"/>
-			<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFramework.OutputDirectory)\Renci.SshNet.dll"/>
-			<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFramework.OutputDirectory)\Renci.SshNet.xml"/>
+			<ProjectToBuild Remove="@(ProjectToBuild)"/>
+			<ProjectToBuild Include="%(VisualStudioVersionModern.SolutionFile)">
+				<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersionModern.VisualStudioVersion)</Properties>
+			</ProjectToBuild>
 		</ItemGroup>
-		<Copy SourceFiles="@(BuildOutput)" DestinationFolder="$(MSBuildThisFileDirectory)target\package\lib\%(TargetFramework.Moniker)"/>
+		<MSBuild Projects="@(ProjectToBuild)" ToolsVersion="%(VisualStudioVersionModern.ToolsVersion)" Targets="Rebuild"/>
 	</Target>
+	
+	<Target Name="Package" DependsOnTargets="CreateNuGetPackage;CreateBinPackage;GenerateHelpFile"/>
+	
+	<Target Name="ValidatePackage" DependsOnTargets="ValidatePackageClassic;ValidatePackageModern"/>
+	
+	<Target Name="ValidatePackageClassic" DependsOnTargets="CheckNuGetPackageDirectory;CheckBinaryZipPackageDirectory" 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')"/>
+		<Error Text="The 'Renci.SshNet.dll' file is not available for %(TargetFrameworkClassic.Identity) in $(BinaryZipPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)" Condition="!Exists('$(BinaryZipPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)\Renci.SshNet.dll')"/>
+		<Error Text="The 'Renci.SshNet.xml' file is not available for %(TargetFrameworkClassic.Identity) in $(BinaryZipPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)" Condition="!Exists('$(BinaryZipPackageDirectory)\lib\%(TargetFrameworkClassic.Moniker)\Renci.SshNet.xml')"/>
+	</Target>
+
+	<Target Name="ValidatePackageModern" DependsOnTargets="CheckNuGetPackageDirectory;CheckBinaryZipPackageDirectory" 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')"/>
+		<Error Text="The 'Renci.SshNet.xml' file is not available for %(TargetFrameworkModern.Identity) in $(NuGetPackageDirectory)\lib\%(TargetFrameworkModern.Moniker)." Condition="!Exists('$(NuGetPackageDirectory)\lib\%(TargetFrameworkModern.Moniker)\Renci.SshNet.xml')"/>
+		<Error Text="The 'Renci.SshNet.dll' file is not available for %(TargetFrameworkModern.Identity) in $(BinaryZipPackageDirectory)\lib\%(TargetFrameworkModern.Moniker)." Condition="!Exists('$(BinaryZipPackageDirectory)\lib\%(TargetFrameworkModern.Moniker)\Renci.SshNet.dll')"/>
+		<Error Text="The 'Renci.SshNet.xml' file is not available for %(TargetFrameworkModern.Identity) in $(BinaryZipPackageDirectory)\lib\%(TargetFrameworkModern.Moniker)." Condition="!Exists('$(BinaryZipPackageDirectory)\lib\%(TargetFrameworkModern.Moniker)\Renci.SshNet.xml')"/>
+	</Target>
+	
+	<Target Name="CreateNuGetPackage" DependsOnTargets="ValidatePackage;CheckNuGetPackageDirectory;CheckReleaseVersion">
+		<Exec Command="$(NuGetExe) pack $(MSBuildThisFileDirectory)nuget\SSH.NET.nuspec -OutputDirectory &quot;$(MSBuildThisFileDirectory)target&quot; -Version &quot;$(ReleaseVersion)&quot; -Properties &quot;copyright=2012-$([System.DateTime]::Now.Year), RENCI&quot; -BasePath &quot;$(NuGetPackageDirectory)&quot; -NonInteractive"/>
+	</Target>
+	
 	<Target Name="GenerateHelpFile" DependsOnTargets="CheckReleaseVersion">
 		<Error Text="Please install Sandcastle, and ensure the SHFBFolder environment variable is set." Condition="'$(SHFBFolder)'==''"/>
 		<MSBuild Projects="$(MSBuildThisFileDirectory)sandcastle\SSH.NET.shfbproj"/>
 		<Move SourceFiles="$(MSBuildThisFileDirectory)target\help\SshNet.Help.chm" DestinationFiles="$(MSBuildThisFileDirectory)target\SSH.NET-$(ReleaseVersion)-help.chm"/>
 	</Target>
-	<Target Name="CopyBuildOutputToBin" Outputs="%(TargetFramework.Identity)">
+
+	<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)"/>
-			<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFramework.OutputDirectory)\*.dll"/>
-			<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFramework.OutputDirectory)\*.xml"/>
+			<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFrameworkModern.OutputDirectory)\Renci.SshNet.dll"/>
+			<BuildOutput Include="$(MSBuildThisFileDirectory)..\src\%(TargetFrameworkModern.OutputDirectory)\Renci.SshNet.xml"/>
 		</ItemGroup>
-		<Copy SourceFiles="@(BuildOutput)" DestinationFolder="$(MSBuildThisFileDirectory)target\bin\lib\%(TargetFramework.Moniker)"/>
+		<Copy SourceFiles="@(BuildOutput)" DestinationFolder="$(NuGetPackageDirectory)\lib\%(TargetFrameworkModern.Moniker)"/>
 	</Target>
-	<Target Name="CreateBinPackage" DependsOnTargets="PrepareMSBuildTasksPackage;CopyBuildOutputToBin;CheckReleaseVersion">
+	
+	<Target Name="CreateBinPackage" DependsOnTargets="PrepareMSBuildTasksPackage;ValidatePackage;CheckReleaseVersion;CheckBinaryZipPackageDirectory">
 		<ItemGroup>
 			<Files Remove="@(Files)"/>
 			<Files Include="$(MSBuildThisFileDirectory)..\LICENSE"/>
+			<Files Include="$(MSBuildThisFileDirectory)..\THIRD-PARTY-NOTICES.TXT"/>
 		</ItemGroup>
-		<Copy SourceFiles="@(Files)" DestinationFolder="$(MSBuildThisFileDirectory)target\bin\%(RecursiveDir)"/>
+		<Copy SourceFiles="@(Files)" DestinationFolder="$(BinaryZipPackageDirectory)\%(RecursiveDir)"/>
 		<ItemGroup>
 			<Files Remove="@(Files)"/>
-			<Files Include="$(MSBuildThisFileDirectory)target\bin\**"/>
+			<Files Include="$(BinaryZipPackageDirectory)\**"/>
 		</ItemGroup>
-		<Zip ZipFileName="$(MSBuildThisFileDirectory)target\SSH.NET-$(ReleaseVersion)-bin.zip" Files="@(Files)" WorkingDirectory="$(MSBuildThisFileDirectory)target\bin"/>
+		<Zip ZipFileName="$(MSBuildThisFileDirectory)target\SSH.NET-$(ReleaseVersion)-bin.zip" Files="@(Files)" WorkingDirectory="$(BinaryZipPackageDirectory)"/>
+	</Target>
+	
+	<Target Name="DownloadNuGet">
+		<MakeDir Directories="$(MSBuildThisFileDirectory)target\nuget"/>
+		<DownloadFile
+			Address="https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
+			FileName="$(MSBuildThisFileDirectory)target\nuget\nuget.exe"/>
 	</Target>
 	<Target Name="PrepareMSBuildTasksPackage" DependsOnTargets="DownloadNuGet">
 		<Exec Command="$(NuGetExe) install $(MSBuildTasksPackageId) -Version $(MSBuildTasksPackageVersion) -OutputDirectory &quot;$(MSBuildThisFileDirectory)target\nuget\packages&quot; -Verbosity quiet"/>
 	</Target>
+	
 	<Target Name="CheckReleaseVersion" Condition="'$(ReleaseVersion)'==''">
 		<Error Text= "Please specify the version number of the release (using the &quot;ReleaseVersion&quot; property)."/>
 	</Target>
+	
+	<Target Name="CheckNuGetPackageDirectory" DependsOnTargets="CheckReleaseVersion">
+		<PropertyGroup>
+			<NuGetPackageDirectory>$(MSBuildThisFileDirectory)target\nuget-$(ReleaseVersion)</NuGetPackageDirectory>
+		</PropertyGroup>
+	</Target>
+
+	<Target Name="CheckBinaryZipPackageDirectory" DependsOnTargets="CheckReleaseVersion">
+		<PropertyGroup>
+			<BinaryZipPackageDirectory>$(MSBuildThisFileDirectory)target\bin-$(ReleaseVersion)</BinaryZipPackageDirectory>
+		</PropertyGroup>
+	</Target>
+	
 	<UsingTask TaskName="DownloadFile" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
 		<ParameterGroup>
 			<Address ParameterType="System.String" Required="true"/>

+ 3 - 3
build/nuget/SSH.NET.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
         <id>SSH.NET</id>
-        <version>2017.0.0-beta1</version>
+        <version>$version$</version>
         <title>SSH.NET</title>
         <authors>Renci</authors>
         <owners>olegkap,drieseng</owners>
@@ -10,9 +10,9 @@
         <projectUrl>https://github.com/sshnet/SSH.NET/</projectUrl>
         <requireLicenseAcceptance>false</requireLicenseAcceptance>
         <description>SSH.NET is a Secure Shell (SSH) library for .NET, optimized for parallelism and with broad framework support.</description>
-        <releaseNotes>https://github.com/sshnet/SSH.NET/releases/tag/2017.0.0-beta1</releaseNotes>
+        <releaseNotes>https://github.com/sshnet/SSH.NET/releases/tag/$version$</releaseNotes>
         <summary>A Secure Shell (SSH) library for .NET, optimized for parallelism.</summary>
-        <copyright>2012-2017, RENCI</copyright>
+        <copyright>$copyright$</copyright>
         <language>en-US</language>
         <tags>ssh scp sftp</tags>
         <dependencies>