Dotnet что это за папка windows 10

I find out that the folder C:Program Filesdotnet takes up more than 1.6 GB disk space. Is it required for UWP delopment? If not,  can I remove it?
  • Remove From My Forums
  • Question

  • I find out that the folder C:Program Filesdotnet takes up more than 1.6 GB disk space. Is it required for UWP delopment? If not,  can I remove it?


    Ignorance is blissful

Answers

  • I’m very confused because there are several new concepts around the classic .NET Framework: .NET Core and .NET Standard and also UWP Framework. I read some articles about them but just can’t get a grasp of what they are and their differences. Does
    UWP framework depend this .NET Core?


    Ignorance is blissful

    Yes it is confusing. UWP existed prior to .NET Core (think Windows RT) but now .NET Core is used to create UWP apps in newer versions of Visual Studio. So if you are building UWP apps in VS 2017 you will be using .NET Core.

    The whole purpose of .NET Core is to enable developers to create apps that run on different device platforms, which is in line with UWP.


    Paul ~~~~ Microsoft MVP (Visual Basic)

    • Marked as answer by

      Wednesday, October 18, 2017 7:52 AM

  • Описание
  • Как исправить создание файлов?
  • Можно ли удалить?
  • Заключение

Приветствую друзья. Данная статья посвящена разбирательству с папкой DotNetBrowser — выясним зачем она нужна, можно ли удалить, насколько это безопасно.

Папка компонента встроенного браузера Chromium, который может использоваться в .NET-приложениях, например играх, игровых лаунчерах.

Простыми словами — данная папка встроенного браузера. Встроен он может быть в разном софте, включая игры и их лаунчеры.

Например существует проблема с лаунчером 4Game — при открытии он может создавать директорию dotnetbrowser.dmp.dir внутри папки AppDataRoamingDotNetBrowser, при этом в директории создается куча разных файлов:

Которые в результате могут занимать куча места на жестком диске (HDD):

А если у вас стоит SSD — то это еще и расходует ресурс твердотельного накопителя.

Данные файлы — дампы, их можно вручную удалить, а то что они создаются и их так много — это баг лаунчера, который скорее всего исправят в будущих версиях приложения. А пока можно попробовать переустановить лаунчер, как советуют на официальном форуме 4Game.

Один человек написал что дампы появляются если лаунчер висит в системном трее час или больше, потом в итоге зависает и появляются дампы. Также пишут что это проблемы компонента Chromium (это почти тоже самое что и Google Chrome).

Как исправить создание файлов?

Что советуют на форуме 4Game:

  1. Переустановить лаунчер. Однако это не всем помогает.
  2. Убить процесс Фогейм Центра в диспетчере задач, потом зажать кнопки Win + R, в окошко Выполнить вставить команду %TEMP% и нажать ОК > внутри найти папку dotnetbrowser-chromium и удалить ее. Внимание: инфа с форума непроверенная, возможно стоит не удалить, а переименовать, и если не будет никаких проблем — тогда уже удалять.
  3. Конечно можно попробовать создать некий трюк: папке dotnetbrowser.dmp.dir выставить права только на чтение, то есть чтобы туда ничего не могло записаться, или изменить права доступа, чтобы функция, которая создает файлы — не имела права больше это делать.

РЕКЛАМА

Можно ли удалить?

Саму папку DotNetBrowser — нет, так как она нужна для работы встроенного браузера Chromium.

А вот содержимое dotnetbrowser.dmp.dir — можно удалить, так как это дампы. Что такое дамп? Это так бы сказать отчет, служебный файл, который содержит информацию об ошибке, или точнее содержит данные оперативной памяти на момент возникновения сбоя.

Заключение

Выяснили:

  1. DotNetBrowser — компонент встроенного браузера Chromium, который может использоваться в разном ПО, включая игры.
  2. Удалять DotNetBrowser не нужно.
  3. Внутри папки может быть директория dotnetbrowser.dmp.dir — в ней хранятся дампы файлов игрового лаунчера 4Game, эти дампы — следствие бага лаунчера, который в будущих версиях должен быть пофиксен.

Удачи.

Содержание

  • 1. Что такое dotNET.exe?
  • 2. DotNET.exe безопасно, или это вирус или вредоносная программа?
  • 3. Могу ли я удалить или удалить dotNET.exe?
  • 4. Распространенные сообщения об ошибках в dotNET.exe
  • 5. Как исправить dotNET.exe
  • 6. Январь 2023 Обновление
  • 7. Загрузите или переустановите dotNET.exe


Обновлено 2023 января: Вот три шага к использованию инструмента восстановления для устранения проблем с exe на вашем компьютере: Получите его по адресу эту ссылку

  1. Скачайте и установите это программное обеспечение.
  2. Просканируйте свой компьютер на наличие проблем с exe.
  3. Исправьте ошибки exe с помощью программного инструмента

dotNET.exe это исполняемый файл, который является частью NetTools 5.0 Программа, разработанная Мухаммед Ахмади Бидахвиди, Программное обеспечение обычно о по размеру.

Расширение .exe имени файла отображает исполняемый файл. В некоторых случаях исполняемые файлы могут повредить ваш компьютер. Пожалуйста, прочитайте следующее, чтобы решить для себя, является ли dotNET.exe Файл на вашем компьютере — это вирус или троянский конь, который вы должны удалить, или это действительный файл операционной системы Windows или надежное приложение.

Рекомендуется: Выявление ошибок, связанных с dotNET.exe
(опциональное предложение для Reimage — Cайт | Лицензионное соглашение | Персональные данные | Удалить)

DotNET.exe - это вирус или вредоносная программа?

DotNET.exe безопасно, или это вирус или вредоносная программа?

Первое, что поможет вам определить, является ли тот или иной файл законным процессом Windows или вирусом, это местоположение самого исполняемого файла. Например, такой процесс, как dotNET.exe, должен запускаться из, а не из другого места.

Для подтверждения откройте диспетчер задач, выберите «Просмотр» -> «Выбрать столбцы» и выберите «Имя пути к изображению», чтобы добавить столбец местоположения в диспетчер задач. Если вы обнаружите здесь подозрительный каталог, возможно, стоит дополнительно изучить этот процесс.

Еще один инструмент, который иногда может помочь вам обнаружить плохие процессы, — это Microsoft Process Explorer. Запустите программу (не требует установки) и активируйте «Проверить легенды» в разделе «Параметры». Теперь перейдите в View -> Select Columns и добавьте «Verified Signer» в качестве одного из столбцов.

Если статус процесса «Проверенная подписывающая сторона» указан как «Невозможно проверить», вам следует взглянуть на процесс. Не все хорошие процессы Windows имеют метку проверенной подписи, но ни один из плохих.

Самые важные факты о dotNET.exe:

  • Находится в C: Program Files Net Tools вложенная;
  • Издатель: Мухаммед Ахмади Бидахвиди
  • Полный путь:
  • Файл справки: www.mabsoft.com/nettools.htm
  • URL издателя: www.mabsoft.com
  • Известно, что до по размеру на большинстве окон;

Если у вас возникли какие-либо трудности с этим исполняемым файлом, вам следует определить, заслуживает ли он доверия, перед удалением dotNET.exe. Для этого найдите этот процесс в диспетчере задач.

Найдите его местоположение (оно должно быть в C: Program Files Net Tools ) и сравните его размер с приведенными выше фактами.

Если вы подозреваете, что можете быть заражены вирусом, вы должны немедленно попытаться это исправить. Чтобы удалить вирус dotNET.exe, вам необходимо Загрузите и установите приложение полной безопасности, например Malwarebytes., Обратите внимание, что не все инструменты могут обнаружить все типы вредоносных программ, поэтому вам может потребоваться попробовать несколько вариантов, прежде чем вы добьетесь успеха.

Кроме того, функциональность вируса может сама влиять на удаление dotNET.exe. В этом случае вы должны включить Безопасный режим с загрузкой сетевых драйверов — безопасная среда, которая отключает большинство процессов и загружает только самые необходимые службы и драйверы. Когда вы можете запустить программу безопасности и полный анализ системы.

Могу ли я удалить или удалить dotNET.exe?

Не следует удалять безопасный исполняемый файл без уважительной причины, так как это может повлиять на производительность любых связанных программ, использующих этот файл. Не забывайте регулярно обновлять программное обеспечение и программы, чтобы избежать будущих проблем, вызванных поврежденными файлами. Что касается проблем с функциональностью программного обеспечения, проверяйте обновления драйверов и программного обеспечения чаще, чтобы избежать или вообще не возникало таких проблем.

Согласно различным источникам онлайн,
5% людей удаляют этот файл, поэтому он может быть безвредным, но рекомендуется проверить надежность этого исполняемого файла самостоятельно, чтобы определить, является ли он безопасным или вирусом. Лучшая диагностика для этих подозрительных файлов — полный системный анализ с Reimage, Если файл классифицируется как вредоносный, эти приложения также удаляют dotNET.exe и избавляются от связанных вредоносных программ.

Однако, если это не вирус и вам необходимо удалить dotNET.exe, вы можете удалить NetTools 5.0 со своего компьютера с помощью программы удаления, которая должна находиться по адресу: «C: Program Files Net Tools unins000.exe» . Если вы не можете найти его деинсталлятор, вам может потребоваться удалить NetTools 5.0, чтобы полностью удалить dotNET.exe. Вы можете использовать функцию «Добавить / удалить программу» в Панели управления Windows.

  • 1. в Меню Пуск (для Windows 8 щелкните правой кнопкой мыши в нижнем левом углу экрана), нажмите Панель управления, а затем под Программы:
    o Windows Vista / 7 / 8.1 / 10: нажмите Удаление программы.
    o Windows XP: нажмите Установка и удаление программ.
  • 2. Когда вы найдете программу NetTools 5.0щелкните по нему, а затем:
    o Windows Vista / 7 / 8.1 / 10: нажмите Удалить.
    o Windows XP: нажмите Удалить or Изменить / Удалить вкладка (справа от программы).
  • 3. Следуйте инструкциям по удалению NetTools 5.0.

Распространенные сообщения об ошибках в dotNET.exe

Наиболее распространенные ошибки dotNET.exe, которые могут возникнуть:

• «Ошибка приложения dotNET.exe».
• «Ошибка dotNET.exe».
• «dotNET.exe столкнулся с проблемой и должен быть закрыт. Приносим извинения за неудобства».
• «dotNET.exe не является допустимым приложением Win32».
• «dotNET.exe не запущен».
• «dotNET.exe не найден».
• «Не удается найти dotNET.exe».
• «Ошибка запуска программы: dotNET.exe.»
• «Неверный путь к приложению: dotNET.exe.»

Эти сообщения об ошибках .exe могут появляться во время установки программы, во время выполнения связанной с ней программы NetTools 5.0, во время запуска или завершения работы Windows или даже во время установки операционной системы Windows. Отслеживание момента появления ошибки dotNET.exe является важной информацией при устранении неполадок.

