Skip to content

Commit 1a732c8

Browse files
committed
Update to .NET SDK 2.0
This change updates the build script to use the newly released .NET SDK 2.0. dotnet CLI 2.0 now restores package dependencies implicitly so all restore logic has been taken out of the build script. The test projects have also been updated to use xUnit 2.3 and their new `dotnet xunit` runner.
1 parent 8a6a0c2 commit 1a732c8

File tree

10 files changed

+29
-55
lines changed

10 files changed

+29
-55
lines changed

PowerShellEditorServices.Common.props

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
<RepositoryType>git</RepositoryType>
1010
<RepositoryUrl>https://github.com/PowerShell/PowerShellEditorServices</RepositoryUrl>
1111
<DebugType>portable</DebugType>
12+
<RuntimeFrameworkVersion>1.0.3</RuntimeFrameworkVersion>
1213
</PropertyGroup>
13-
</Project>
14+
</Project>

PowerShellEditorServices.build.ps1

+12-22
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ if ($PSVersionTable.PSEdition -ne "Core") {
1818
Add-Type -Assembly System.IO.Compression.FileSystem
1919
}
2020

21-
task SetupDotNet -Before Restore, Clean, Build, TestHost, TestServer, TestProtocol, TestPowerShellApi, PackageNuGet {
21+
task SetupDotNet -Before Clean, Build, TestHost, TestServer, TestProtocol, TestPowerShellApi, PackageNuGet {
2222

23-
$requiredSdkVersion = "1.0.0"
23+
$requiredSdkVersion = "2.0.0"
2424

2525
$dotnetPath = "$PSScriptRoot/.dotnet"
2626
$dotnetExePath = if ($script:IsUnix) { "$dotnetPath/dotnet" } else { "$dotnetPath/dotnet.exe" }
@@ -54,7 +54,7 @@ task SetupDotNet -Before Restore, Clean, Build, TestHost, TestServer, TestProtoc
5454

5555
# Download the official installation script and run it
5656
$installScriptPath = "$([System.IO.Path]::GetTempPath())dotnet-install.$installScriptExt"
57-
Invoke-WebRequest "https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0-rc3/scripts/obtain/dotnet-install.$installScriptExt" -OutFile $installScriptPath
57+
Invoke-WebRequest "https://raw.githubusercontent.com/dotnet/cli/v2.0.0/scripts/obtain/dotnet-install.$installScriptExt" -OutFile $installScriptPath
5858
$env:DOTNET_INSTALL_DIR = "$PSScriptRoot/.dotnet"
5959

6060
if (!$script:IsUnix) {
@@ -81,19 +81,6 @@ task SetupDotNet -Before Restore, Clean, Build, TestHost, TestServer, TestProtoc
8181
Write-Host "`n### Using dotnet v$requiredSDKVersion at path $script:dotnetExe`n" -ForegroundColor Green
8282
}
8383

84-
function NeedsRestore($rootPath) {
85-
# This checks to see if the number of folders under a given
86-
# path (like "src" or "test") is greater than the number of
87-
# obj\project.assets.json files found under that path, implying
88-
# that those folders have not yet been restored.
89-
$projectAssets = (Get-ChildItem "$rootPath\*\obj\project.assets.json")
90-
return ($projectAssets -eq $null) -or ((Get-ChildItem $rootPath).Length -gt $projectAssets.Length)
91-
}
92-
93-
task Restore -If { "Restore" -in $BuildTask -or (NeedsRestore(".\src")) -or (NeedsRestore(".\test")) } -Before Clean, Build, Test {
94-
exec { & $script:dotnetExe restore }
95-
}
96-
9784
task Clean {
9885
exec { & $script:dotnetExe clean }
9986
Remove-Item $PSScriptRoot\module\PowerShellEditorServices\bin -Recurse -Force -ErrorAction Ignore
@@ -126,9 +113,6 @@ task GetProductVersion -Before PackageNuGet, PackageModule, UploadArtifacts {
126113
}
127114

128115
function BuildForPowerShellVersion($version) {
129-
# Restore packages for the specified version
130-
exec { & $script:dotnetExe restore .\src\PowerShellEditorServices\PowerShellEditorServices.csproj /p:PowerShellVersion=$version }
131-
132116
Write-Host -ForegroundColor Green "`n### Testing API usage for PowerShell $version...`n"
133117
exec { & $script:dotnetExe build -f net451 .\src\PowerShellEditorServices\PowerShellEditorServices.csproj /p:PowerShellVersion=$version }
134118
}
@@ -168,15 +152,21 @@ function UploadTestLogs {
168152
task Test TestServer,TestProtocol,TestHost
169153

170154
task TestServer -If { !$script:IsUnix } {
171-
exec { & $script:dotnetExe test -c $Configuration -f net452 .\test\PowerShellEditorServices.Test\PowerShellEditorServices.Test.csproj }
155+
Set-Location .\test\PowerShellEditorServices.Test\
156+
exec { & $script:dotnetExe build -c $Configuration -f net452 }
157+
exec { & $script:dotnetExe xunit -configuration $Configuration -framework net452 -verbose -nobuild }
172158
}
173159

174160
task TestProtocol -If { !$script:IsUnix} {
175-
exec { & $script:dotnetExe test -c $Configuration -f net452 .\test\PowerShellEditorServices.Test.Protocol\PowerShellEditorServices.Test.Protocol.csproj }
161+
Set-Location .\test\PowerShellEditorServices.Test.Protocol\
162+
exec { & $script:dotnetExe build -c $Configuration -f net452 }
163+
exec { & $script:dotnetExe xunit -configuration $Configuration -framework net452 -verbose -nobuild }
176164
}
177165

178166
task TestHost -If { !$script:IsUnix} {
179-
exec { & $script:dotnetExe test -c $Configuration -f net452 .\test\PowerShellEditorServices.Test.Host\PowerShellEditorServices.Test.Host.csproj }
167+
Set-Location .\test\PowerShellEditorServices.Test.Host\
168+
exec { & $script:dotnetExe build -c $Configuration -f net452 }
169+
exec { & $script:dotnetExe xunit -configuration $Configuration -framework net452 -verbose -nobuild -x86 }
180170
}
181171

182172
task CITest (job Test -Safe), {

src/PowerShellEditorServices.Channel.WebSocket/PowerShellEditorServices.Channel.WebSocket.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
<AssemblyTitle>PowerShell Editor Services WebSocket Protocol Channel</AssemblyTitle>
66
<TargetFramework>net451</TargetFramework>
77
<AssemblyName>Microsoft.PowerShell.EditorServices.Channel.WebSocket</AssemblyName>
8-
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.6' ">$(PackageTargetFallback);dnxcore50;portable-net45+win8</PackageTargetFallback>
98
</PropertyGroup>
109

1110
<ItemGroup Condition=" '$(TargetFramework)' == 'net451' ">

src/PowerShellEditorServices.Host/PowerShellEditorServices.Host.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
<Description>Provides a process for hosting the PowerShell Editor Services library exposed by a JSON message protocol.</Description>
77
<TargetFrameworks>net451;netstandard1.6</TargetFrameworks>
88
<AssemblyName>Microsoft.PowerShell.EditorServices.Host</AssemblyName>
9-
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.6' ">$(PackageTargetFallback);dnxcore50;portable-net45+win8</PackageTargetFallback>
109
</PropertyGroup>
1110

1211
<ItemGroup>

src/PowerShellEditorServices.Protocol/PowerShellEditorServices.Protocol.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
<Description>Provides message types and client/server APIs for the PowerShell Editor Services JSON protocol.</Description>
77
<TargetFrameworks>net451;netstandard1.6</TargetFrameworks>
88
<AssemblyName>Microsoft.PowerShell.EditorServices.Protocol</AssemblyName>
9-
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.6' ">$(PackageTargetFallback);dnxcore50;portable-net45+win8</PackageTargetFallback>
109
</PropertyGroup>
1110

1211
<ItemGroup>

src/PowerShellEditorServices.VSCode/PowerShellEditorServices.VSCode.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
<Description>Provides added functionality to PowerShell Editor Services for the Visual Studio Code editor.</Description>
77
<TargetFrameworks>net451;netstandard1.6</TargetFrameworks>
88
<AssemblyName>Microsoft.PowerShell.EditorServices.VSCode</AssemblyName>
9-
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.6' ">$(PackageTargetFallback);dnxcore50;portable-net45+win8</PackageTargetFallback>
109
</PropertyGroup>
1110

1211
<!-- Fail the release build if there are missing public API documentation comments -->

test/PowerShellEditorServices.Test.Host/PowerShellEditorServices.Test.Host.csproj

+4-9
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), PowerShellEditorServices.Common.props))\PowerShellEditorServices.Common.props" />
33

44
<PropertyGroup>
5-
<TargetFrameworks>net452;netstandard1.6</TargetFrameworks>
5+
<TargetFrameworks>net452;netcoreapp2.0</TargetFrameworks>
66
<AssemblyName>Microsoft.PowerShell.EditorServices.Test.Host</AssemblyName>
7-
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.6' ">$(PackageTargetFallback);dnxcore50;portable-net45+win8</PackageTargetFallback>
87
</PropertyGroup>
98

109
<ItemGroup>
@@ -20,18 +19,14 @@
2019
</ItemGroup>
2120

2221
<ItemGroup>
23-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0-*" />
24-
<PackageReference Include="Microsoft.TestPlatform.TestHost">
25-
<Version>15.0.0-*</Version>
26-
</PackageReference>
27-
<PackageReference Include="xunit" Version="2.2.0" />
28-
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
2922
<PackageReference Include="Microsoft.PowerShell.SDK">
3023
<Version>6.0.0-alpha13</Version>
3124
</PackageReference>
25+
<PackageReference Include="xunit" Version="2.3.0-beta4-build3742" />
26+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0-beta4-build3742" />
3227
</ItemGroup>
3328

34-
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.6' ">
29+
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">
3530
<DefineConstants>$(DefineConstants);CoreCLR</DefineConstants>
3631
</PropertyGroup>
3732

test/PowerShellEditorServices.Test.Protocol/PowerShellEditorServices.Test.Protocol.csproj

+6-8
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), PowerShellEditorServices.Common.props))\PowerShellEditorServices.Common.props" />
33

