Skip to content

Commit 8397772

Browse files
authored
Merge pull request #18069 from dotnet/master
update live with master
2 parents 8b02d42 + 505eac6 commit 8397772

39 files changed

+335
-104
lines changed

docs/core/compatibility/3.1-5.0.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,13 @@ If you're migrating from version 3.1 of .NET Core, ASP.NET Core, or EF Core to v
4040

4141
## Windows Forms
4242

43+
- [Removed status bar controls](#removed-status-bar-controls)
4344
- [WinForms APIs now throw ArgumentNullException](#winforms-apis-now-throw-argumentnullexception)
4445

46+
[!INCLUDE [winforms-deprecated-controls](../../../includes/core-changes/windowsforms/5.0/winforms-deprecated-controls.md)]
47+
48+
***
49+
4550
[!INCLUDE [null-args-cause-argumentnullexception](../../../includes/core-changes/windowsforms/5.0/null-args-cause-argumentnullexception.md)]
4651

4752
***

docs/core/compatibility/winforms.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ The following breaking changes are documented on this page:
1111

1212
| Breaking change | Version introduced |
1313
| - | :-: |
14+
| [Removed status bar controls](#removed-status-bar-controls) | 5.0 |
1415
| [WinForms APIs now throw ArgumentNullException](#winforms-apis-now-throw-argumentnullexception) | 5.0 |
1516
| [Removed controls](#removed-controls) | 3.1 |
1617
| [CellFormatting event not raised if tooltip is shown](#cellformatting-event-not-raised-if-tooltip-is-shown) | 3.1 |
@@ -30,6 +31,10 @@ The following breaking changes are documented on this page:
3031

3132
## .NET 5.0
3233

34+
[!INCLUDE [winforms-deprecated-controls](../../../includes/core-changes/windowsforms/5.0/winforms-deprecated-controls.md)]
35+
36+
***
37+
3338
[!INCLUDE [null-args-cause-argumentnullexception](../../../includes/core-changes/windowsforms/5.0/null-args-cause-argumentnullexception.md)]
3439

3540
***

docs/core/docker/build-container.md

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ myapp.deps.json myapp.dll myapp.pdb myapp.runtimeconfig.json
164164

165165
The *Dockerfile* file is used by the `docker build` command to create a container image. This file is a text file named *Dockerfile* that doesn't have an extension.
166166

167-
In your terminal, navigate up a directory to the working folder you created at the start. Create a file named *Dockerfile* in your working folder and open it in a text editor. Depending on the type of application you're going to containerize, you'll choose either the ASP.NET Core runtime or the .NET Core runtime. When in doubt, choose the ASP.NET Core runtime, which includes the .NET Core runtime. This tutorial will use the ASP.NET Core runtime image, but the application created in the previous sections is an .NET Core application.
167+
In your terminal, navigate back one directory to the working folder you created at the start. Create a file named *Dockerfile* in your working folder and open it in a text editor. Depending on the type of application you're going to containerize, you'll choose either the ASP.NET Core runtime or the .NET Core runtime. When in doubt, choose the ASP.NET Core runtime, which includes the .NET Core runtime. This tutorial will use the ASP.NET Core runtime image, but the application created in the previous sections is an .NET Core application.
168168

169169
- ASP.NET Core runtime
170170

@@ -214,42 +214,50 @@ Docker will process each line in the *Dockerfile*. The `.` in the `docker build`
214214
```console
215215
> docker images
216216
REPOSITORY TAG IMAGE ID CREATED SIZE
217-
myimage latest 38db0eb8f648 4 weeks ago 346MB
218-
mcr.microsoft.com/dotnet/core/aspnet 3.1 38db0eb8f648 4 weeks ago 346MB
217+
myimage latest 54240314fe71 4 weeks ago 346MB
218+
mcr.microsoft.com/dotnet/core/aspnet 3.1 54240314fe71 4 weeks ago 346MB
219219
```
220220

221221
Notice that the two images share the same **IMAGE ID** value. The value is the same between both images because the only command in the *Dockerfile* was to base the new image on an existing image. Let's add two commands to the *Dockerfile*. Each command creates a new image layer with the final command representing the image the **myimage** repository entry points to.
222222

223223
```dockerfile
224224
COPY app/bin/Release/netcoreapp3.1/publish/ app/
225225

226-
ENTRYPOINT ["dotnet", "app/myapp.dll"]
226+
WORKDIR /app
227+
228+
ENTRYPOINT ["dotnet", "myapp.dll"]
227229
```
228230

229231
The `COPY` command tells Docker to copy the specified folder on your computer to a folder in the container. In this example, the *publish* folder is copied to a folder named *app* in the container.
230232

233+
The `WORKDIR` command changes the **current directory** inside of the container to *app*.
234+
231235
The next command, `ENTRYPOINT`, tells Docker to configure the container to run as an executable. When the container starts, the `ENTRYPOINT` command runs. When this command ends, the container will automatically stop.
232236

233237
From your terminal, run `docker build -t myimage -f Dockerfile .` and when that command finishes, run `docker images`.
234238

235239
```console
236240
> docker build -t myimage -f Dockerfile .
237-
Sending build context to Docker daemon 1.624MB
238-
Step 1/3 : FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
239-
---> 38db0eb8f648
240-
Step 2/3 : COPY app/bin/Release/netcoreapp3.1/publish/ app/
241-
---> 37873673e468
242-
Step 3/3 : ENTRYPOINT ["dotnet", "app/myapp.dll"]
243-
---> Running in d8deb7b3aa9e
244-
Removing intermediate container d8deb7b3aa9e
245-
---> 0d602ca35c1d
246-
Successfully built 0d602ca35c1d
241+
Sending build context to Docker daemon 1.121MB
242+
Step 1/4 : FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
243+
---> 54240314fe71
244+
Step 2/4 : COPY app/bin/Release/netcoreapp3.1/publish/ app/
245+
---> 1e05ea8b3ef5
246+
Step 3/4 : WORKDIR /app
247+
---> Running in 8c8f710e6292
248+
Removing intermediate container 8c8f710e6292
249+
---> 31575599f7dc
250+
Step 4/4 : ENTRYPOINT ["dotnet", "myapp.dll"]
251+
---> Running in 93851322fb76
252+
Removing intermediate container 93851322fb76
253+
---> e496e8b22d02
254+
Successfully built e496e8b22d02
247255
Successfully tagged myimage:latest
248256

249257
> docker images
250258
REPOSITORY TAG IMAGE ID CREATED SIZE
251-
myimage latest 0d602ca35c1d 4 seconds ago 346MB
252-
mcr.microsoft.com/dotnet/core/aspnet 3.1 38db0eb8f648 4 weeks ago 346MB
259+
myimage latest e496e8b22d02 4 seconds ago 346MB
260+
mcr.microsoft.com/dotnet/core/aspnet 3.1 54240314fe71 4 weeks ago 346MB
253261
```
254262

255263
Each command in the *Dockerfile* generated a layer and created an **IMAGE ID**. The final **IMAGE ID** (yours will be different) is **ddcc6646461b** and next you'll create a container based on this image.
@@ -260,15 +268,15 @@ Now that you have an image that contains your app, you can create a container. Y
260268

261269
```console
262270
> docker create myimage
263-
ceda87b219a4e55e9ad5d833ee1a7ea4da21b5ea7ce5a7d08f3051152e784944
271+
9222af24353f42bab6c13e01a0a64ef2c915cad27bdc46ffa32380581de11e91
264272
```
265273

266274
The `docker create` command from above will create a container based on the **myimage** image. The output of that command shows you the **CONTAINER ID** (yours will be different) of the created container. To see a list of *all* containers, use the `docker ps -a` command:
267275

268276
```console
269277
> docker ps -a
270-
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
271-
ceda87b219a4 myimage "dotnet app/myapp.dll" 4 seconds ago Created gallant_lehmann
278+
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
279+
9222af24353f myimage "dotnet myapp.dll" 4 seconds ago Created gallant_lehmann
272280
```
273281

274282
### Manage the container
@@ -282,8 +290,8 @@ The following example uses the `docker start` command to start the container, an
282290
gallant_lehmann
283291

284292
> docker ps
285-
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
286-
ceda87b219a4 myimage "dotnet app/myapp.dll" 7 minutes ago Up 8 seconds gallant_lehmann
293+
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
294+
9222af24353f myimage "dotnet myapp.dll" 7 minutes ago Up 8 seconds gallant_lehmann
287295
```
288296

289297
Similarly, the `docker stop` command will stop the container. The following example uses the `docker stop` command to stop the container, and then uses the `docker ps` command to show that no containers are running:
@@ -331,8 +339,8 @@ The following example lists all containers. It then uses the `docker rm` command
331339

332340
```console
333341
> docker ps -a
334-
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
335-
ceda87b219a4 myimage "dotnet app/myapp.dll" 19 minutes ago Exited gallant_lehmann
342+
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
343+
9222af24353f myimage "dotnet myapp.dll" 19 minutes ago Exited gallant_lehmann
336344

337345
> docker rm gallant_lehmann
338346
gallant_lehmann

docs/core/install/dependencies.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ For more information about .NET Core 2.1 supported operating systems, distributi
9090

9191
<!-- markdownlint-disable MD001 -->
9292

93-
### Windows 7 / Vista / 8.1 / Server 2008 R2
93+
### <a name="additional-deps"></a> Windows 7 / Vista / 8.1 / Server 2008 R2 / Server 2012 R2
9494

9595
Additional dependencies are required if you're installing the .NET SDK or runtime on the following Windows versions:
9696

@@ -111,6 +111,10 @@ The requirements above are also required if you come across one of the following
111111
>
112112
> \- or -
113113
>
114+
> The program can't start because *api-ms-win-cor-timezone-l1-1-0.dll* is missing from your computer. Try reinstalling the program to fix this problem.
115+
>
116+
> \- or -
117+
>
114118
> The library *hostfxr.dll* was found, but loading it from *C:\\\<path_to_app>\\hostfxr.dll* failed.
115119
116120
::: zone-end

docs/core/install/includes/package-manager-switcher.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22
> [!div class="op_single_selector"]
33
>
4+
> - [Ubuntu 20.04 - x64](../linux-package-manager-ubuntu-2004.md)
45
> - [Ubuntu 19.10 - x64](../linux-package-manager-ubuntu-1910.md)
56
> - [Ubuntu 19.04 - x64](../linux-package-manager-ubuntu-1904.md)
67
> - [Ubuntu 18.04 - x64](../linux-package-manager-ubuntu-1804.md)

docs/core/install/linux-package-manager-ubuntu-1910.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ If that doesn't work, you can run a manual install with the following commands.
9595

9696
```bash
9797
sudo apt-get install -y gpg
98-
wget O- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
98+
wget -O- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
9999
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
100100
wget https://packages.microsoft.com/config/ubuntu/19.10/prod.list
101101
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
---
2+
title: Install .NET Core on Ubuntu 20.04 package manager - .NET Core
3+
description: Use a package manager to install .NET Core SDK and runtime on Ubuntu 20.04.
4+
author: thraka
5+
ms.author: adegeo
6+
ms.date: 04/15/2020
7+
---
8+
9+
# Ubuntu 20.04 Package Manager - Install .NET Core
10+
11+
[!INCLUDE [package-manager-switcher](./includes/package-manager-switcher.md)]
12+
13+
This article describes how to use a package manager to install .NET Core on Ubuntu 20.04.
14+
15+
[!INCLUDE [package-manager-intro-sdk-vs-runtime](includes/package-manager-intro-sdk-vs-runtime.md)]
16+
17+
## Add Microsoft repository key and feed
18+
19+
Before installing .NET, you'll need to:
20+
21+
- Add the Microsoft package signing key to the list of trusted keys.
22+
- Add the repository to the package manager.
23+
- Install required dependencies.
24+
25+
This only needs to be done once per machine.
26+
27+
Open a terminal and run the following commands.
28+
29+
```bash
30+
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
31+
sudo dpkg -i packages-microsoft-prod.deb
32+
```
33+
34+
## Install the .NET Core SDK
35+
36+
Update the products available for installation, then install the .NET Core SDK. In your terminal, run the following commands.
37+
38+
```bash
39+
sudo apt-get update
40+
sudo apt-get install apt-transport-https
41+
sudo apt-get update
42+
sudo apt-get install dotnet-sdk-3.1
43+
```
44+
45+
> [!IMPORTANT]
46+
> If you receive an error message similar to **Unable to locate package dotnet-sdk-3.1**, see the [Troubleshoot the package manager](#troubleshoot-the-package-manager) section.
47+
48+
## Install the ASP.NET Core runtime
49+
50+
Update the products available for installation, then install the ASP.NET Core runtime. In your terminal, run the following commands.
51+
52+
```bash
53+
sudo apt-get update
54+
sudo apt-get install apt-transport-https
55+
sudo apt-get update
56+
sudo apt-get install aspnetcore-runtime-3.1
57+
```
58+
59+
> [!IMPORTANT]
60+
> If you receive an error message similar to **Unable to locate package aspnetcore-runtime-3.1**, see the [Troubleshoot the package manager](#troubleshoot-the-package-manager) section.
61+
62+
## Install the .NET Core runtime
63+
64+
Update the products available for installation, then install the .NET Core runtime. In your terminal, run the following commands.
65+
66+
```bash
67+
sudo apt-get update
68+
sudo apt-get install apt-transport-https
69+
sudo apt-get update
70+
sudo apt-get install dotnet-runtime-3.1
71+
```
72+
73+
> [!IMPORTANT]
74+
> If you receive an error message similar to **Unable to locate package dotnet-runtime-3.1**, see the [Troubleshoot the package manager](#troubleshoot-the-package-manager) section.
75+
76+
## How to install other versions
77+
78+
[!INCLUDE [package-manager-switcher](./includes/package-manager-heading-hack-pkgname.md)]
79+
80+
## Troubleshoot the package manager
81+
82+
This section provides information on common errors you may get while using the package manager to install .NET Core.
83+
84+
### Unable to locate
85+
86+
If you receive an error message similar to **Unable to locate package {the .NET Core package}**, run the following commands.
87+
88+
```bash
89+
sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
90+
sudo apt-get update
91+
sudo apt-get install {the .NET Core package}
92+
```
93+
94+
If that doesn't work, you can run a manual install with the following commands.
95+
96+
```bash
97+
sudo apt-get install -y gpg
98+
wget -O- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
99+
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
100+
wget https://packages.microsoft.com/config/ubuntu/20.04/prod.list
101+
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
102+
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
103+
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
104+
sudo apt-get install -y apt-transport-https
105+
sudo apt-get update
106+
sudo apt-get install {the .NET Core package}
107+
```
108+
109+
### Failed to fetch
110+
111+
[!INCLUDE [package-manager-failed-to-fetch-deb](includes/package-manager-failed-to-fetch-deb.md)]

docs/core/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
href: install/how-to-detect-installed-versions.md
2121
- name: Linux package managers
2222
items:
23+
- name: Ubuntu 20.04
24+
href: install/linux-package-manager-ubuntu-2004.md
2325
- name: Ubuntu 19.10
2426
href: install/linux-package-manager-ubuntu-1910.md
2527
- name: Ubuntu 19.04

docs/csharp/language-reference/operators/await.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.assetid: 50725c24-ac76-4ca7-bca1-dd57642ffedb
1010
---
1111
# await operator (C# reference)
1212

13-
The `await` operator suspends evaluation of the enclosing [async](../keywords/async.md) method until the asynchronous operation represented by its operand completes. When the asynchronous operation completes, the `await` operator returns the result of the operation, if any. When the `await` operator is applied to the operand that represents already completed operation, it returns the result of the operation immediately without suspension of the enclosing method. The `await` operator doesn't block the thread that evaluates the async method. When the `await` operator suspends the enclosing async method, the control returns to the caller of the method.
13+
The `await` operator suspends evaluation of the enclosing [async](../keywords/async.md) method until the asynchronous operation represented by its operand completes. When the asynchronous operation completes, the `await` operator returns the result of the operation, if any. When the `await` operator is applied to the operand that represents an already completed operation, it returns the result of the operation immediately without suspension of the enclosing method. The `await` operator doesn't block the thread that evaluates the async method. When the `await` operator suspends the enclosing async method, the control returns to the caller of the method.
1414

1515
In the following example, the <xref:System.Net.Http.HttpClient.GetByteArrayAsync%2A?displayProperty=nameWithType> method returns the `Task<byte[]>` instance, which represents an asynchronous operation that produces a byte array when it completes. Until the operation completes, the `await` operator suspends the `DownloadDocsMainPageAsync` method. When `DownloadDocsMainPageAsync` gets suspended, control is returned to the `Main` method, which is the caller of `DownloadDocsMainPageAsync`. The `Main` method executes until it needs the result of the asynchronous operation performed by the `DownloadDocsMainPageAsync` method. When <xref:System.Net.Http.HttpClient.GetByteArrayAsync%2A> gets all the bytes, the rest of the `DownloadDocsMainPageAsync` method is evaluated. After that, the rest of the `Main` method is evaluated.
1616

docs/csharp/language-reference/operators/switch-expression.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ The preceding sample shows the basic elements of a switch expression:
1818
- The *range expression*: The preceding example uses the variable `direction` as the range expression.
1919
- The *switch expression arms*: Each switch expression arm contains a *pattern*, an optional *case guard*, the `=>` token, and an *expression*.
2020

21-
The result of the *switch expression* is the value of the expression of the first *switch expression arm* whose *pattern* matches the *range expression* and whose *cause guard*, if present, evaluates to `true`. The *expression* on the right of the `=>` token can't be an expression statement.
21+
The result of the *switch expression* is the value of the expression of the first *switch expression arm* whose *pattern* matches the *range expression* and whose *case guard*, if present, evaluates to `true`. The *expression* on the right of the `=>` token can't be an expression statement.
2222

2323
The *switch expression arms* are evaluated in text order. The compiler issues an error when a lower *switch expression arm* can't be chosen because a higher *switch expression arm* matches all its values.
2424

0 commit comments

Comments
 (0)