Как исправить dotNET.exe

Аккуратный и опрятный компьютер — это один из лучших способов избежать проблем с NetTools 5.0. Это означает выполнение сканирования на наличие вредоносных программ, очистку жесткого диска cleanmgr и ПФС / SCANNOWудаление ненужных программ, мониторинг любых автозапускаемых программ (с помощью msconfig) и включение автоматических обновлений Windows. Не забывайте всегда делать регулярные резервные копии или хотя бы определять точки восстановления.

Если у вас возникла более серьезная проблема, постарайтесь запомнить последнее, что вы сделали, или последнее, что вы установили перед проблемой. Использовать resmon Команда для определения процессов, вызывающих вашу проблему. Даже в случае серьезных проблем вместо переустановки Windows вы должны попытаться восстановить вашу установку или, в случае Windows 8, выполнив команду DISM.exe / Online / Очистка-изображение / Восстановить здоровье, Это позволяет восстановить операционную систему без потери данных.

Чтобы помочь вам проанализировать процесс dotNET.exe на вашем компьютере, вам могут пригодиться следующие программы: Менеджер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска. Единый рейтинг риска безопасности указывает на вероятность того, что это шпионское ПО, вредоносное ПО или потенциальный троянский конь. Это антивирус обнаруживает и удаляет со своего жесткого диска шпионское и рекламное ПО, трояны, кейлоггеры, вредоносное ПО и трекеры.

Обновлено в январе 2023 г .:

Мы рекомендуем вам попробовать это новое программное обеспечение, которое исправляет компьютерные ошибки, защищает их от вредоносных программ и оптимизирует производительность вашего ПК. Этот новый инструмент исправляет широкий спектр компьютерных ошибок, защищает от таких вещей, как потеря файлов, вредоносное ПО и сбои оборудования.

  • Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.

скачать
(опциональное предложение для Reimage — Cайт | Лицензионное соглашение | Персональные данные | Удалить)

Загрузите или переустановите dotNET.exe

Вход в музей Мадам Тюссо не рекомендуется загружать замещающие exe-файлы с любых сайтов загрузки, так как они могут содержать вирусы и т. д. Если вам нужно скачать или переустановить dotNET.exe, мы рекомендуем переустановить основное приложение, связанное с ним. NetTools 5.0.

Информация об операционной системе

Ошибки dotNET.exe могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:

  • Windows 10
  • Windows 8.1
  • Windows 7
  • Windows Vista
  • Windows XP
  • Windows ME
  • Windows 2000

Содержание

  1. Что такое dotNET.exe? Это безопасно или вирус? Как удалить или исправить это
  2. Что такое dotNET.exe?
  3. DotNET.exe безопасно, или это вирус или вредоносная программа?
  4. Могу ли я удалить или удалить dotNET.exe?
  5. Распространенные сообщения об ошибках в dotNET.exe
  6. Как исправить dotNET.exe
  7. Обновлено апреля 2021 года:
  8. Загрузите или переустановите dotNET.exe
  9. Папка dotnet что это
  10. .NET Core
  11. Пример 1
  12. Пример 2
  13. .NET Standard
  14. Пример 3
  15. Пример 4
  16. Заключение
  17. EF Core для CoreCLR: тот же код, разные зависимости
  18. Создание проекта Test
  19. Выполнение тестов в CoreCLR
  20. .NET или CoreCLR: те же API, тот же код
  21. Команда dotnet dotnet command
  22. name Name
  23. Краткий обзор Synopsis
  24. Описание Description
  25. Параметры Options
  26. Параметры для dotnet Options for dotnet by itself
  27. Параметры пакета SDK для выполнения команды SDK options for running a command
  28. Параметры среды выполнения Runtime options
  29. Команды dotnet dotnet commands
  30. Общее General
  31. Ссылки на проекты Project references
  32. Пакеты NuGet NuGet packages
  33. Команды NuGet NuGet commands
  34. Команды глобального, установочного и локального средства Global, tool-path, and local tools commands
  35. Дополнительные средства Additional tools
  36. Примеры Examples
  37. Переменные среды Environment variables
  38. Видео

Что такое dotNET.exe? Это безопасно или вирус? Как удалить или исправить это

Что такое dotNET.exe?

dotNET.exe это исполняемый файл, который является частью NetTools 5.0 Программа, разработанная Мухаммед Ахмади Бидахвиди, Программное обеспечение обычно о по размеру.

Dotnet что это за папка в windows 10

DotNET.exe безопасно, или это вирус или вредоносная программа?

Первое, что поможет вам определить, является ли тот или иной файл законным процессом Windows или вирусом, это местоположение самого исполняемого файла. Например, такой процесс, как dotNET.exe, должен запускаться из, а не из другого места.

Если статус процесса «Проверенная подписывающая сторона» указан как «Невозможно проверить», вам следует взглянуть на процесс. Не все хорошие процессы Windows имеют метку проверенной подписи, но ни один из плохих.

Самые важные факты о dotNET.exe:

Если у вас возникли какие-либо трудности с этим исполняемым файлом, вам следует определить, заслуживает ли он доверия, перед удалением dotNET.exe. Для этого найдите этот процесс в диспетчере задач.

Найдите его местоположение (оно должно быть в C: Program Files Net Tools ) и сравните его размер с приведенными выше фактами.

Если вы подозреваете, что можете быть заражены вирусом, вы должны немедленно попытаться это исправить. Чтобы удалить вирус dotNET.exe, вам необходимо Загрузите и установите приложение полной безопасности, например Malwarebytes., Обратите внимание, что не все инструменты могут обнаружить все типы вредоносных программ, поэтому вам может потребоваться попробовать несколько вариантов, прежде чем вы добьетесь успеха.

Могу ли я удалить или удалить dotNET.exe?

Не следует удалять безопасный исполняемый файл без уважительной причины, так как это может повлиять на производительность любых связанных программ, использующих этот файл. Не забывайте регулярно обновлять программное обеспечение и программы, чтобы избежать будущих проблем, вызванных поврежденными файлами. Что касается проблем с функциональностью программного обеспечения, проверяйте обновления драйверов и программного обеспечения чаще, чтобы избежать или вообще не возникало таких проблем.

Распространенные сообщения об ошибках в dotNET.exe

Наиболее распространенные ошибки dotNET.exe, которые могут возникнуть:

• «Ошибка приложения dotNET.exe».
• «Ошибка dotNET.exe».
• «dotNET.exe столкнулся с проблемой и должен быть закрыт. Приносим извинения за неудобства».
• «dotNET.exe не является допустимым приложением Win32».
• «dotNET.exe не запущен».
• «dotNET.exe не найден».
• «Не удается найти dotNET.exe».
• «Ошибка запуска программы: dotNET.exe.»
• «Неверный путь к приложению: dotNET.exe.»

Как исправить dotNET.exe

Если у вас возникла более серьезная проблема, постарайтесь запомнить последнее, что вы сделали, или последнее, что вы установили перед проблемой. Использовать resmon Команда для определения процессов, вызывающих вашу проблему. Даже в случае серьезных проблем вместо переустановки Windows вы должны попытаться восстановить вашу установку или, в случае Windows 8, выполнив команду DISM.exe / Online / Очистка-изображение / Восстановить здоровье, Это позволяет восстановить операционную систему без потери данных.

Чтобы помочь вам проанализировать процесс dotNET.exe на вашем компьютере, вам могут пригодиться следующие программы: Менеджер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска. Единый рейтинг риска безопасности указывает на вероятность того, что это шпионское ПО, вредоносное ПО или потенциальный троянский конь. Это антивирус обнаруживает и удаляет со своего жесткого диска шпионское и рекламное ПО, трояны, кейлоггеры, вредоносное ПО и трекеры.

Обновлено апреля 2021 года:

Мы рекомендуем вам попробовать этот новый инструмент. Он исправляет множество компьютерных ошибок, а также защищает от таких вещей, как потеря файлов, вредоносное ПО, сбои оборудования и оптимизирует ваш компьютер для максимальной производительности. Это исправило наш компьютер быстрее, чем делать это вручную:

Загрузите или переустановите dotNET.exe

Вход в музей Мадам Тюссо не рекомендуется загружать замещающие exe-файлы с любых сайтов загрузки, так как они могут содержать вирусы и т. д. Если вам нужно скачать или переустановить dotNET.exe, мы рекомендуем переустановить основное приложение, связанное с ним. NetTools 5.0.

Информация об операционной системе

Ошибки dotNET.exe могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:

Источник

Папка dotnet что это

February 22, 2018 | 17 Minute Read

.NET Core

Пример 1

Для начала создадим и запустим консольное приложение Hello World (я буду использовать PowerShell для Windows, но в Bash для macOS или Linux все делается аналогично).

Давайте переместим часть логики в библиотеку классов. Для этого в дополнение к проекту hello создадим проект библиотеки классов.

Здесь мы хотим описать логику, которая будет формировать сообщение Hello World. Поэтому изменим содержимое файла Class1.cs на следующее:

Обновление файла Program.cs для дальнейшего использования класса HelloWorld:

Добавление теста в файл UnitTest1.cs:

Пример 2

Рассмотрим более интересный пример: создадим простой веб-сайт ASP.NET Core.

Откройте в браузере URL-адрес, который был выведен в консоли (это должен быть адрес localhost:5000).

Сейчас структура вашего проекта должна соответствовать вот такой структуре.

Структура созданного проекта:

Чтобы упростить редактирование файлов в Visual Studio, создадим файл решения *.SIN и добавим в него все проекты.

.NET Standard

BCL — это набор базовых API, не зависящих от инфраструктур пользовательского интерфейса и моделей приложений. В него входят простые типы, файловый ввод-вывод, сетевые API, API сериализации, XML и другое.

Пример 3

Сравним его с файлом проекта консольного приложения hello.

Пример 4

Пример приложения с использованием PowerCollections:

Если вы запустите программу, то увидите следующее:

Компилятор выкинул warning но программа отработала!

Конечно, неустранимые предупреждения, которые выводятся при каждой сборке, очень раздражают (а точнее БЕСЯТ!). Поэтому после проверки приложения вы можете отключить предупреждение, связанное с конкретным пакетом. Наше приложение работает правильно (корректно выводит содержимое созданной коллекции типа Bag ), поэтому сейчас мы отключим это сообщение. Для этого изменим файл hello.csproj и добавим атрибут NoWarn в ссылку на пакет.

Если вы снова запустите приложение, предупреждения уже не будет. Однако, если вы установите другой пакет, в котором используется режим совместимости, появятся новые предупреждения. При необходимости их тоже можно будет отключить.

Заключение

Платформа dotNet обладает рядом преимуществ одновременно для бизнесменов, пользователей и разработчиков.