44
<PropertyGroup>
5-
<TargetFrameworks>net452;netstandard1.6</TargetFrameworks>
5+
<TargetFrameworks>net452;netcoreapp2.0</TargetFrameworks>
66
<AssemblyName>Microsoft.PowerShell.EditorServices.Test.Protocol</AssemblyName>
7-
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.6' ">$(PackageTargetFallback);dnxcore50;portable-net45+win8</PackageTargetFallback>
87
</PropertyGroup>
98

109
<ItemGroup>
@@ -13,18 +12,17 @@
1312
</ItemGroup>
1413

1514
<ItemGroup>
16-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0-*" />
17-
<PackageReference Include="Microsoft.TestPlatform.TestHost">
18-
<Version>15.0.0-*</Version>
15+
<PackageReference Include="Newtonsoft.Json">
16+
<Version>9.0.1</Version>
1917
</PackageReference>
20-
<PackageReference Include="xunit" Version="2.2.0" />
21-
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
2218
<PackageReference Include="Microsoft.PowerShell.SDK">
2319
<Version>6.0.0-alpha13</Version>
2420
</PackageReference>
21+
<PackageReference Include="xunit" Version="2.3.0-beta4-build3742" />
22+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0-beta4-build3742" />
2523
</ItemGroup>
2624

