3
3
<PropertyGroup >
4
4
<Configuration Condition =" '$(Configuration)' == ''" >Release</Configuration >
5
5
<BuildRoot >$(MSBuildThisFileDirectory)</BuildRoot >
6
- <NuGetExe >$(BuildRoot)nuget\nuget.exe</NuGetExe >
6
+ <NuGetExe >$(BuildRoot)target\ nuget\nuget.exe</NuGetExe >
7
7
<MSBuildCommunityTasksPath >$(MSBuildThisFileDirectory)msbuild</MSBuildCommunityTasksPath >
8
8
</PropertyGroup >
9
+ <ItemGroup >
10
+ <VisualStudioVersion Include =" 2012" >
11
+ <SolutionFile >$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2012.sln</SolutionFile >
12
+ </VisualStudioVersion >
13
+ <VisualStudioVersion Include =" 2015" >
14
+ <SolutionFile >$(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2015.sln</SolutionFile >
15
+ </VisualStudioVersion >
16
+ </ItemGroup >
9
17
<ItemGroup >
10
18
<TargetFramework Include =" .NET Framework 3.5" >
11
- <Project >Renci.SshNet.NET35</ Project >
19
+ <OutputDirectory >Renci.SshNet.NET35\bin\$(Configuration)</ OutputDirectory >
12
20
<Moniker >net35</Moniker >
13
21
</TargetFramework >
14
22
<TargetFramework Include =" .NET Framework 4.0" >
15
- <Project >Renci.SshNet</ Project >
23
+ <OutputDirectory >Renci.SshNet\bin\$(Configuration)</ OutputDirectory >
16
24
<Moniker >net40</Moniker >
17
25
</TargetFramework >
18
- <TargetFramework Include =" Windows Phone 7.1" >
19
- <Project >Renci.SshNet.WindowsPhone</ Project >
20
- <Moniker >sl4-windowsphone71 </Moniker >
26
+ <TargetFramework Include =" Windows Phone Silverlight 7.1" >
27
+ <OutputDirectory >Renci.SshNet.WindowsPhone\bin\$(Configuration)</ OutputDirectory >
28
+ <Moniker >wp71 </Moniker >
21
29
</TargetFramework >
22
- <TargetFramework Include =" Windows Phone 8.0" >
23
- <Project >Renci.SshNet.WindowsPhone8</ Project >
24
- <Moniker >windowsphone8 </Moniker >
30
+ <TargetFramework Include =" Windows Phone Silverlight 8.0" >
31
+ <OutputDirectory >Renci.SshNet.WindowsPhone8\bin\$(Configuration)</ OutputDirectory >
32
+ <Moniker >wp8 </Moniker >
25
33
</TargetFramework >
26
34
<TargetFramework Include =" Silverlight 4" >
27
- <Project >Renci.SshNet.Silverlight</ Project >
35
+ <OutputDirectory >Renci.SshNet.Silverlight\bin\$(Configuration)</ OutputDirectory >
28
36
<Moniker >sl4</Moniker >
29
37
</TargetFramework >
30
38
<TargetFramework Include =" Silverlight 5" >
31
- <Project >Renci.SshNet.Silverlight5</ Project >
39
+ <OutputDirectory >Renci.SshNet.Silverlight5\bin\$(Configuration)</ OutputDirectory >
32
40
<Moniker >sl5</Moniker >
33
41
</TargetFramework >
42
+ <TargetFramework Include =" Universal Windows Platform 10" >
43
+ <OutputDirectory >Renci.SshNet.UAP10\bin\$(Configuration)</OutputDirectory >
44
+ <Moniker >uap10</Moniker >
45
+ </TargetFramework >
34
46
</ItemGroup >
35
47
<Import Project =" $(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.Targets" />
36
48
<Target Name =" Clean" >
37
49
<RemoveDir Directories =" $(MSBuildThisFileDirectory)target" />
50
+ <ItemGroup >
51
+ <ProjectToBuild Remove =" @(ProjectToBuild)" />
52
+ <ProjectToBuild Include =" %(VisualStudioVersion.SolutionFile)" >
53
+ <Properties >Configuration=Release</Properties >
54
+ </ProjectToBuild >
55
+ </ItemGroup >
56
+ <MSBuild Projects =" @(ProjectToBuild)" Targets =" Clean" />
38
57
</Target >
39
-
40
- <Target Name =" Build" >
58
+ <Target Name =" DownloadNuGet" >
59
+ <MakeDir Directories =" $(MSBuildThisFileDirectory)target\nuget" />
60
+ <DownloadFile
61
+ Address=" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
62
+ FileName=" $(MSBuildThisFileDirectory)target\nuget\nuget.exe" />
63
+ </Target >
64
+ <Target Name =" RestoreNuGetPackages" DependsOnTargets =" DownloadNuGet" Outputs =" %(VisualStudioVersion.Identity)" >
65
+ <Message Text =" Restoring nuget packages for '%(VisualStudioVersion.SolutionFile)'..." Importance =" High" />
66
+ <Exec Command =" $(NuGetExe) restore " %(VisualStudioVersion.SolutionFile)" " />
67
+ </Target >
68
+ <Target Name =" Build" DependsOnTargets =" RestoreNuGetPackages" Outputs =" %(VisualStudioVersion.Identity)" >
41
69
<ItemGroup >
42
- <ProjectToBuild Include =" $(MSBuildThisFileDirectory)..\src\Renci.SshNet.VS2012.sln" >
70
+ <ProjectToBuild Remove =" @(ProjectToBuild)" />
71
+ <ProjectToBuild Include =" %(VisualStudioVersion.SolutionFile)" >
43
72
<Properties >Configuration=Release</Properties >
44
73
</ProjectToBuild >
45
74
</ItemGroup >
46
75
<MSBuild Projects =" @(ProjectToBuild)" Targets =" Rebuild" />
47
76
</Target >
48
-
49
77
<Target Name =" CreatePackage" DependsOnTargets =" CopyBuildOutputToPackage" >
50
78
<Exec Command =" $(NuGetExe) pack $(MSBuildThisFileDirectory)nuget\SSH.NET.nuspec -OutputDirectory " $(MSBuildThisFileDirectory)target" -BasePath " $(MSBuildThisFileDirectory)target\package" -NonInteractive" />
51
79
</Target >
52
80
<Target Name =" CopyBuildOutputToPackage" DependsOnTargets =" Build" Outputs =" %(TargetFramework.Identity)" >
53
81
<ItemGroup >
54
82
<BuildOutput Remove =" @(BuildOutput)" />
55
- <BuildOutput Include =" $(MSBuildThisFileDirectory)..\src\%(TargetFramework.Project)\bin\$(Configuration )\Renci.SshNet.dll" />
56
- <BuildOutput Include =" $(MSBuildThisFileDirectory)..\src\%(TargetFramework.Project)\bin\$(Configuration )\Renci.SshNet.xml" />
83
+ <BuildOutput Include =" $(MSBuildThisFileDirectory)..\src\%(TargetFramework.OutputDirectory )\Renci.SshNet.dll" />
84
+ <BuildOutput Include =" $(MSBuildThisFileDirectory)..\src\%(TargetFramework.OutputDirectory )\Renci.SshNet.xml" />
57
85
</ItemGroup >
58
86
<Copy SourceFiles =" @(BuildOutput)" DestinationFolder =" $(MSBuildThisFileDirectory)target\package\lib\%(TargetFramework.Moniker)" />
59
87
</Target >
60
88
<Target Name =" GenerateHelpFile" DependsOnTargets =" Build" >
89
+ <Error Text =" Please install Sandcastle, and ensure the SHFBFolder environment variable is set." Condition =" '$(SHFBFolder)'==''" />
61
90
<MSBuild Projects =" $(MSBuildThisFileDirectory)sandcastle\SSH.NET.shfbproj" />
62
91
</Target >
63
92
72
101
ZipFileName=" $(MSBuildThisFileDirectory)target\Renci.SshNet.zip"
73
102
ZipLevel=" 9" />
74
103
</Target >
104
+ <UsingTask TaskName =" DownloadFile" TaskFactory =" CodeTaskFactory" AssemblyFile =" $(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
105
+ <ParameterGroup >
106
+ <Address ParameterType =" System.String" Required =" true" />
107
+ <FileName ParameterType =" System.String" Required =" true" />
108
+ </ParameterGroup >
109
+ <Task >
110
+ <Reference Include =" System" />
111
+ <Code Type =" Fragment" Language =" cs" >
112
+ <![CDATA[
113
+ new System.Net.WebClient().DownloadFile(Address, FileName);
114
+ ]]>
115
+ </Code >
116
+ </Task >
117
+ </UsingTask >
75
118
</Project >
0 commit comments