DotNet — новая инициатива Microsoft, направленная на изменение компьютерного мира. Если говорить подробнее, то это набор нескольких технологий, программного обеспечения, стандартов и средств разработки. Основное преимущество dotNet для потребителя — реализация единого информационного пространства, соединяющего его с компьютерами и программами, а также ПО между собой. Разработчикам же она позволяет просто и быстро создавать нужные продукты.

Руководитель IT департамента любой компании имеет мечту. В этой мечте его предприятие совершает все деловые операции с партнерами исключительно электронным образом с использованием интернета, а работники его департамента лишены головной боли, связанной с прохождением бизнес-процессов. Это мечта о том, что все бизнес-процессы компании хорошо определены, стабильно исполняются, а также легко изменяемы и контролируемы как из локальной сети, так и с любого компьютера в интернете. Все работники компании имеют полный доступ к рабочей информации, электронной почте и личным документам из любой точки Земли независимо от того, пользуются ли они мобильным телефоном, Pocket PC, ноутбуком или мощной рабочей станцией.

Сегодня, в эпоху бурного развития электронной коммерции, имеющийся инструментарий создания сетевых торговых площадок не всегда удовлетворяет требованиям бизнеса. При разработке новых средств для этой области основное слово должна сказать технология Web-сервисов.

Уже достаточно долгое время при разработке программ применялись сервисы, предоставляемые сторонним ПО. Когда пришло понимание того, что проще один раз создать универсальное средство хранения информации и включать его в различные программы, нежели каждый раз изобретать новое, появились первые СУБД.

Следующим шагом стала реализация средств для обеспечения совместной работы, например Lotus Notes и Exchange, которые одновременно служили и платформами для разработки.

Затем вошли в обиход продукты, обеспечивающие доставку сообщений (Message Oriented Middleware), такие как IBM MQSeries и MSMQ. Они позволили организовать обмен сообщениями в распределенной системе, имеющей разнородные (и подчас ненадежные) каналы связи. Их отличие от почтовых серверов заключается в том, что они ориентированы на обмен информацией не между людьми, а между различными частями программных систем.

Наконец, одним из последних веяний стали серверы приложений и серверы интеграции приложений. Первые позволяют создавать масштабируемые решения из простых программных компонентов, предоставляя им готовые средства для обеспечения распределенных транзакций, контроля доступа к общим ресурсам (в частности, соединение с базой данных) и т. д.

Сервер интеграции приложений играет роль клея, являясь промежуточным звеном между существующими программными системами, помогая им преобразовывать данные и доставлять друг другу сообщения.

Описанные выше продукты, хотя и содержат довольно много новшеств, все же являются развитием существующих технологий. Действительно новой технологией dotNet стали Web-сервисы, реализация которых создает в Сети среду автоматизированного ведения бизнеса.

Если бы каждая компания программно предоставляла информацию о себе и своих услугах, тогда стало бы возможно создать трансконтинентальные конгломераты компаний, выстраивающих свои бизнес-процессы в цепочки, работающие без участия человека — лишь под его контролем. Технология Web-сервисов, предоставляющая открытые стандарты взаимодействия корпораций между собой, поможет реализовывать межкорпоративные информационные системы без длительного согласования интерфейсов.

Удобная и эффективная для пользователей, технология dotNet имееет неоспоримые преимущества и для разработчиков программных продуктов. Программистам dotNet позволяет создавать мощные информационные системы, использующие все возможности современных компьютеров и сетей без реализации вспомогательных функций (практически все эти функции берет на себя платформа). Она позволяет сосредоточится только на реализации бизнес-логики продукта. Следовательно, создатели программ будут способны быстро создавать качественные (и простые!) программы, имеющие множество возможностей, интегрированных c интернетом, столь необходимые пользователям. Это ведет к улучшению и удешевлению ПО, а также к уменьшению количества ошибок.

Dotnet что это за папка в windows 10В этой статье используются предварительные версии DotNet CLI и инструментария EF. Любая информация, изложенная в этой статье, может быть изменена.

Пока ничто никак не связано с EF. Я могла бы выбрать EF6 в этот момент, но добавлю EF Core в проект. Как всегда, для поиска и выбора EF Core можно использовать либо NuGet Package Manager, либо окно Package Manager Console. Я буду использовать консоль. Помните, что пакет entityframework предназначен для EF6. Чтобы получить EF Core, вы должны установить один из пакетов Microsoft.EntityFrameworkCore. Я выберу пакет SqlServer, в котором есть все необходимое для взаимодействия EF с SqlServer:

Затем я добавлю простой класс предметной области (Samurai.cs) и DbContext (SamuraiContext.cs), чтобы EF Core могла сохранять мои данные в базе данных, как показано на рис. 3. В EF Core нет магической строки подключения, как в EF6, поэтому я должна дать знать, какой провайдер и какую строку подключения я использую. Для простоты я включу это прямо в новый виртуальный метод DbContext: OnConfiguring. Я также создала перегруженную версию конструктора, позволяющую передавать провайдер и другие необходимые детали. Вскоре я воспользуюсь этой версией.

Рис. 3. Класс Samurai и DbContext-класс SamuraiContext

Это работает, как обычно: создаются новая папка Migrations и файл миграции (рис. 4). В EF Core изменен способ сохранения снимков модели (model snapshots), о чем можно прочитать в ранее упомянутой статье за январь 2016 года.

После подготовки миграций команда update-database успешно создает за меня новую базу данных EFCoreFullNet в SQL Server localdb.

Наконец, я добавлю в решение тестовый проект из того же шаблона проекта Unit Test, которым я всегда пользовалась в Visual Studio. Затем добавлю ссылку на свою библиотеку классов EFCoreFullNet. Мне не нужно, чтобы мой тестовый проект использовал базу данных для проверки работы EF Core, поэтому вместо установки пакета SqlServer я выполню следующую NuGet-команду применительно к новому тестовому проекту:

Провайдер InMemory — настоящая благодать для тестирования при применении EF Core. Он использует данные в памяти для представления базы данных и кеша EF, а EF Core будет взаимодействовать с этим кешем во многом так же, как с базой данных: добавлять, удалять и обновлять данные.

Помните тот дополнительный конструктор, созданный мной в SamuraiContext? Тесты TestEFCoreFullNet, приведенные на рис. 5, используют его преимущества. Заметьте, что в конструкторе класса теста я создала средство формирования (builder) DbContextOptions для SamuraiContext, а затем указала, что он должен использовать провайдер InMemory. Далее при создании экземпляра SamuraiContext я передаю в метод эти параметры (options). Метод OnConfiguring в SamuraiContext предназначен для проверки того, сконфигурированы ли уже параметры. Если да, он будет использовать их (в данном случае провайдер InMemory), нет — он перейдет к настройке на работу с SqlServer и строкой подключения, «зашитой» мной в код метода.

Рис. 5. Тестирование с помощью EFCore

Этот метод теста используется преимущества некоторых специфических средств EF Core, которых нет в EF6. Я писала об этих и других средствах отслеживания изменений в EF Core в своей статье за август 2016 года (msdn.com/magazine/mt767693). Например, после создания нового объекта самурая я добавляю его в контекст методом DbContext.Add, позволяя EF определить, с каким DbSet его нужно связать. Затем я сохраняю это в хранилище данных — в моем случае список какого-либо типа в памяти, управляемый провайдером InMemory. Далее я модифицирую объект самурая, создаю новый экземпляр DbContext и использую новую команду Update из EF Core, чтобы SaveChanges гарантированно обновил хранящийся объект самурая, а не создал новый такой объект. Наконец, я запрашиваю контекст для этого самурая и применяю Assert, чтобы убедиться, что контекст действительно возвращает обновленное имя.

EF Core для CoreCLR: тот же код, разные зависимости

Я могла бы остаться в Windows и Visual Studio 2015 Update 3 для следующей демонстрации, где показала бы, как использовать те же EF Core API, тот же код и те же тесты с ориентацией на исполняющую среду CoreCLR, но это выглядело бы слишком похоже на первый вариант — для Windows. Поэтому я собираюсь впасть в другую крайность и создать CoreCLR-вариацию на своем MacBook, поясняя все этапы по мере их прохождения.

.NET Core не полагается на Windows или ее инструментарий. Помимо Visual Studio 2015, я могла бы использовать… ну, я полагаю, Emacs в прошлом был популярным редактором, отличным от Visual Studio. Однако существуют некоторые кросс-платформенные IDE, из которых есть, что выбрать, — не только для написания кода, но и для отладки и поддержки Git. Например, в номере «MSDN Magazine» за август 2016 года Алессандро Дель Соле (Alessandro Del Sole) продемонстрировал создание веб-сайта ASP.NET Core с использованием Visual Studio Code (msdn.com/magazine/mt767698). По его экранным снимкам я видела, что он работал в Windows, но в остальном среда для Mac в основном та же.

Другой кросс-платформенный вариант — Rider от JetBrains. Rider предназначен специально для C#, и лучший способ описать его: «ReSharper в собственной IDE».

Я создала папку для хранения проектов Library и Test с подпапками для каждого проекта. В подпапке Library я могу вызвать dotnet new для создания проекта Library. На рис. 6 показана эта команда наряду с подтверждением о создании проекта. Перечисление содержимого папки показывает, что создано только два файла, самый важный из которых — project.json — содержит список необходимых NuGet-пакетов и прочие детали проекта. Library.cs — это просто пустой файл класса, который я удалю.

Dotnet что это за папка в windows 10
Рис. 6. Создание новой CoreCLR Library командой dotnet

Затем я открою проект этой новой библиотеки в Visual Studio Code. Я могу просто ввести code в строке приглашения. Visual Studio Code открывает проект как целевую папку, автоматически распознает пакеты, перечисленные в json-файле и предлагает выполнить dotnet restore для исправления неразрешенных зависимостей. Я с радостью соглашаюсь на это предложение.

Файл project.json выглядит, как на рис. 7.

Рис. 7. Файл Project.json

Мой следующий шаг — добавление EF Core в проект. Учтите: поскольку я работаю сейчас на Mac, SqlServer недоступен. Я задействую провайдер PostgreSQL для EF Core, который записывается в пустой на данный момент раздел project.json:

Теперь я просто копирую свои файлы Samurai.cs и SamuraiContext.cs. Я должна изменить класс OnConfiguring, чтобы задействовать PostgreSQL и его строку подключения вместо SQL Server. Та часть кода теперь выглядит так:

Теперь следовало бы выполнить миграции, но здесь вы наталкиваетесь на известное ограничение текущей версии Preview2 инструментария EF Core вне Visual Studio, а именно: для нахождения критически важных ресурсов нужен исполняемый проект. Поэтому поначалу это добавляет головной боли, но особых дополнительных усилий не требуется. Подробнее см. по ссылке bit.ly/2btm4OW.

Создание проекта Test