27-
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.6' ">
25+
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">
2826
<DefineConstants>$(DefineConstants);CoreCLR</DefineConstants>
2927
</PropertyGroup>
3028

test/PowerShellEditorServices.Test.Shared/PowerShellEditorServices.Test.Shared.csproj

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
<VersionPrefix>0.9.0-beta</VersionPrefix>
66
<TargetFrameworks>net452;netstandard1.6</TargetFrameworks>
77
<AssemblyName>Microsoft.PowerShell.EditorServices.Test.Shared</AssemblyName>
8-
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.6' ">$(PackageTargetFallback);dnxcore50;portable-net45+win8</PackageTargetFallback>
9-
</PropertyGroup>
8+
</PropertyGroup>
109

1110
<ItemGroup>
1211
<ProjectReference Include="..\..\src\PowerShellEditorServices\PowerShellEditorServices.csproj" />

test/PowerShellEditorServices.Test/PowerShellEditorServices.Test.csproj

+4-9
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), PowerShellEditorServices.Common.props))\PowerShellEditorServices.Common.props" />
33

44
<PropertyGroup>
5-
<TargetFrameworks>net452;netstandard1.6</TargetFrameworks>
5+
<TargetFrameworks>net452;netcoreapp2.0</TargetFrameworks>
66
<AssemblyName>Microsoft.PowerShell.EditorServices.Test</AssemblyName>
7-
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.6' ">$(PackageTargetFallback);dnxcore50;portable-net45+win8</PackageTargetFallback>
87
</PropertyGroup>
98

109
<ItemGroup>
@@ -13,18 +12,14 @@
1312
</ItemGroup>
1413

1514
<ItemGroup>
16-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0-*" />
17-
<PackageReference Include="Microsoft.TestPlatform.TestHost">
18-
<Version>15.0.0-*</Version>
19-
</PackageReference>
20-
<PackageReference Include="xunit" Version="2.2.0" />
21-
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
2215
<PackageReference Include="Microsoft.PowerShell.SDK">
2316
<Version>6.0.0-alpha13</Version>
2417
</PackageReference>
18+
<PackageReference Include="xunit" Version="2.3.0-beta4-build3742" />
19+
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0-beta4-build3742" />
2520
</ItemGroup>
2621

27-
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.6' ">
22+
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">
2823
<DefineConstants>$(DefineConstants);CoreCLR</DefineConstants>
2924
</PropertyGroup>
3025

0 commit comments

Comments
 (0)