- Download .NET
- .NET 5.0 (recommended)
- .NET Core 3.1
- .NET Framework 4.8
- .NET 5.0 (recommended)
- .NET Core 3.1
- .NET 5.0 (recommended)
- .NET Core 3.1
- .NET Core
- .NET Framework
- Free. Cross-platform. Open source. Supported.
- Thank You to All the Contributors
- Ready to Get Started?
- Общие сведения о публикации приложений .NET .NET application publishing overview
- Создание исполняемого файла Produce an executable
- Создание кроссплатформенного двоичного файла Produce a cross-platform binary
- Публикация зависящих от среды приложений Publish framework-dependent
- Преимущества Advantages
- Недостатки Disadvantages
- Примеры Examples
- Публикация автономных приложений Publish self-contained
- Преимущества Advantages
- Недостатки Disadvantages
- Примеры Examples
- Публикация с использованием образов ReadyToRun Publish with ReadyToRun images
- Преимущества Advantages
- Недостатки Disadvantages
- Примеры Examples
Download .NET
Downloads for .NET Framework and .NET Core, including ASP.NET and ASP.NET Core
Not sure where to start? See the Hello World in 10 minutes tutorial to install .NET and build your first app.
.NET 5.0 (recommended)
.NET is a free, cross-platform, open-source developer platform for building many different types of applications.
.NET Core 3.1
.NET Core is a free, cross-platform, open-source developer platform for building many different types of applications.
.NET Framework 4.8
.NET Framework is a Windows-only version of .NET for building any type of app that runs on Windows.
.NET 5.0 (recommended)
.NET is a free, cross-platform, open-source developer platform for building many different types of applications.
.NET Core 3.1
.NET Core is a free, cross-platform, open-source developer platform for building many different types of applications.
.NET 5.0 (recommended)
.NET is a free, cross-platform, open-source developer platform for building many different types of applications.
.NET Core 3.1
.NET Core is a free, cross-platform, open-source developer platform for building many different types of applications.
.NET is a free, cross-platform, open-source developer platform for building many different types of applications.
.NET Core
.NET Core is a free, cross-platform, open-source developer platform for building many different types of applications.
.NET Framework
.NET Framework is a Windows-only version of .NET for building any type of app that runs on Windows.
Free. Cross-platform. Open source. Supported.
.NET is free. There are no fees or licensing costs, including for commercial use.
.NET is open-source and cross-platform, with free development tools for Windows, Linux, and macOS.
.NET is supported by Microsoft. Microsoft ships official releases that are built and tested on Microsoft-maintained servers in Azure and supported just like any Microsoft product.
Thank You to All the Contributors
.NET is open source and we are very thankful for the many contributions it receives from the community.
Ready to Get Started?
Our step-by-step tutorial will help you get .NET running on your computer.
Общие сведения о публикации приложений .NET .NET application publishing overview
Приложения .NET можно публиковать в двух разных режимах. Режим влияет на то, как пользователь запускает приложение. Applications you create with .NET can be published in two different modes, and the mode affects how a user runs your app.
При публикации автономного приложения в состав включается среда выполнения и библиотеки .NET, а также приложение и его зависимости. Publishing your app as self-contained produces an application that includes the .NET runtime and libraries, and your application and its dependencies. Пользователи приложения могут запустить его на компьютере, на котором не установлена среда выполнения .NET. Users of the application can run it on a machine that doesn’t have the .NET runtime installed.
При публикации приложения в качестве зависимого от среды создается приложение, которое включает только само приложение и его зависимости. Publishing your app as framework-dependent produces an application that includes only your application itself and its dependencies. Пользователям приложения необходимо отдельно установить среду выполнения .NET. Users of the application have to separately install the .NET runtime.
Оба режима публикации по умолчанию создают исполняемый файл, зависящий от платформы. Both publishing modes produce a platform-specific executable by default. Приложения, зависящие от среды, могут создаваться без исполняемого файла, и эти приложения являются кросс-платформенными. Framework-dependent applications can be created without an executable, and these applications are cross-platform.
При создании исполняемого файла можно указать целевую платформу с идентификатором среды выполнения (RID). When an executable is produced, you can specify the target platform with a runtime identifier (RID). Дополнительные сведения об идентификаторах среды выполнения см. в этом каталоге для .NET. For more information about RIDs, see .NET RID Catalog.
В следующей таблице приведены команды, используемые для публикации автономных и зависящих от среды для каждой версии пакета SDK: The following table outlines the commands used to publish an app as framework-dependent or self-contained, per SDK version:
Type Type | SDK 2.1 SDK 2.1 | SDK 3.1 SDK 3.1 | SDK 5.0 SDK 5.0 | Команда Command |
---|---|---|---|---|
зависящий от среды исполняемый файл для текущей платформы. framework-dependent executable for the current platform. | ✔️ ✔️ | ✔️ ✔️ | dotnet publish | |
зависящий от среды исполняемый файл для определенной платформы. framework-dependent executable for a specific platform. | ✔️ ✔️ | ✔️ ✔️ | dotnet publish -r —self-contained false | |
зависящий от среды кросс-платформенный двоичный файл. framework-dependent cross-platform binary. | ✔️ ✔️ | ✔️ ✔️ | ✔️ ✔️ | dotnet publish |
автономный исполняемый файл. self-contained executable. | ✔️ ✔️ | ✔️ ✔️ | ✔️ ✔️ | dotnet publish -r |
Дополнительные сведения см. в статье о команде dotnet publish для .NET. For more information, see .NET dotnet publish command.
Создание исполняемого файла Produce an executable
Исполняемые файлы не являются кроссплатформенными. Executables aren’t cross-platform. Они относятся к операционной системе и архитектуре ЦП. They’re specific to an operating system and CPU architecture. При публикации приложения и создании исполняемого файла можно опубликовать приложение как автономное или зависящее от среды. When publishing your app and creating an executable, you can publish the app as self-contained or framework-dependent. При публикации автономного приложения в пакет включается среда выполнения .NET, поэтому пользователям не нужно беспокоиться об установке .NET перед запуском приложения. Publishing an app as self-contained includes the .NET runtime with the app, and users of the app don’t have to worry about installing .NET before running the app. Приложения, опубликованные как зависимые от среды, не предусматривают среду выполнения и библиотеки .NET. В пакет входят только приложение и сторонние зависимости. Apps published as framework-dependent don’t include the .NET runtime and libraries; only the app and 3rd-party dependencies are included.
Следующие команды создают исполняемый файл: The following commands produce an executable:
Type Type | SDK 2.1 SDK 2.1 | SDK 3.1 SDK 3.1 | SDK 5.0 SDK 5.0 | Команда Command |
---|---|---|---|---|
зависящий от среды исполняемый файл для текущей платформы. framework-dependent executable for the current platform. | ✔️ ✔️ | ✔️ ✔️ | dotnet publish | |
зависящий от среды исполняемый файл для определенной платформы. framework-dependent executable for a specific platform. | ✔️ ✔️ | ✔️ ✔️ | dotnet publish -r —self-contained false | |
автономный исполняемый файл. self-contained executable. | ✔️ ✔️ | ✔️ ✔️ | ✔️ ✔️ | dotnet publish -r |
Создание кроссплатформенного двоичного файла Produce a cross-platform binary
Кросс-платформенные двоичные файлы создаются при публикации приложения, зависящего от среды, в виде файла DLL. Cross-platform binaries are created when you publish your app as framework-dependent, in the form of a dll file. Файл DLL называется по имени вашего проекта. The dll file is named after your project. Например, если ваше приложение называется word_reader, создается файл с именем word_reader.dll. For example, if you have an app named word_reader, a file named word_reader.dll is created. Приложения, опубликованные таким образом, выполняются с помощью команды dotnet на любой платформе. Apps published in this way are run with the dotnet command and can be run on any platform.
Кроссплатформенные двоичные файлы могут работать в любой операционной системе, если целевая среда выполнения .NET уже установлена. Cross-platform binaries can be run on any operating system as long as the targeted .NET runtime is already installed. Если же она не установлена, приложение может использовать для работы более новую среду выполнения, если настроено соответствующим образом. If the targeted .NET runtime isn’t installed, the app may run using a newer runtime if the app is configured to roll-forward. Дополнительные сведения см. в разделе Накат зависящих от среды приложений. For more information, see framework-dependent apps roll forward.
Следующая команда создает кроссплатформенный двоичный файл: The following command produces a cross-platform binary:
Type Type | SDK 2.1 SDK 2.1 | SDK 3.x SDK 3.x | SDK 5.0 SDK 5.0 | Команда Command |
---|---|---|---|---|
зависящий от среды кросс-платформенный двоичный файл. framework-dependent cross-platform binary. | ✔️ ✔️ | ✔️ ✔️ | ✔️ ✔️ | dotnet publish |
Публикация зависящих от среды приложений Publish framework-dependent
Приложения, опубликованные как зависящие от среды, являются кроссплатформенными и не включают среду выполнения .NET. Apps published as framework-dependent are cross-platform and don’t include the .NET runtime. Пользователю нужно будет установить среду выполнения .NET. The user of your app is required to install the .NET runtime.
При публикации приложения, зависящего от среды, создается кросс-платформенный двоичный файл с расширением DLL и исполняемый файл, зависящий от платформы, предназначенный для текущей платформы. Publishing an app as framework-dependent produces a cross-platform binary as a dll file, and a platform-specific executable that targets your current platform. Файл DLL является кроссплатформенным, а исполняемый файл — нет. The dll is cross-platform while the executable isn’t. Например, при публикации приложения с именем word_reader для Windows создается исполняемый файл word_reader.exe и файл word_reader.dll. For example, if you publish an app named word_reader and target Windows, a word_reader.exe executable is created along with word_reader.dll. Для Linux или macOS создается исполняемый файл word_reader, а также word_reader.dll. When targeting Linux or macOS, a word_reader executable is created along with word_reader.dll. Дополнительные сведения об идентификаторах среды выполнения см. в этом каталоге для .NET. For more information about RIDs, see .NET RID Catalog.
Пакет SDK для .NET 2.1 не создает исполняемые файлы, зависящие от платформы, при публикации приложения, зависящего от среды. .NET SDK 2.1 doesn’t produce platform-specific executables when you publish an app framework-dependent.
Кроссплатформенный двоичный файл приложения можно запустить с помощью команды dotnet и выполнять на любой платформе. The cross-platform binary of your app can be run with the dotnet command, and can be run on any platform. Если приложение использует пакет NuGet с реализациями, зависящими от платформы, все зависимости платформ копируются в папку публикации вместе с приложением. If the app uses a NuGet package that has platform-specific implementations, all platforms’ dependencies are copied to the publish folder along with the app.
Вы можете создать исполняемый файл для конкретной платформы, передав параметры -r —self-contained false в команде dotnet publish . You can create an executable for a specific platform by passing the -r —self-contained false parameters to the dotnet publish command. Если параметр -r опущен, для текущей платформы создается исполняемый файл. When the -r parameter is omitted, an executable is created for your current platform. Все пакеты NuGet, имеющие зависящие от платформы зависимости для целевой платформы, копируются в папку публикации. Any NuGet packages that have platform-specific dependencies for the targeted platform are copied to the publish folder. Если вам не нужен связанный с платформой исполняемый файл, можно указать False в файле проекта. If you don’t need a platfrom-specific executable, you can specify False in the project file. Дополнительные сведения см. в статье Справочник по MSBuild для проектов пакета SDK для .NET. For more information, see MSBuild reference for .NET SDK projects.
Преимущества Advantages
Небольшое развертывание Small deployment
Распределяются только приложение и его зависимости. Only your app and its dependencies are distributed. Среду выполнения и библиотеки .NET устанавливает пользователь, и все приложения совместно используют среду выполнения. The .NET runtime and libraries are installed by the user and all apps share the runtime.
Кроссплатформенные приложения Cross-platform
Ваше приложение и библиотеки на основе .NET работают в других операционных системах. Your app and any .NET-based library runs on other operating systems. Для приложения не нужно определять целевую платформу. You don’t need to define a target platform for your app. Дополнительные сведения о формате файлов .NET см. в разделе Формат файла сборки .NET. For information about the .NET file format, see .NET Assembly File Format.
Использует последнюю исправленную версию среды выполнения Uses the latest patched runtime
Приложение использует самую новую среду выполнения (в рамках целевого основного и дополнительного семейства .NET), установленную в целевой системе. The app uses the latest runtime (within the targeted major-minor family of .NET) installed on the target system. Это означает, что приложение будет автоматически использовать последнюю исправленную версию среды выполнения .NET. This means your app automatically uses the latest patched version of the .NET runtime. Поведение по умолчанию можно переопределить. This default behavior can be overridden. Дополнительные сведения см. в разделе Накат зависящих от среды приложений. For more information, see framework-dependent apps roll forward.
Недостатки Disadvantages
Требует предварительной установки среды выполнения Requires pre-installing the runtime
Приложение может выполняться, только если в системе, в которой оно размещено, уже установлена целевая версия .NET. Your app can run only if the version of .NET your app targets is already installed on the host system. Вы можете настроить поведение наката для приложения, чтобы либо требовать определенную версию .NET, либо разрешить более новую версию. You can configure roll-forward behavior for the app to either require a specific version of .NET or allow a newer version of .NET. Дополнительные сведения см. в разделе Накат зависящих от среды приложений. For more information, see framework-dependent apps roll forward.
.NET может измениться .NET may change
Среду выполнения и библиотеки .NET можно обновлять на компьютере, где выполняется приложение. It’s possible for the .NET runtime and libraries to be updated on the machine where the app is run. В редких случаях это может изменить поведение приложения, если используются библиотеки .NET, что характерно для большинства приложений. In rare cases, this may change the behavior of your app if you use the .NET libraries, which most apps do. Вы можете настроить, как приложение будет использовать более новые версии .NET. You can configure how your app uses newer versions of .NET. Дополнительные сведения см. в разделе Накат зависящих от среды приложений. For more information, see framework-dependent apps roll forward.
Приведенные ниже недостатки применимы только к пакету SDK для .NET Core 2.1. The following disadvantage only applies to .NET Core 2.1 SDK.
- Используйте команду dotnet , чтобы запустить приложениеUse the dotnet command to start the app
Для запуска приложения пользователи должны выполнить команду dotnet . Users must run the dotnet command to start your app. Пакет SDK для .NET Core 2.1 не создает исполняемые файлы, зависящие от платформы, при публикации приложения, зависящего от среды. .NET Core 2.1 SDK doesn’t produce platform-specific executables for apps published framework-dependent.
Примеры Examples
Публикация кросс-платформенного приложения, зависящего от среды. Publish an app cross-platform framework-dependent. Исполняемый файл, предназначенный для текущей платформы, создается вместе с DLL-файлом. An executable that targets your current platform is created along with the dll file.
Публикация кросс-платформенного приложения, зависящего от среды. Publish an app cross-platform framework-dependent. Вместе с DLL-файлом создается 64-разрядный исполняемый файл Linux. A Linux 64-bit executable is created along with the dll file. Эта команда не работает с пакетом SDK для .NET Core 2.1. This command doesn’t work with .NET Core SDK 2.1.
Публикация автономных приложений Publish self-contained
При публикации автономного приложения создается исполняемый файл, зависящий от платформы. Publishing your app as self-contained produces a platform-specific executable. Выходная папка публикации содержит все компоненты приложения, в том числе библиотеки .NET и целевую среду выполнения. The output publishing folder contains all components of the app, including the .NET libraries and target runtime. Приложение изолировано от других приложений .NET и не использует локально установленную общую среду выполнения. The app is isolated from other .NET apps and doesn’t use a locally installed shared runtime. Пользователю приложения не требуется скачивать и устанавливать .NET. The user of your app isn’t required to download and install .NET.
Исполняемый двоичный файл создается для указанной целевой платформы. The executable binary is produced for the specified target platform. Например, если у вас есть приложение с именем word_reader и вы публикуете автономный исполняемый файл для Windows, создается файл word_reader.exe. For example, if you have an app named word_reader, and you publish a self-contained executable for Windows, a word_reader.exe file is created. При публикации для Linux или macOS создается файл word_reader. Publishing for Linux or macOS, a word_reader file is created. Целевая платформа и архитектура указываются с помощью параметра -r для команды dotnet publish . The target platform and architecture is specified with the -r parameter for the dotnet publish command. Дополнительные сведения об идентификаторах среды выполнения см. в этом каталоге для .NET. For more information about RIDs, see .NET RID Catalog.
Если приложение имеет зависимости для определенной платформы, например пакет NuGet, содержащий зависимости для определенной платформы, они копируются в папку публикации вместе с приложением. If the app has platform-specific dependencies, such as a NuGet package containing platform-specific dependencies, these are copied to the publish folder along with the app.
Преимущества Advantages
Управление версией .NET Control .NET version
Вы управляете тем, какая версия .NET развертывается вместе с приложением. You control which version of .NET is deployed with your app.
Нацеливание на конкретные платформы Platform-specific targeting
Поскольку необходимо опубликовать приложение для каждой платформы, вы знаете, где будет выполняться приложение. Because you have to publish your app for each platform, you know where your app will run. Если в .NET появляется новая платформа, пользователи не смогут запустить приложение на ней до выпуска версии, предназначенной для этой платформы. If .NET introduces a new platform, users can’t run your app on that platform until you release a version targeting that platform. Вы можете протестировать приложение на наличие проблем совместимости перед тем, как пользователи запустят приложение на новой платформе. You can test your app for compatibility problems before your users run your app on the new platform.
Недостатки Disadvantages
Более крупные развертывания Larger deployments
Так как приложение включает среду выполнения .NET и все зависимости приложения, размер скачиваемого файла и требуемого пространства на жестком диске будет больше, чем для версии, зависящей от среды. Because your app includes the .NET runtime and all of your app dependencies, the download size and hard drive space required is greater than a framework-dependent version.
Вы можете уменьшить размер развертывания в системах Linux примерно на 28 МБ с помощью инвариантного режима глобализации .NET. You can reduce the size of your deployment on Linux systems by approximately 28 MB by using .NET globalization invariant mode. С его помощью приложение будет обрабатывать все языки и региональные параметры как инвариантные языки и региональные параметры. This forces your app to treat all cultures like the invariant culture.
Существует предварительная версия функция усечения позволяющая еще больше уменьшить размер развертывания. There is a preview Trim feature that can further reduce the size of your deployment.
Усложненное обновление версии .NET Harder to update the .NET version
Среду выполнения .NET (распространяемую с вашим приложением) можно обновить только путем выпуска новой версии приложения. .NET Runtime (distributed with your app) can only be upgraded by releasing a new version of your app. Но при необходимости.NET обновит критически важные обновления системы безопасности для библиотеки платформы на компьютере, на котором выполняется приложение. However, .NET will update critical security patches as needed for the framework library in the machine that your app runs on. Ответственность за полную проверку этого сценария обновления системы безопасности лежит на вас. You are responsible for end to end validation for this security patch scenario.
Примеры Examples
Публикация автономного приложения. Publish an app self-contained. Создается 64-разрядный исполняемый файл macOS. A macOS 64-bit executable is created.
Публикация автономного приложения. Publish an app self-contained. Создается 64-разрядный исполняемый файл Windows. A Windows 64-bit executable is created.
Публикация с использованием образов ReadyToRun Publish with ReadyToRun images
Публикация с использованием образов ReadyToRun помогает оптимизировать время запуска приложения, хотя размер приложения при этом будет увеличен. Publishing with ReadyToRun images will improve the startup time of your application at the cost of increasing the size of your application. Дополнительные сведения о публикации с использованием ReadyToRun см. здесь. In order to publish with ReadyToRun see ReadyToRun for more details.
Преимущества Advantages
- Оптимизированное времени запускаImproved startup time
Приложение будет тратить меньше времени на выполнение JIT. The application will spend less time running the JIT.
Недостатки Disadvantages
- Больший размерLarger size
Приложение будет занимать больше места на диске. The application will be larger on disk.
Примеры Examples
Опубликуйте автономное приложение с помощью ReadyToRun. Publish an app self-contained and ReadyToRun. Создается 64-разрядный исполняемый файл macOS. A macOS 64-bit executable is created.
Опубликуйте автономное приложение с помощью ReadyToRun. Publish an app self-contained and ReadyToRun. Создается 64-разрядный исполняемый файл Windows. A Windows 64-bit executable is created.