Skip to content

WIP Use early preview of .Net Core 3.0#8370

Merged
SteveL-MSFT merged 74 commits intoPowerShell:netcore30from
bergmeister:netcore3.0
Apr 19, 2019
Merged

WIP Use early preview of .Net Core 3.0#8370
SteveL-MSFT merged 74 commits intoPowerShell:netcore30from
bergmeister:netcore3.0

Conversation

@bergmeister
Copy link
Contributor

@bergmeister bergmeister commented Nov 30, 2018

PR Summary

There are only 1 failing test on Windows due to Compatibility section in application manifest not being embedded in pwsh.exe (https://github.com/dotnet/core-setup/issues/4963).

.Net Core 3.0 adds one reference assembly and also a .nupkg.metadata file for each shipped module containing the hash, which I ignore for the installer.

Removed dependency on rcedit to embed manifest and update assembly file properties as .Net Core 3.0 SDK supports same capabilities from csproj file. Due to this change, the fileversion and productversion embedded as rouces in pwsh.exe has changed to their desired format defined in the csproj. Tests were updated to account for this difference.

.Net Core 3.0 supports writing to reserved device names (like CON which writes to the console as expected; didn't test COM or LPT but presumably they would write to the COM and printer ports), so updated code to only check for CLOCK$ as a reserved device name.

Breaking Change By default, long paths are returned by the FileSystemProvider whereas before, it would retain the short path. This change is due to a change in .Net Core 3.0 behavior related to long paths which invalidated existing tests that used $TestDrive which is built from $env:TEMP which has a short path (if the username is > 8 characters which is the case on AzPipelines for Windows).

PR Checklist

… to problems, they have stopped supporting it, therefore use dotnet test as an alternative

xunit/xunit#1675
https://xunit.github.io/releases/2.4
…o netcore2.2

# Conflicts:
#	build.psm1
#	test/hosting/hosting.tests.csproj
…o netcore2.2

Conflicts auto-resolved by Tortoise-Git (white space problem only)
# Conflicts:
#	assets/files.wxs
…ccore and sos due to the upgrade from preview2 to preview3
@SteveL-MSFT
Copy link
Member

crossgen is returning exit code 139 on Linux and macOS which causes CI to fail. Created https://github.com/dotnet/coreclr/issues/22276

…o netcore3.0

# Conflicts:
#	assets/files.wxs
#	build.psm1
…o netcore3.0

Mainly resolved by keeping the version of the branch due to the runtime update
# Conflicts:
#	PowerShell.Common.props
#	assets/files.wxs
#	global.json
#	test/Test.Common.props
#	test/tools/WebListener/WebListener.csproj
@SteveL-MSFT
Copy link
Member

Reverted attempt to move to newer 3.0 release since it caused more problems

@bergmeister
Copy link
Contributor Author

We should try the new preview3 that got published yesterday

@iSazonov
Copy link
Collaborator

iSazonov commented Mar 8, 2019

Since 6.2-GA was forked we can actively work on the PR.
I think we need rebase and then move to 3.0-Preview3.

@bergmeister
Copy link
Contributor Author

bergmeister commented Mar 8, 2019

I tried to update to preview3 locally but unless I made a mistake, I cannot even do a dotnet restore. It seems there are no matching Asp.Net Core Nuget packages. The version available on NuGet here is only version 3.0.0-preview3-19153-02 and does not match the requirements of projects depending on it. I get lots of errors similar to this:

C:\PowerShell\src\Microsoft.PowerShell.SDK\Microsoft.PowerShell.SDK.csproj : error NU1603: Microsoft.PowerShell.SDK depends on runtime.win-x64.Microsoft.AspNetCore.App (>= 3.0.0-preview3-27503-5) but runtime.win-x64.Microsoft.AspNetCore.App 3.0.0-preview3-27503-5 was not found. An approximate best match of runtime.win-x64.Microsoft.AspNetCore.App 3.0.0-preview4-19121-08 was resolved. [C:\PowerShell\src\powershell-win-core\powershell-win-core.csproj]
....
C:\PowerShell\src\powershell-win-core\powershell-win-core.csproj : error NU1603: pwsh depends on runtime.win-x64.Microsoft.AspNetCore.App (>= 3.0.0-preview3-27503-5) but runtime.win-x64.Microsoft.AspNetCore.App 3.0.0-preview3-27503-5 was not found. An approximate best match of runtime.win-x64.Microsoft.AspNetCore.App 3.0.0-preview4-19121-08 was resolved.

To me this looks like the Asp.Net Core Team needs to publish a newer preview3 version of their Microsoft.AspNetCore.App Nuget package to fulfill those requirements. Do you know more details @DamianEdwards ?
I pushed to a temporary branch here in this commit, the build here shows the same symptoms that I see locally.

@iSazonov
Copy link
Collaborator

iSazonov commented Mar 8, 2019

I wonder how we depend on Microsoft.AspNetCore.App?

…o netcore3.0

# Conflicts:
#	assets/files.wxs
@PowerShell PowerShell deleted a comment from PoshChan Mar 28, 2019
@PowerShell PowerShell deleted a comment from PoshChan Mar 28, 2019
@PowerShell PowerShell deleted a comment from PoshChan-Staging Mar 28, 2019
@PowerShell PowerShell deleted a comment from PoshChan-Staging Mar 28, 2019
@PowerShell PowerShell deleted a comment from PoshChan-Staging Mar 28, 2019
@fMichaleczek
Copy link
Contributor

fMichaleczek commented Apr 12, 2019

@bergmeister I try to compile your .net v3 branch and found the same symptom.

If I remove 'RuntimeFrameworkVersion' on PowerShell.Common.props and Test.Common.props , it lets me compile.

I also rollback your change to Microsoft.WindowsDesktop.App
branch:netcore3.0_preview3

dotnet.exe -info

.NET Core runtimes installed:
  Microsoft.AspNetCore.App 3.0.0-preview3-19153-02 [c:\program files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.0.0-preview3-27503-5 [c:\program files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.0.0-preview3-27504-2 [c:\program files\dotnet\shared\Microsoft.WindowsDesktop.App]

There is a version's conflict between all Microsoft.*.App runtimes and PowerShell.Common.props
I read all previous what's news about dotnet and aspnet, i don't found anything interesting.

@bergmeister
Copy link
Contributor Author

@fMichaleczek At the moment we are waiting for preview4 to fix problems like that. If you want to try out a working version of netcore3 you could try using a daily build or checkout one of the older commits on this branch that used preview1 or preview2

@SteveL-MSFT
Copy link
Member

Looks like Preview.4 just became available, I'll move the build to that version

@SteveL-MSFT SteveL-MSFT changed the base branch from master to netcore30 April 19, 2019 01:20
@SteveL-MSFT
Copy link
Member

Moving this to a working branch on PS/PS

@SteveL-MSFT SteveL-MSFT merged commit a27e92b into PowerShell:netcore30 Apr 19, 2019
@TravisEz13 TravisEz13 added this to the 7.0.0-preview.1 milestone Apr 23, 2019
@TravisEz13 TravisEz13 added the CL-Engine Indicates that a PR should be marked as an engine change in the Change Log label Apr 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CL-Engine Indicates that a PR should be marked as an engine change in the Change Log

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants