Conversation
|
I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label. |
mthalman
left a comment
There was a problem hiding this comment.
In addition to updating the template, the Dockerfiles need to be regenerated from the template. Please read the instructions for updating Dockerfiles.
|
@Benjie-Liu - Please sign the CLA. |
|
Can updating the https://github.com/microsoft/dotnet-framework-docker/blob/main/.github/ISSUE_TEMPLATE/releases/patch-tuesday-release.md to include a Roslyn update step be included in this PR? |
|
Do we understand the use case of this Roslyn package in our docker containers? This package is from the compiler team... it is not the RoslynCodeDomProvider from the ASP.Net team which would be included as part of the web app being deployed in the container. That package is logically coupled with a particular version of Microsoft.Net.Compilers, which is why its versioning changed in the latest release to reflect the MS.Net.Compilers version it is tied to. In these Dockerfiles, we do set the environment variable that RoslynCodeDomProvider looks for to locate the roslyn tools. So we are effecitvely changing the Roslyn version out from under any app that uses the RoslynCodeDomProvider package, whether they are still on the 2.0.1 train or they have updated to the 3.6 package. Now, I'm not aware of any compat issues that might arise from using the 2.0.1 RoslynCodeDomProvider package with the 3.6 compilers, or vice versa (3.6 codedom provider with the 2.9 compilers), but we haven't really tested that scenario, and I believe mixing compiler versions with our codedom provider has always been an "at your own risk" sort of thing. With the way we are doing things here, we are most likely creating that situation for folks who aren't paying attention. |
|
@HongGit - Can you comment on the question from @StephenMolloy? It'd be good to have this understood and resolved before next month's release. |
|
Update the Dockerfiles as Steve and Hong discussed: Keep up the 2.9 compilers as before, add the Roslyn 3.6.0 installation and update the ROSLYN_COMPILER_LOCATION to the latest version C:\RoslynCompilers-3.6.0\tools. |
| @@ -15,15 +15,24 @@ RUN dism /Online /Quiet /Enable-Feature /All /FeatureName:IIS-WebServerRole {{if | |||
| {{if PRODUCT_VERSION != "3.5" | |||
| : | |||
| # Install Roslyn compilers | |||
There was a problem hiding this comment.
# Install 2.9.0 Roslyn compilers
There was a problem hiding this comment.
Updated the comments: # Install 2.9.0 Roslyn compilers
| @@ -17,17 +17,30 @@ RUN Add-WindowsFeature Web-Server; ` | |||
|
|
|||
| # Install Roslyn compilers | |||
There was a problem hiding this comment.
# Install 2.9.0 Roslyn compilers
|
As part of this work I would like to see a policy written down for the Roslyn versioning storing. What version(s) will be included and how/when it will get serviced/updated going forward. |
mthalman
left a comment
There was a problem hiding this comment.
In addition to the aspnet/Dockerfile template file, the aspnet/Dockerfile.pre20H2 template file also needs to be updated with the same changes.
| && %windir%\Microsoft.NET\Framework64\v4.0.30319\ngen install C:\RoslynCompilers\tools\VBCSCompiler.exe /ExeConfig:C:\RoslynCompilers\tools\VBCSCompiler.exe | ||
|
|
||
| ENV ROSLYN_COMPILER_LOCATION=C:\RoslynCompilers\tools | ||
| # Install 3.6.0 Roslyn compilers |
There was a problem hiding this comment.
Remove trailing space at end of line and regenerate affected Dockerfiles.
|
|
||
| ENV ROSLYN_COMPILER_LOCATION=C:\RoslynCompilers\tools | ||
| # Install 3.6.0 Roslyn compilers | ||
| RUN curl -fSLo microsoft.net.compilers.3.6.0.zip https://api.nuget.org/packages/microsoft.net.compilers.3.6.0.nupkg ` |
There was a problem hiding this comment.
This package is deprecated, please use microsoft.net.compilers.toolset instead
From the NuPkg:
Note: This package is deprecated. Please use Microsoft.Net.Compilers.Toolset instead
There was a problem hiding this comment.
Fine for this PR, but in the future we will stop producing new versions of this package.
In general that should be fine. The compilers have an incredibly high compatibility bar and our recommendation to customers is always "please upgrade to latest". If you hit errors that would be the rare case, not the norm. Yes changes do exist from version to version but they are generally in decently obscure corner cases |
Fixes #774