Я продолжу и добавлю тестовый проект, который потом смогу задействовать как исполняемый проект для выполнения миграций. Возвращаясь в командную строку, я перехожу в подпапку Oct2016DataPointsMac/Test, созданную мной ранее, и выполняю команду:

В Visual Studio Code вы увидите новый project.json в папке Test. Поскольку этот проект будет отвечать за проверку возможности выполнения командных строк EF, вы должны добавить в зависимости ссылку на пакеты EF Core Tools. Кроме того, тестовому проекту нужна ссылка на Library, поэтому ее тоже следует добавить в зависимости в файле project.json. Вот раздел dependencies после этих добавлений:

Теперь я могу обращаться к командам EF Core из папки Library. Заметьте, что на рис. 8 команда указывает на проект в папке Test через параметр —startup-project. Я буду использовать его в каждой из команд миграций.

Dotnet что это за папка в windows 10
Рис. 8. Исполняемый проект позволяет библиотеке использовать EF-команды миграции

Когда я перечисляла в своей рубрике миграции EF Core, команды миграций dotnet ef выглядели иначе, чем команды PowerShell, но они ведут к одинаковой логике в API миграций.

Сначала я создам миграцию с помощью:

Теперь можно создать базу данных командой:

Затем я проверила, что база данных PostgreSQL, таблицы и отношения действительно созданы. С этой целью в OS X можно использовать целый ряд утилит. На своем Mac я предпочла кросс-платформенный JetBrains DataGrip в качестве IDE базы данных.

Выполнение тестов в CoreCLR

Наконец, я копирую класс TestEFCoreFullNet из предыдущего решения в папку Test. И вновь мне придется внести инфраструктурные изменения для использования xUnit вместо MS Test: это потребует изменений нескольких пространств имен, удаления атрибута TestClass, замены атрибутов TestMethod на Fact и замены Assert.AreEqual на Assert.Equal. О, и конечно, я переименую класс в TestEFCoreCoreClr.

В project.json тоже должно быть известно о провайдере InMemory, поэтому я добавляю:

в раздел dependencies, а затем снова выполняю команду dotnet restore.

Мой тестовый проект под xUnit использует средство запуска тестов xUnit из командной строки. Поэтому я возвращаюсь к окну терминала для запуска тестов командой dotnet test. На рис. 9 показан вывод теста, прошедшего с большим успехом с тем исключением, что средство запуска тестов из командной строки не обеспечивает удовлетворительного вывода зеленым цветом для успешно прошедших тестов.

Dotnet что это за папка в windows 10
Рис. 9. Вывод успешно выполненного теста xUnit

.NET или CoreCLR: те же API, тот же код

Выражаю благодарность за рецензирование статьи эксперту Microsoft Джеффу Фрицу (Jeff Fritz).

Источник

Команда dotnet dotnet command

name Name

Краткий обзор Synopsis

Чтобы получить сведения о среде и доступных командах, выполните следующие действия: To get information about the available commands and the environment:

Выполнение команды (требуется установка пакета SDK): To run a command (requires SDK installation):

Запуск приложения: To run an application:

Описание Description

Команда dotnet выполняет две функции: The dotnet command has two functions:

Параметры Options

Параметры для dotnet Options for dotnet by itself

—info

—version

—list-runtimes

—list-sdks

-h|—help

Выводит список доступных команд. Prints out a list of available commands.

Параметры пакета SDK для выполнения команды SDK options for running a command

-d|—diagnostics

Включает вывод диагностических данных. Enables diagnostic output.

-v|—verbosity

-h|—help

command options

Для каждой команды определяются относящиеся к ней параметры. Each command defines options specific to that command. Список доступных для команды параметров можно просмотреть на соответствующей ей странице. See specific command page for a list of available options.

Параметры среды выполнения Runtime options

Путь, содержащий политику проверки и проверяемые сборки. Path containing probing policy and assemblies to probe.

Путь к дополнительному файлу .deps.json. Path to an additional .deps.json file. Файл deps.json содержит список зависимостей, зависимости компиляции и сведения о версии, используемые для устранения конфликтов сборок. A deps.json file contains a list of dependencies, compilation dependencies, and version information used to address assembly conflicts. Дополнительные сведения см. в разделе Файлы конфигурации среды выполнения на GitHub. For more information, see Runtime Configuration Files on GitHub.

—runtimeconfig

Поведение наката также можно настроить в свойствах файла проекта, файла конфигурации среды выполнения и переменной среды. Roll forward behavior can also be configured in a project file property, a run-time configuration file property, and an environment variable. Дополнительные сведения см. в разделе Накат основной версии среды выполнения. For more information, see Major-version runtime roll forward.

Определяет поведение, когда требуемая общая платформа недоступна. Defines behavior when the required shared framework is not available. Параметр N может принимать следующие значения: N can be:

Дополнительные сведения о накате можно найти в этой статье. For more information, see Roll forward.

—fx-version

Команды dotnet dotnet commands

Общее General

Ссылки на проекты Project references

Команда Command Функция Function
dotnet add reference dotnet add reference Добавляет ссылку на проект. Adds a project reference.
dotnet list reference dotnet list reference Перечисляет ссылки на проекты. Lists project references.
dotnet remove reference dotnet remove reference Удаляет ссылку на проект. Removes a project reference.

Пакеты NuGet NuGet packages

Команда Command Функция Function
dotnet add package dotnet add package Добавляет пакет NuGet. Adds a NuGet package.
dotnet remove package dotnet remove package Удаляет пакет NuGet. Removes a NuGet package.

Команды NuGet NuGet commands

Команда Command Функция Function
dotnet nuget delete dotnet nuget delete Удаляет пакет с сервера или из списка. Deletes or unlists a package from the server.
dotnet nuget push dotnet nuget push Отправляет пакет на сервер и публикует его. Pushes a package to the server and publishes it.
dotnet nuget locals dotnet nuget locals Очищает или перечисляет локальные ресурсы NuGet в кэше HTTP-запросов, временном кэше или папке пакетов, используемой на уровне компьютера. Clears or lists local NuGet resources such as http-request cache, temporary cache, or machine-wide global packages folder.
dotnet nuget add source dotnet nuget add source Добавляет источник NuGet. Adds a NuGet source.
dotnet nuget disable source dotnet nuget disable source Отключает источник NuGet. Disables a NuGet source.
dotnet nuget enable source dotnet nuget enable source Включает источник NuGet. Enables a NuGet source.
dotnet nuget list source dotnet nuget list source Перечисляет все настроенные источники NuGet. Lists all configured NuGet sources.
dotnet nuget remove source dotnet nuget remove source Удаляет источник NuGet. Removes a NuGet source.
dotnet nuget update source dotnet nuget update source Обновляет источник NuGet. Updates a NuGet source.

Команды глобального, установочного и локального средства Global, tool-path, and local tools commands

Команда Command Функция Function
dotnet tool install dotnet tool install Устанавливает средство на компьютере. Installs a tool on your machine.
dotnet tool list dotnet tool list Выводит все глобальные, установочные и локальные средства, установленные на компьютере. Lists all global, tool-path, or local tools currently installed on your machine.
dotnet tool search dotnet tool search Ищет в NuGet.org средства, в названии или метаданных которых есть указанный поисковый запрос. Searches NuGet.org for tools that have the specified search term in their name or metadata.
dotnet tool uninstall dotnet tool uninstall Удаляет средство с компьютера. Uninstalls a tool from your machine.
dotnet tool update dotnet tool update Обновляет средство, установленное на компьютере. Updates a tool that is installed on your machine.

Дополнительные средства Additional tools

Средство Tool Функция Function
dev-certs dev-certs Создает сертификаты разработки и управляет ими. Creates and manages development certificates.
ef ef Средства командной строки для Entity Framework Core. Entity Framework Core command-line tools.
sql-cache sql-cache Средства командной строки для кэша SQL Server. SQL Server cache command-line tools.
user-secrets user-secrets Управляет секретами пользователей для разработки. Manages development user secrets.
watch watch Запускает наблюдатель за файлами, который выполняет команду при изменении файлов. Starts a file watcher that runs a command when files change.

Примеры Examples

Сборка проекта и его зависимостей в указанном каталоге: Build a project and its dependencies in a given directory:

Запуск приложения: Run an application:

Переменные среды Environment variables

Папка глобальных пакетов. The global packages folder. Если значение не задано, то по умолчанию в Unix используется

/.nuget/packages on Unix or %userprofile%.nugetpackages on Windows.

Задает расположение служебного индекса, который будет использоваться общим узлом при загрузке среды выполнения. Specifies the location of the servicing index to use by the shared host when loading the runtime.

Дополнительные сведения о накате можно найти в этой статье. For more information, see Roll forward.

Переопределяет обнаруженный RID. Overrides the detected RID.

Расположение общего хранилища, которое в некоторых случаях используется для разрешения сборки. Location of the «shared store» which assembly resolution falls back to in some cases.

Список сборок, из которого осуществляется загрузка и выполнение перехватчиков запуска. List of assemblies to load and execute startup hooks from.

Указывает каталог, в который извлекается однофайловое приложение перед выполнением. Specifies a directory to which a single-file application is extracted before it is executed.

Дополнительные сведения об однофайловых исполняемых файлах см. здесь. For more information, see Single-file executables.

Источник

Видео

Удали эти программы ПРЯМО СЕЙЧАС! | Программы для Windows 10

Удали эти программы ПРЯМО СЕЙЧАС! | Программы для Windows 10

Что можно удалить на диске С? Что нельзя удалять? Руководство для пользователей ПК

Что можно удалить на диске С? Что нельзя удалять? Руководство для пользователей ПК

2 ПРОСТЫХ СПОСОБА УСТАНОВИТЬ .NET FRAMEWORK 3.5 В WINDOWS 10 / INSTALL .NET FRAMEWORK 3.5 WINDOWS10

2 ПРОСТЫХ СПОСОБА УСТАНОВИТЬ .NET FRAMEWORK 3.5 В WINDOWS 10 / INSTALL .NET FRAMEWORK 3.5 WINDOWS10

Какие файлы и папки можно смело удалять в Windows 10 для оптимизации и увеличения свободного места?

Какие файлы и папки можно смело удалять в Windows 10 для оптимизации и увеличения свободного места?

Как отключить Runtime Broker Windows 10 навсегда и на время?

Как отключить Runtime Broker Windows 10 навсегда и на время?

Что такое .Net Framework?

Что такое .Net Framework?

Что за папка $WinREAgent в Windows 11 и Windows 10 и можно ли её удалить

Что за папка $WinREAgent в Windows 11 и Windows 10 и можно ли её удалить

Как скачать .NET Framework всех версий для Windows 11/10/8.1/7

Как скачать .NET Framework всех версий для Windows 11/10/8.1/7

Права администратора в Windows 10

Права администратора в Windows 10

Как стать владельцем файла или папки и получить доступ на просмотр и редактирование ✍️👁️‍🗨️📁

