Skip to content

Commit 3d81a2f

Browse files
committed
Also clean Visual Studio projects.
Specify both the ToolsVersion and VisualStudioVersion to use to build solutions. This is necessary to build UAP project using MSBuild 15.* (which we need to build the .NETCore/.NETStandard project).
1 parent f40677c commit 3d81a2f

1 file changed

Lines changed: 32 additions & 5 deletions

File tree

build/build.proj

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,18 @@
99
<ItemGroup>
1010
<VisualStudioVersion Include="2012">
1111
<SolutionFile>$(MSBuildThisFileDirectory)..\src\SshNet.Security.Cryptography.VS2012.sln</SolutionFile>
12+
<ToolsVersion>14.0</ToolsVersion>
13+
<VisualStudioVersion>14.0</VisualStudioVersion>
1214
</VisualStudioVersion>
1315
<VisualStudioVersion Include="2015">
1416
<SolutionFile>$(MSBuildThisFileDirectory)..\src\SshNet.Security.Cryptography.VS2015.sln</SolutionFile>
17+
<ToolsVersion>14.0</ToolsVersion>
18+
<VisualStudioVersion>14.0</VisualStudioVersion>
19+
</VisualStudioVersion>
20+
<VisualStudioVersion Include="2017">
21+
<SolutionFile>$(MSBuildThisFileDirectory)..\src\SshNet.Security.Cryptography.VS2017.sln</SolutionFile>
22+
<ToolsVersion>15.0</ToolsVersion>
23+
<VisualStudioVersion>15.0</VisualStudioVersion>
1524
</VisualStudioVersion>
1625
</ItemGroup>
1726
<ItemGroup>
@@ -52,18 +61,33 @@
5261
<Moniker>portable-net45+win8+wpa81</Moniker>
5362
</TargetFramework>
5463
<TargetFramework Include=".NETStandard 1.0">
55-
<OutputDirectory>SshNet.Security.Cryptography.NETCore\bin\$(Configuration)\netstandard1.0</OutputDirectory>
64+
<OutputDirectory>SshNet.Security.Cryptography.NETStandard\bin\$(Configuration)\netstandard1.0</OutputDirectory>
5665
<Moniker>netstandard1.0</Moniker>
5766
</TargetFramework>
5867
<TargetFramework Include=".NETStandard 1.3">
59-
<OutputDirectory>SshNet.Security.Cryptography.NETCore\bin\$(Configuration)\netstandard1.3</OutputDirectory>
68+
<OutputDirectory>SshNet.Security.Cryptography.NETStandard\bin\$(Configuration)\netstandard1.3</OutputDirectory>
6069
<Moniker>netstandard1.3</Moniker>
6170
</TargetFramework>
71+
<TargetFramework Include=".NETStandard 2.0">
72+
<OutputDirectory>SshNet.Security.Cryptography.NETStandard\bin\$(Configuration)\netstandard2.0</OutputDirectory>
73+
<Moniker>netstandard2.0</Moniker>
74+
</TargetFramework>
6275
</ItemGroup>
63-
<Target Name="Clean">
76+
<Target Name="Clean" DependsOnTargets="CleanSolution">
6477
<RemoveDir Directories="$(MSBuildThisFileDirectory)target"/>
6578
</Target>
6679

80+
<Target Name="CleanSolution" Outputs="%(VisualStudioVersion.Identity)">
81+
82+
<ItemGroup>
83+
<ProjectToBuild Remove="@(ProjectToBuild)"/>
84+
<ProjectToBuild Include="%(VisualStudioVersion.SolutionFile)">
85+
<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersion.VisualStudioVersion)</Properties>
86+
</ProjectToBuild>
87+
</ItemGroup>
88+
<MSBuild Projects="@(ProjectToBuild)" ToolsVersion="%(VisualStudioVersion.ToolsVersion)" Targets="Clean"/>
89+
</Target>
90+
6791
<Target Name="DownloadNuGet">
6892
<MakeDir Directories="$(MSBuildThisFileDirectory)target\nuget"/>
6993
<DownloadFile
@@ -77,13 +101,16 @@
77101
</Target>
78102

79103
<Target Name="Build" DependsOnTargets="RestoreNuGetPackages" Outputs="%(VisualStudioVersion.Identity)">
104+
<Message Text="VisualStudioVersion=$(VisualStudioVersion)" Importance="High"/>
105+
<Message Text="MSBuildToolsVersion=$(MSBuildToolsVersion)" Importance="High"/>
106+
80107
<ItemGroup>
81108
<ProjectToBuild Remove="@(ProjectToBuild)"/>
82109
<ProjectToBuild Include="%(VisualStudioVersion.SolutionFile)">
83-
<Properties>Configuration=Release</Properties>
110+
<Properties>Configuration=Release;VisualStudioVersion=%(VisualStudioVersion.VisualStudioVersion)</Properties>
84111
</ProjectToBuild>
85112
</ItemGroup>
86-
<MSBuild Projects="@(ProjectToBuild)" Targets="Rebuild"/>
113+
<MSBuild Projects="@(ProjectToBuild)" ToolsVersion="%(VisualStudioVersion.ToolsVersion)" Targets="Rebuild"/>
87114
</Target>
88115

89116
<Target Name="CreatePackage" DependsOnTargets="CopyBuildOutputToPackage">

0 commit comments

Comments
 (0)