Как стать владельцем файла или папки и получить доступ на просмотр и редактирование ✍️👁️‍🗨️📁

В этой статье я рассмотрю компоненты платформы .NET Core 2.0, необходимые для загрузки и выполнения .NET Core-приложений, а также артефакты для двух возможных типов развертывания.

Текст объемный и рассчитан на:

  • начинающих разработчиков, которые только знакомятся с платформой .NET Core;
  • опытных разработчиков, выполняющих роль DevOps-инженеров в produсtion-окружении.

В статье не упоминается процесс создания приложений при помощи SDK (dotnet CLI), однако эта информация будет полезной для понимания, как работает SDK, а именно её основной компонент (ядро) — «драйвер» dotnet.dll, поскольку эта библиотека является управляемой сборкой и выполняется на .NET Core.

Примеры процессов выполнения описаны для ОС Windows, но работают по тому же принципу и на других ОС (с учетом различных расширений исполняемых файлов и нативных библиотек).

0. Pay-for-Play

Каждому .NET-разработчику известно с пелёнок: чтобы запустить любое .NET-приложение, на целевом компьютере должен быть установлен .NET Framework, а именно CLR + BCL.

BCL располагается в GAC, откуда приложения загружают необходимые для работы зависимости.

Архитектура .NET Core в общем виде выглядит так же: .NET Core = Core CLR + Core FX (новое название для BCL), но отличается способом разрешения этих компонентов, а также способом загрузки среды выполнения (CLR). Вместо заголовка в управляемой сборке MyApp.exe в .NET Framework, в .NET Core MyApp.exe сам по себе является нативной программой загрузки Core CLR.

В .NET Core все компоненты программы, которые мы определяем на этапе компиляции, являются зависимостями приложения (включая Core CLR, JIT), которые инфраструктура .NET Core рассматривает как пакеты. Такой пакет называется asset, при этом он может быть как NuGet-пакетом, так и обычным файлом.

Примеры компонентов, которые поставляются через NuGet:

  • Microsoft.NETCore.Runtime.CoreCLR — Core CLR.
  • Microsoft.NETCore.Jit — JIT-компилятор.
  • System.Private.CoreLib — базовые типы System.Object, System.Int32, System.String (аналог mscorlib.dll).
  • System.Console — доступ к консоли.

Эти зависимости в распакованном виде при запуске приложения должны находиться в одной из определенных директорий (папке .NET Core фреймворка — Core FX, папке приложения или любом NuGet-кеше).

Благодаря такой модели .NET Core-приложение состоит из пугающе огромного количества мелких модулей, но это сделано, чтобы уменьшить объем ненужных зависимостей.

Этот подход называется «pay-for-play»; другими словами, приложения загружают только ту функциональность, которая им необходима, но каждая такая функциональность содержится в отдельной сборке.

1. FDD vs SCD

Существует два типа развертывания .NET Core-приложений:

  • Portable (Framework-dependent deployment — FDD)
  • Standalone (Self-contained deployment — SCD)

Portable (FDD)-приложение похоже на традиционное .NET Framework-приложение. В данном случае определенная версия .NET Core-фреймворка (также используются термины shared framework, .NET Core Runtime, redist) должна находиться на целевом компьютере, и при запуске хост процесс загрузит Core CLR, Core FX из папки фреймворка.

В Standalone (SCD)-приложении все компоненты для выполнения (CoreCLR, CoreFX), а также сторонние библиотеки, то есть абсолютно все зависимости, поставляются вместе с самим приложением (чаще всего в одной папке).

Важно понимать, что Standalone-приложение привязано к определенной ОС и архитектуре (например, Windows 7 x64 или OSX 10.12 x64). Такой идентификатор называется Runtime identifier (RID). Для каждой ОС/архитектуры существует своя версия библиотеки Core CLR (и прочих нативных компонентов), поэтому для Standalone-приложений на этапе компиляции в свойстве RuntimeIdentifier нужно указывать параметры целевой системы (RID).

Такое приложение будет работать на любом компьютере с определенной ОС/архитектурой, независимо от того, установлен ли .NET Core или нет.

2. .NET Core Runtimes (shared frameworks)

Для выполнения Portable-приложений на целевой машине должен быть установлен хотя бы один .NET Core Runtime (shared framework).

.NET Core Runtime устанавливается в папку C:Program Filesdotnet:

Файлы фреймворка(-ов) хранятся в папке C:Program Filesdotnetshared.

Основные составляющие .NET Core Runtime:

  • «Утилита» dotnet.exe для запуска .NET Core-приложения. Она называется мультплексор (muxer), и является основным драйвером инфраструктуры .NET Core. Эта программа служит «точкой входа» для запуска любых приложений и выполнения команд разработки. если установлена .NET Core SDK, то есть является хост-процессом любого приложения — corehost.
  • Runtime-компоненты (CoreCLR, CoreFX, и т.д.), устанавливаются в отдельную папку фреймворка C:Program Filesdotnetshared[Framework name][Framework version].
  • Host framework resolver — нативная библиотека, находится в папке
    C:Program Filesdotnethost[версия]hostfxr.dll. При запуске приложения, максимальная версия этой библиотеки выполняет разрешение версии фреймворка для последующего выполнения приложения.

Структура файлов при установке .NET Core Runtime.

Можно установить несколько версий фреймворка:

Для выполнения Portable-приложения необходимо запустить хост-процесс dotnet.exe и передать ему в качестве аргумента путь к управляемой сборке.

«C:Program Filesdotnet» добавляется к значению переменной среды PATH, благодаря чему Portable-приложения теперь могут запускаться из командной строки:

> dotnet path/to/App.dll

В папке приложения (там, где находится [AppName].dll) должен лежать файл [AppName].runtimeconfig.json. В нём указаны имя и версия фреймворка, которые должны быть использованы для выполнения Portable-приложения. Например:

MyApp.runtimeconfig.json

{
  "runtimeOptions": {
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "2.0.0"
    }
  }
}

Этот файл является обязательным для Portable-приложений.

Имея вышеприведенную конфигурацию, компоненты среды выполнения будут загружены из папки C:Program FilesdotnetsharedMicrosoft.NETCore.App2.0.0.

3. Структура Portable (FDD) .NET Core-приложения

Любое Portable .NET Core-приложение состоит из таких обязательных файлов:

  • [AppName].dll — IL-код приложения, точка входа.
  • [App dependencies]*.dll — все зависимости приложения, не входящие в состав CoreFX (сборки проектов, сторонние библиотеки, FCL).
  • [AppName].runtimeconfig.json — конфигурация среды выполнения, здесь указаны имя и версия .NET Core-фреймворка (runtime-компонентов). Файл является чем-то вроде MyApp.exe.config в .NET Frameowork. Эту конфигурацию можно изменять, если необходимо явно указать конкретный фреймворк.
  • [AppName].deps.json — перечень всех зависимостей приложения. Не рекомендуется изменять этот файл, потому что он генерируется при компиляции. Файл не является обязательным, но если его удалить, хост-процесс при запуске не сможет проверить пути всех файлов зависимостей, и выполнение начнется на свой страх и риск.

Документация.

Артефакты одного и того же Portable-приложения для различных версий платформы .NET Core:

Уменьшение количества файлов объясняется тем, что в Core FX 1.0 отсутствовали многие библиотеки, поэтому они шли в составе приложения, как обычные зависимости. В Core FX 2.0 эти сборки были добавлены, поэтому они больше не поставляются с приложением, а берутся из папки фреймворка.

4. Структура Standalone (SCD) .NET Core приложения

Такая же, как для Portable (FDD)-приложения, но дополнительно содержит все runtime-компоненты (CoreCLR, CoreFX) и собственный мультиплексор dotnet.exe, переименованный в [AppName].exe. Для .NET Core до версии 2.0 мультиплексор для запуска Standalone-приложения идентичен C:Program Filesdotnet.exe (тот же файл, только переименованный). Для .NET Core 2.0 используется мультиплексор из NuGet-пакета Microsoft.NETCore.DotNetAppHost. В пакете находится один файл apphost.exe, в который при компиляции «зашивается» в имя сборки (MyApp.dll), а сам файл переименовывается в MyApp.exe. При старте Standalone-приложения проверяется «привязка» исполняемого файла (MyApp.exe) к имени сборки, которую он может запустить (MyApp.dll).

Содержимое одного и того же Standalone-приложения для различных версий платформы .NET Core:

Наблюдается картина, противоположная Portable-приложениям — чем больше становится Core FX, тем больше файлов поставляется с приложением.

Рекомендации по выбору типа развертывания

  • Всегда отдавайте предпочтение Portable-развертыванию, потому что этот тип гораздо меньше по объему и более стабилен при запуске крупных приложений с большим количеством зависимостей. Кроме того, Portable-приложения легче в настройке, ведь они не зависят от RID.
  • Выбирайте Standalone, если нет возможности установить .NET Core Runtime, или если критична продолжительность запуска приложения. В Standalone-версии можно выиграть 1-2 секунды при запуске за счет удаления файла конфигурации [AppName].deps.json (помните, что при этом на вас ложится ответственность за наличие всех файлов зависимостей).

5. Runtime Configuration Files

Файлы [AppName].runtimeconfig.json и [AppName].deps.json называют Runtime Configuration Files (*.deps.json называют dependency manifest file). Они создаются в процессе компиляции и содержат всю информацию, необходимую для запуска dotnet.exe и выполнения приложения.

В [AppName].runtimeconfig.json задаются имя и версия .NET Core runtime (там же указывается, будет ли учтена patch-версия (SemVer) при поиске фреймворка), а также устанавливаются параметры работы Core CLR (режим работы сборщика мусора). Этот файл обязателен для Portable- и не обязателен для Standalone-приложения.

dotnet.exe ([AppName].exe) использует файл [AppName].deps.json для определения абсолютных путей всех зависимостей приложения при его запуске.

Структура [AppName].deps.json:

  • Секция targets

    Термином target называют целевую платформу (имя и версия), на котором должно выполняться данное приложение (напр., .NET Framework 4.6.2, .NET Core App 1.1, Xamarin.Mac 1.0, .NET Standard 1.6). Эта конфигурация аналогична NuGet target framework.

    Секция targets определяет платформу и дерево зависимостей для нее в формате

    [ID зависимости (пакета)]/[версия]: {
        dependencies: { список зависимостей (пакетов) данного пакета },
        относительные пути к управляемым и нативным файлам данного пакета
    }

    Для выполнения любого приложения, target должен обязательно содержать RID, например .NETCoreApp,Version=v1.1/win10-x64. Файл deps.json Standalone-приложения всегда один и содержит RID целевой платформы. Для Portable-приложения файлов deps.json два — один в папке фреймворка, второй в папке приложения. RID для Portable-приложений указан в файле [FrameworkName].deps.json в папке фреймворка. После того, как dotnet.exe определил фреймворк для выполнения приложения, он сперва загружает deps-файл этого фреймворка (например, C:Program FilesdotnetsharedMicrosoft.NETCore.App2.0.0Microsoft.NETCore.App.deps), а затем deps-файл приложения. Deps-файл приложения имеет более высокий приоритет.

    Рассмотрим подробнее содержимое файла deps.json Standalone-приложения:

    SampleApp.deps.json

    "targets": {
        ".NETCoreApp,Version=v1.1/win7-x64": {
            ...
            "libuv/1.9.1": {
                "dependencies": {
                    "Microsoft.NETCore.Platforms": "1.1.0"
                },
                "native": {
                    "runtimes/win7-x64/native/libuv.dll": {}
                }
          },
          ...
          "system.data.sqlclient/4.3.0": {
              "dependencies": {
                  "System.Data.Common": "4.3.0",
                  "System.IO.Pipes": "4.3.0",
                  "System.Text.Encoding.CodePages": "4.3.0",
                  "runtime.native.System.Data.SqlClient.sni": "4.3.0"
              },
              "runtimeTargets": {
                  "runtimes/unix/lib/netstandard1.3/System.Data.SqlClient.dll": {
                      "rid": "unix",
                      "assetType": "runtime"
                  },
                  "runtimes/win/lib/netstandard1.3/System.Data.SqlClient.dll": {
                      "rid": "win",
                      "assetType": "runtime"
                  }
              }
          },
          ...
          "runtime.win7-x64.microsoft.netcore.runtime.coreclr/1.1.1": {
            "runtime": {
              "runtimes/win7-x64/lib/netstandard1.0/SOS.NETCore.dll": {},
              "runtimes/win7-x64/lib/netstandard1.0/System.Private.CoreLib.dll": {},
              "runtimes/win7-x64/lib/netstandard1.0/mscorlib.dll": {}
            },
            "native": {
              "runtimes/win7-x64/native/System.Private.CoreLib.ni.dll": {},
              "runtimes/win7-x64/native/clretwrc.dll": {},
              "runtimes/win7-x64/native/coreclr.dll": {},
              "runtimes/win7-x64/native/dbgshim.dll": {},
              "runtimes/win7-x64/native/mscordaccore.dll": {},
              "runtimes/win7-x64/native/mscordbi.dll": {},
              "runtimes/win7-x64/native/mscorlib.ni.dll": {},
              "runtimes/win7-x64/native/mscorrc.debug.dll": {},
              "runtimes/win7-x64/native/mscorrc.dll": {},
              "runtimes/win7-x64/native/sos.dll": {}
            }
          }
    

    В свойстве dependencies перечислены зависимости (пакеты) конкретного пакета.
    Свойство runtimeTargets используется в deps-файле Portable-приложения и определяет пути файлов библиотек для конкретного RID. Такие RID-specific библиотеки поставляются вместе с Portable-приложением в папке runtimes.

    Свойства runtime и native содержат относительные пути управляемых (managed) и нативных библиотек соответственно. Свойство resources содержит относительные пути и локали локализованных сборок-ресурсов.

    Пути относительны к NuGet package cache, а не deps-файлу.

    Добавить сторонний deps-файл можно передав значение аргумента —additional-deps или переменную среды DOTNET_ADDITIONAL_DEPS.

    Такая возможность доступна только для Portable приложений.

    Значение аргумента может содержать полный путь к deps-файлу, а также путь к директории, где расположены общие deps-файлы. Внутри этой директории deps-файлы должны быть расположены в структуре shared[FX name][FX version]*.deps. Например, sharedMicrosoft.NETCore.App2.0.3MyAdditional.deps.json.

    Такой подход использует Visual Studio для неявного добавления в проект Application Insights через файл
    C:Program FilesdotnetadditionalDeps Microsoft.AspNetCore.ApplicationInsights.HostingStartup
    sharedMicrosoft.NETCore.App 2.0.3 Microsoft.AspNetCore.ApplicationInsights.HostingStartup.deps.json

    Когда dotnet.exe (MyApp.exe) определяет пути зависимостей приложения, для каждой отдельной библиотеки составляется список из runtime- и native-путей.

    Если в runtimeTargets для определенного RID есть библиотека, она добавляется к runtime- или native-списку исходя из указанного assetType.

  • Секция runtimeTarget
    содержит название и версию целевой платформы для выполнения. Секция targets в действительности содержит два элемента — для компиляции (без RID) и выполнения (обязательно с RID). Секция runtimeTarget используется для удобства и дублирует значение из секции targets, чтобы dotnet.exe не тратил время на обработку targets секции. Как уже говорилось, для Standalone-приложения RID целевой ОС содержится в deps-файле приложения, а для Portable — в deps-файле фреймворка.
  • Секция libraries
    определяет список всех зависимостей приложения (в формате ID пакета/версия:{metadata}) и содержит метаданные о каждой из них. В метаданных указываются:

    • тип зависимости (project, package, reference),
    • serviceable (только для типа package) — индикатор того, является ли пакет Serviceable (определяет, может ли сборка пакета быть пропатчена (заменена) внешними службами, Windows Update или .NET Core Servicing Index).
    • хэш пакета (для package зависимостей)
    • др. данные

6. Процесс запуска Portable .NET Core-приложения

На целевом компьютере должен быть установлен .NET Core Runtime, соответствующий конфигурации запускаемого приложения.

6.1. Запуск приложения
выполняется при помощи мультплексора (muxer) из командной строки (одинаково на любой ОС).

> dotnet pathtoMyApp.dll

dotnet.exe — переименованный corehost.exe, эта программа является хост-процессом любого .NET Core-приложения, с неё начинается процесс запуска.

6.2. [corehost] Поиск и загрузка Framework Resolver (hostfxr.dll)
На этом этапе dotnet.exe идет в папку [own directory]/host/fxr/. Для Portable-приложений эта библиотека расположена в общей папке C:Program Filesdotnethostfxr[FXR version]hostfxr.dll. Если версий будет несколько, dotnet.exe будет всегда использовать последнюю.

После загрузки hostfxr.dll (Framework Resolver) процесс запуска переходит в рамки этой библиотеки.

6.3. [hostfxr] Определение режима выполнения (standalone, muxer, split/FX)
Первая задача hostfxr — определить режим, в котором будет работать хост процесс и таким образом тип приложения — Portable (FDD) или Standalone (SCD). В Portable (FDD)-режиме он также определяет: это запускаемое приложение или команда SDK.

Определение типа выполнения (программа или команда SDK) происходит следующим образом:

— если среди аргументов есть такой, значение которого оканчивается на .dll или .exe — процесс запуска продолжится в режиме выполнение указанного файла. Если такого аргумента нет, управление будет передано SDK. Для этого из папки [own directory]sdk[version] (если такая существует) будет запущен dotnet.dll (как Portable приложение), и этой сборке будут переданы аргументы текущего хост процесса.

Также для Portable (FDD)-приложения hostfxr определяет фреймворк (.NET Core Runtime), откуда будут загружены компоненты для выполнения.

Алгоритм проверки очень простой — если в папке, откуда был запущен мультиплексор [AppName].exe (в нашем случае dotnet.exe), отсутствует coreclr.dll или [AppName].dll, то приложение Portable. Если один из этих двух файлов существует, то далее идет проверка — приложение Portable (split/FX) или Standalone. Если существует [AppName].dll, то приложение Standalone, иначе — Portable (split/FX).

Режим Split/FX используется для запуска xunit и означает, что приложение запускается происходит как Portable, с собственным hostfxr.dll. Этот режим не используется в версии .NET Core 2.0.

Запуск Portable-приложения может также осуществляться в так называемом Exec mode.
Для этого команда запуска первым аргументом должна содержать exec C:> dotnet exec ….

При запуске в таком режиме можно явно указать пути к файлам конфигурации:
—depsfile <PАTH>
—runtimeconfig <PАTH>

которые будут использованы вместо файлов в папке приложения.

6.4. [hostfxr] Определение .NET Core Runtime
Первым делом hostfxr определяет и загружает файлы конфигурации deps и runtimeconfig. Если ничего не переопределено в аргументах, эти файлы берутся из папки приложения.

На текущем этапе hostfxr определяет (по данным файла конфигурации), является ли приложение Portable или Standalone.

После загрузки файлов конфигурации и определения режима hostfxr определяет папку фреймворка (.NET Core Runtime).

Для этого hostfxr сначала определит, какие версии установлены в папке shared, а затем выберет из этого списка релиз-версию, с учетом значений в [AppName].runtimeconfig.json.

При выборе версии учитывается параметр Roll Forward On No Candidate Fx, который указывает строгость соответствия заданной версии и имеющихся на машине.

6.5. [hostfxr] Поиск и загрузка hostpolicy.dll
На текущем этапе всё готово для определения путей runtime-компонентов. Этой задачей занимается библиотека hostpolicy.dll, которая называется Host library.

Процесс поиска hostpolicy.dll заключается в последовательных проверках различных локаций. Но сначала определяется версия hostpolicy из deps-файла фреймворка (напр. C:Program FilesdotnetsharedMicrosoft.NETCore.App2.0.0Microsoft.NETCore.App.deps). В этом файле будет найден пакет с именем Microsoft.NETCore.DotNetHostPolicy и взята его версия.

Затем ищется патч (замена) hostpolicy.dll (с учетом версии, если она была определена на предыдущем шаге, и RID) в папке .NET Core Servicing (для Windows — в папке C:Program Files[ (x86)]coreservicingpkgs). Если такой файл найден, он загружается для дальнейшего использования.

Если файл не был найден на предыдущем этапе, hostpolicy.dll будет найдено в папке фреймворка.

Как только опеределена hostpolicy.dll, hostfxr загружает эту библиотеку и передает ей управление.

6.6. [hostpolicy] Определение списка зависимостей
Библиотека hostpolicy.dll отвечает за определение абсолютных путей всех зависимостей приложения.

Прежде всего hostpolicy создаст компонент под названием Dependencies Resolver, который в свою очередь загрузит два deps-файла — файл фреймворка и файл приложения.

Сперва загружается список из deps-файл фреймворка, где будут определены такие зависимости, как CoreCLR и библиотеки CoreFX. Затем список из deps-файла приложения, в котором указаны сборки нашего приложения и их зависимости.

Для каждого deps-файла Dependency Resolver составляет список всех зависимостей для указанной runtimeTarget.

Для каждого пакета сначала составляется список файлов из всех секций runtimeTargets (RID specific зависимости), далее — список всех файлов из секций native и runtime. Такой объединенный список относительных путей всех зависимостей в условном формате
ID пакета — RID — тип asset’а (runtime, native) — пути к файлам называется Target assets.

После того, как были составлены эти два списка файлов зависимостей (RID и не RID), выполняется процесс под названием Reconciling libraries with targets (согласования). Он заключается в том, что для каждого пакета из секции libraries проверяется, существует ли RID specific-файлы, которые должны переопределить обычные.

6.7. [hostpolicy] Определение путей TPA, Core CLR и CLR Jit
Далее Dependency resolver составляет список абсолютных путей файлов управляемых сборок — зависимостей приложения. Этот список называется TPA (Trusted Platform Assemblies) и передается Core CLR для настройки AppDomain. Также составляется список абсолютных путей директорий, в которых находятся остальных файлы зависимостей (кроме coreclr, corejit).

Определение абсолютных путей управляемых сборок происходит путем поиска файлов в Probe paths (путей зондирования). По умолчанию их два — папка фреймворка и папка приложения, и они основаны на расположении deps-файлов. Также можно добавить дополнительные пути:

1) передав аргумент —additionalprobingpath, например
--additionalprobingpath %UserProfile%\.nuget\packages

2) указав в файле [AppName].runtimeconfig.json (приоритет ниже, чем у аргумента), например

{
  "runtimeOptions": {
    "additionalProbingPaths": [
      "C:\Users\username\.nuget\packages"
    ]
  }
}

В папке фреймворка и приложения наличие файла проверятся (при условии, что он был указан в соответствующем deps-файле) без учета относительного пути, в остальных директориях с учетом относительно пути, потому что эти директории рассматриваются как кеш NuGet-пакета.

Очерёдность поиска:

  • папка приложения;
  • папка фреймворка
  • Probe paths

Если deps-файл приложения отсутствует, то в TPA попадают все файлы с расширением .ni.dll, .dll, .ni.exe, .exe из папки приложения.

После составления списка TPA, определяются пути CoreCLR и CLRJit.

При отсутствии deps-файла приложения, dotnet.exe вначале попытается найти эти библиотеки в [app directory]lib. При обычном выполнении пути берутся из папки фреймворка (отбросив относительный путь и взяв только имя файла).

Устанавливаются следующие настройки CoreCLR:

  • TRUSTED_PLATFORM_ASSEMBLIES — список обсолютных путей всех управляемых библиотек приложения.
  • NATIVE_DLL_SEARCH_DIRECTORIES — абсолютные пути директорий, где найдены нативные зависимости.
  • PLATFORM_RESOURCE_ROOTS — абсолютные пути директорий, где найдены зависимости-ресурсы
  • AppDomainCompatSwitch — константа «UseLatestBehaviorWhenTFMNotSpecified».
  • APP_CONTEXT_BASE_DIRECTORY — папка приложения.
  • APP_CONTEXT_DEPS_FILES — абсолютные пути deps-файлов приложения и фреймворка.
  • FX_DEPS_FILE — абсолютный путь deps-файла фреймворка.
  • PROBING_DIRECTORIES — дополнительные пути зондирования (если они были указаны).

Далее управление переходит к coreclr.dll.

7. Процесс запуска Standalone (SCD) .NET Core приложения

Процесс запуска Standalone-приложения отличается от Portable только начальным этапом, а также местоположением компонентов, которые по умолчанию должны располагаться в папке приложения.

7.1. Запуск приложения
выполняется с помощью запуска собственного мультиплексора MyApp.exe. В .NET Core < 2.0 этот мультиплексор является переименованным общим мультиплексором dotnet.exe. Начиная с .NET Core 2.0 используется отдельный мультиплексор apphost.exe (немного видоизмененная версия dotnet.exe).

Этот файл (apphost.exe) поставляется через NuGet в пакете Microsoft.NETCore.DotNetAppHost.
Внутри файла содержится текстовый placeholder (его значение — SHA-256 хэш строки foobar).
При выполнении команды SDK dotnet build значение placeholder’а меняется на имя запускаемой сборки (напр., MyApp.dll), а apphost.exe переименовывается в MyApp.exe. Таким образом происходит привязка исполняемого файла к сборке. При запуске приложения .NET Core >= 2.0 вначале проверяется эта «привязка».

7.2. Процесс запуска
происходит так же, как у Portable-приложения, за исключением того, что существует только один deps-файл и все зависимости ищутся в папке приложения или по указанным —additionalprobepaths.

8. Подведем итоги

  • Компонентная модель .NET Core (Runtime, BCL) полностью состоит из NuGet-пакетов.
  • Существует два типа развертывания — FDD и SCD. По возможности рекомендуется использовать Framework Dependent-развертывание, чтобы избежать сложностей с платформозависимыми компонентами и не поставлять лишние зависимости.
  • Как мы могли убедится, есть достаточно много возможностей повлиять на процесс запуска на целевой машине, и при необходимости переопределить/пропатчить файлы зависимостей, а также добавить неявные (динамически запускаемые) зависимости.
  • Не рекомендуется без особых причин удалять или изменять файл Dependency manifest (*.deps.json) .
  • Используя —additional-deps и —additionalprobepaths мы можем размещать runtime-компоненты в нужной нам файловой структуре.
  • Используя Exec mode можно переопределить файлы конфигурации приложения.
  • Посмотреть Trace-лог процесса запуска можно, установив переменную среды COREHOST_TRACE=1

Хотите знать, что такое «DotNet»? Тогда вам нужно дочитать статью до конца. Дотнет, или DotNet, или «.Net» (как мы знаем, с английского «dot» «точка») это бесплатная платформа для разработки от компании Microsoft с открытым исходным кодом. На этой платформе можно разработать следующие виды приложений:

  • web-приложения и web-API;

  • бессерверные облачные приложения;

  • обычные приложения в облаке;

  • приложения для мобильных телефонов;

  • обычные приложения и дополнения для Windows;

  • компьютерные видеоигры;

  • программы для интернета вещей;

  • программы для нейросетей;

  • игры и приложения для консолей;

  • и мн. др.

 

DotNet что это

Дотнет — это кроссплатформенная среда для разработки приложений. Это инструмент, который открывает возможность запускать разработанное приложение в любой операционной системе Windows. При этом разрабатывать приложения можно и для других платформ. Но самое интересное, что разработанное приложение будет работать при любой компьютерной архитектуре. Те, кто уже программировал приложения, знают, что программа, созданная для архитектуры х64, будет некорректно отображаться в архитектуре х86, и наоборот. Поэтому приходилось одну и ту же программу «пересобирать» для разных архитектур. С Дотнет в этом нет необходимости, потому что данная среда состоит из набора уже скомпилированных библиотек; именно из них «подтягиваются» необходимые методы и функции, чтобы ваше приложение работало одинаково хорошо в разных архитектурах в разных версиях Windows.

 

Основные характеристики Дотнет 

DotNet — это то, что со своим приходом напрочь изменило подход к разработке. Среди особенностей Дотнет можно выделить следующее:

  1. Кроссплатформенность. При помощи DotNet можно создавать приложения не только для Windows, но и для других операционных систем, например: MacOS, Linux, Android, iOS, tvOS, watchOS. Помимо основных ОС, на Дотнет можно создавать приложения под процессоры с разной архитектурой, например: х64, х86, ARM32, ARM64.

  2. Открытый исходный код. Компания Майкрософт редко распространяет свои продукты с открытым исходным кодом, а .Net это как раз один из таких продуктов.

  3. Поддержка от Microsoft. Ни для кого не будет новостью, что Майкрософт — это один из лидеров среди прочих IT-гигантов, и поддержка инструмента от такой компании говорит о многом.

  4. Поддерживаемые инструменты. DotNet — это разработка на трех языках программирования: С#, F#, Visual Basic; это среда разработки Visual Studio для Windows, Linux, MacOS и онлайн-IDE GitHub Codespaces.

  5. Пакет SDK. В этот пакет входит большое количество различных библиотек и инструментов для разработки и развертывания приложений при помощи Дотнет.

  6. MSBuild. Сборка приложений в DotNet происходит при помощи этой системы. То есть приложение пишется в Visual Studio, а собирается MSBuild — это действие облегчает разработчикам процесс компиляции, упаковки и публикации кода.

  7. Встроенные инструменты для интеграции с GitHub Actions, Azure DevOps, Cake, Fake.

  8. NuGet — встроенный диспетчер пакетов, который специально разработан для DotNet.

  9. .NET Interactive — это группа инструментов для добавления интерактивных элементов в приложения.

  10. CLR — это среда, в которой выполняется код DotNet. Данная среда также выполняет роль виртуальной машины, в которой происходит компиляция кода. 

  11. И др.

По сути, приложение, написанное для DotNet, выполняется именно в этой среде. Если разобрать путь работы приложения для Дотнет, то получается следующее: приложение, написанное на одном из языков для Дотнет, сначала конвертируется в «общий язык» CIL. CIL — это низкоуровневый язык. Потом программа попадает в CLR, где происходит адаптация программы под разные версии операционных систем и архитектур процессоров за счет методов и функций из библиотек Дотнет. И только после этого программа попадает в процессор компьютера, где происходит ее окончательное выполнение.

Кстати, внутри CLR есть встроенный сборщик мусора, который подчищает оперативную память от всего ненужного, что остается в процессе выполнения программы.

 

DotNet — это то, что перевернет мир разработки

Впервые набор инструментов DotNet вышел в 2000 году именно с таким заголовком: «.Net — это то, что перевернет мир разработки». Спустя более двух десятков лет мы можем проследить, что Дотнет мир не перевернул, однако очень сильно облегчил разработку продуктов под операционные системы Windows. Все это время Дотнет развивался и завоевывал свою популярность не просто так, а за счет отличной функциональности. 

Кто-то проводит аналогию между DotNet и Java, потому что у этих двух инструментов для разработки действительно можно найти общие черты, например, наличие виртуальной машины, SDK, рекомендуемая IDE, встроенная поддержка инструментов из экосистемы, способ компиляции программ и др. Некоторые разработчики вообще утверждают, что программа DotNet была рождена как ответ Java. Возможно, так и есть.

 

Заключение

DotNet — это то, что позволяет быстро создавать нужные программные продукты для широкой аудитории пользователей. Если сравнивать с той же Java, то Дотнет это намного большее количество всевозможных инструментов, призванных сократить время разработки и берущих на себя решение многих банальных проблем разработчиков, чтобы программисты концентрировались только на процессе разработки самого продукта и ни на чем более.

Программисты и разработчики софта знают, для чего необходим .NET Framework, и какая версия компонента необходима для работы. А если вы обычный пользователь и для вас это просто набор букв? Мы предлагаем ознакомиться с текстом ниже. Он подробно расскажет, что это такое, для чего он нужен? и как его установить на компьютер.

Технология представляет собой набор компонентов и библиотек, которые гарантируют совместимость и стабильную работу программного обеспечения в ОС семейства «Виндоус». Она адаптирует программное обеспечение, созданное на различных языках программирования, под рабочую среду Windows.

Версия 1.0 появилась в 2002 году, а в последующее время обновлялась и расширялась за счет набора компонентов. Для каждой новой версии ОС выпускался обновленный .NET Framework. Например, для Windows 10 актуальная версия 4.7.1, а для восьмой версии – 3.5.

Появления единой технологии обусловлено реалиями прошлых годов. На тот момент не существовало единого центра, где хранились бы необходимые библиотеки и компоненты для запуска ПО. Большинство данных хранилось на локальных машинах без возможности обмена с другими компьютерами. Соответственно, отсутствовала совместимость между разными приложениями, написанными на разных языках программирования.

Microsoft первой решила создать единый центр взаимодействия. В нем должна была храниться информация, которая позволит программам запускаться на любом ПК без установки дополнительного ПО. Такая модель взаимодействия была создана и стала называться сервоцентрической.  

Технология запатентована компанией Microsoft, но существует два независимых проекта – Mono и Portable .NET. Они используются для запуска приложений под другие семейства ОС: например, Linux/Unix.

Как узнать версию

Если требуется узнать версию .NET Framework, которая стоит на рабочей станции, то открываем меню «Пуск» и набираем слово «Программы». Выбираем пункт, выделенный красным цветом.

параметры программы

Поиск меню

Откроется новая рабочая область. В конце списка установленных программ либо с правой стороны находится раздел «Программы и компоненты». Кликаем на него.

изменить приложения по умолчанию

Выбор раздела

Далее выбираем опцию, обведенную рамкой красного цвета. 

программы и компоненты

Переход к компонентам Windows

Важно! Чтобы редактировать перечень компонентов, необходимы права администратора. Windows сделает запрос, нажимаем «Да»

Откроется диалоговое окно, в котором на первых строчках идет информация о версии Framework.

компоненты windows

Список компонентов

Для Windows 10 существуют некоторые ограничения. К примеру глобальное обновление под названием Creators Update обновляет версию .NET Framework до 4.7. Соответственно, оно становится частью операционной системы, и удалить его через стандартные средства не получится. В таких случаях поможет откат обновления, а затем удаление компонента.

Установка Net Framework

Компонент инсталлируется разными способами. Расскажем о каждом способе в виде инструкций со скриншотами. 

Автоматическая установка

Первый вариант предполагает, что пользователь не знает, какая версия у него установлена. Он решил установить игру либо программный продукт.

Во время инсталляции программного обеспечения, операционная система автоматически проверяет наличие предустановленного Framework и текущую версию. Если данные устарели, то мастер предложит произвести установку (обновление). Нажимаем «Далее».

установка net framework 4

Принятие соглашения

Следующее окно предложит пользователю ознакомиться с условиями лицензионного соглашения, а после запустить инсталляцию Net Framework. Нажимаем «Установить».

Установщик соединяется с официальным сайтом Microsoft и скачивает актуальную версию. После окончания загрузки инсталляция Net Framework произойдет в автоматическом режиме.

Время выполнения зависит от скорости и стабильного канала Интернета. В среднем установка занимает 10 минут.

Через системные компоненты

Второй вариант также предполагает наличие постоянного доступа к «мировой паутине». Зайдем во вкладку «Службы и компоненты» и установим необходимую версию Framework.

Нажимаем сочетание клавиш «Windows» + «R». Вводим команду «OptionalFeatures».

выполнить OptionalFeatures

Запуск через командную строку

В открывшемся окне отмечаем с левой стороны черным квадратом строку, которая содержит необходимый элемент. Нажимаем «ОК».

компоненты windows

Выбор компонента

Инсталляция займет минут 5-7. После чего на мониторе появится надпись об окончании установки. Нажимаем «ОК», перезагружаем рабочую станцию.

Важно! Внутри строки содержатся дополнительные подразделы – оставляем как есть.

Через официальный сайт

Следующий вариант установки Net Framework – скачать дистрибутив с официального сайта и произвести установку самостоятельно. 

Ссылка: https://www.microsoft.com/ru-RU/download/details.aspx?id=17718

Пользователь выбирает язык установщика, нажимает «Скачать».

Автономный установщик Net Framework 4

Страница загрузки

Важно! В состав Windows 10 идет предустановленный Framework версии 4.6. 

После загрузки запускаем файл. На мониторе отобразится мастер установки: следуем подсказкам.

Инсталляция пройдет в стандартном режиме, как указано в разделе «Автоматическая установка». После окончания процесса перезапускаем ПК.

Установка при помощи DISM 

DISM представляет собой командную строку, через которую пользователь подготавливает образы для развертывания Windows. Сервис подходит для инсталляции Framework с загрузочного диска, в качестве которого выступают CD/DVD или флэшка.

В каких ситуациях используется DISM? Предположим, в наличии имеется компьютер без подключения к сети Интернет либо с нестабильным соединением. Пользователь подключает внешний носитель и запускает командную строку (Windows Power Shell) с правами администратора.

Windows PowerShell

Запуск cmd

Интересно! В Windows 10 командная строка с правами администратора отличается синим фоновым цветом, а со стандартными правами – черным фоном.

Набираем команду:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:X:sourcessxs

Где X – буква загрузочного диска.

Нажимаем Enter. Инсталляция займет минут 5-7, после чего появится окно с предупреждением об обязательной перезагрузке ПК. Соглашаемся.

Командная строка dism

Выполнение установки

Что делать, если возникли проблемы при инсталляции Net Framework

Иногда во время установки на экране появляется сообщение об ошибке.

установка не завершена

Ошибка при установке

Для ее исправления или удаления компания Microsoft предлагает три варианта. Расскажем о них.

Важно! Для Windows 10 существуют некоторые ограничения. К примеру глобальное обновление под названием Creators Update обновляет версию .NET Framework до 4.7. Соответственно, оно становится частью операционной системы, и удалить его через стандартные средства не получится. В таких случаях поможет откат обновления и последующее удаление компонента.

Repair Tool

Утилита разработана для .NET Framework. Она исправляет ошибки и запускает процесс установки по новой.

Ссылка на официальный сайт: https://www.microsoft.com/en-us/download/details.aspx?id=30135

net framework repair tool

Страница загрузки

Скачиваем дистрибутив, запускаем программу и следуем подсказкам мастера. На первом этапе ПО диагностирует операционную систему и выдает рекомендации для стабильной работы Repair Tool.

recommended changes

Рекомендации

Нажимаем «Next», утилита вносит изменения. 

Важно! Оставляем окно программы открытым, не закрываем.

changes complete

Выбор действий

Запускаем установку .NET Framework заново. Если ошибка продолжает появляться, то нажимаем кнопку «Next». Утилита соберет логи в единый архив и разместит на рабочем столе. Далее нажимаем «Finish». Приложение отправит архив в Microsoft для подробного анализа и разбора ошибки.

submit additional information

Отправка логов

Если после внесения изменений инсталляция Framework прошла успешно, то нажимаем «Finish». Утилита закроется.

Windows Fix It

Второй вариант помогает исправить проблему средствами операционной системы. Утилита доступна по ссылке:

https://support.microsoft.com/en-us/help/10164/fix-windows-update-errors

Скачиваем приложение и запускаем. На экране появится диалоговое окно с выбором. Первый вариант передает управление ОС, которая запустит автоматический поиск проблемы, а после исправит ее.

Второй пункт – утилита ищет ошибки, как было показано в первом пункте, и выдает итоговый результат в виде сообщения вместе с рекомендациями. Пользователю предлагается выбор, каким способом решить возникшую сложность.

Средство устранения неполадок, связанных с установкой программы

Программа Fix It

Рекомендуется выбирать первый пункт. Утилита просканирует ОС и выдаст перечень программ, у которых были обнаружены проблемы.

Выбрать программу для удаления

Выбор ПО для исправления

Для нашего случая отмечаем вторую строку. Нажимаем «Далее». Fix It удалит компоненты и записи в реестре, которые взаимосвязаны с технологией. По завершению работ ПК необходимо перезагрузить.

Cleanup Tool

Последний вариант – удалить любую версию .NET Framework через специальную утилиту. Она удаляет компоненты, но не исправляет их. 

Важно! Cleanup Tool работает только с версией 4.5.2 и ниже. Если установлена версия выше, то компонент не удалится.

На официальном сайте Microsoft утилита расположена в «облаке». Ссылка на ресурс:

https://onedrive.live.com/?id=27E6A35D1A492AF7!376&cid=27E6A35D1A492AF7

Папка называется «dotnetfx_cleanup_tool.zip». Скачиваем архив, раскрываем и запускаем программу. 

Net Framework setup cleanup utility

Cleanup Tool

Выбираем текущую версию, нажимаем «Cleanup now». Утилита удалит все найденные версии Framework, записи и ключи в системном реестре. После завершения, рабочую станцию перезагружаем.

Важно! Использование Cleanup Tool рекомендуется как последнее средство, если остальные варианты не помогли.

Утилита поддерживает «тихий» режим, то есть производит все вышеуказанные действия без сообщений на мониторе. Для этого вызываем командную строку под именем администратора.

power shell windows

«Тихий» режим

Вводим команду: cleanup_tool.exe /q:a /c:»cleanup.exe /p  XXX»

Где XXX – наименования компонента. Например, .NET Framework 2.0

Также доступна функция автоматической работы через командную строку. Для этого вводим команду: cleanup_tool.exe /q:a /c:»cleanup.exe /p XXX /u

cleanup tool exe

«Автоматический» режим

Setup Verification Tool

Программное обеспечение проверяет корректность установленной версии Framework. ПО доступно для загрузки по линку: https://docs.microsoft.com/ru-ru/archive/blogs/astebner/net-framework-setup-verification-tool-users-guide

Переходим в раздел «Download Location». Выбираем первый или второй пункт.

Download Location

Ссылка для скачивания

Важно! Утилита доступна в виде архива формата 7z.

После загрузки разархивируем и запустим программу. Принимаем лицензионное соглашение, выбираем версию для проверки.

Net Framework setup verification utility

Выбор версии

После выбора нажимаем «Verify Now». Процесс займет 5-10 минут, на мониторе отобразится результат. Если будут найдены ошибки, то переустанавливаем соответствующий компонент, предварительно удалив его.

Setup Verification Tool стоит рассматривать как вспомогательное средство для поиска неисправной версии. Для удаления или реанимирования используем другие вышеуказанные программные средства.

Заключение

Публикация рассказала о необходимом наборе библиотек – .NET Framework, который необходим для совместной работы программ на компьютере под управлением Windows. Были рассмотрены варианты установки, а также перечислены способы исправления ошибки, которые возникают при инсталляции. Надеюсь, что эта статья была для вас полезной!

Post Views: 1 406

Понравилась статья? Поделить с друзьями:
  • Dota 2 не отвечает при запуске windows 10
  • Dota 2 не запускается на windows 10
  • Dota 2 на linux или windows
  • Dota 2 лагает после переустановки windows
  • Dota 2 зависает при запуске windows 10