Dotnet sdk что это

Пакет SDK для.NET Compiler Platform позволяет создавать анализаторы и средства исправления кода _ для выявления и устранения ошибок. _ Анализаторы изучают синтаксис (структуру кода) и семантику, а также выявляют методы, которые нужно исправить. Средства исправления кода предоставляют один или несколько рекомендуемых способов устранения ошибок в коде, выявленных анализаторами или при диагностики в компиляторе. Обычно анализатор и соответствующие средства исправления кода упакованы в один проект.

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

Дополнительным преимуществом является то, что анализаторы и средства исправления кода используют гораздо меньше памяти при загрузке в Visual Studio, чем понадобилось бы при написании собственной базы кода для анализа кода в проекте. Используя те же классы, что компилятор и Visual Studio, вы можете создавать собственные средства статического анализа. Это означает, что члены вашей команды смогут использовать анализаторы и средства исправления кода без существенного воздействия на производительность IDE.

Есть три основных сценария использования анализаторов и средств исправления кода:

Применение стандартов кодирования в команде

У многих команд разработчиков есть стандарты кодирования, которые применяются при совместной проверке кода. Анализаторы и средства исправления кода значительно повысят эффективность этого процесса. Проверка кода происходит после того, как разработчик представит выполненную задачу на рассмотрение в команде. За весь период создания функции он не получает никаких комментариев. Разработчик может неделями приучаться к практикам разработки, которые идут вразрез со стандартами команды.

Анализаторы же начинают работу вместе с ним. Разработчик сразу же получает отзывы, которые помогают привести код в соответствие с рекомендациями. Он вырабатывает методику написания совместимого кода, как только начинает создавать прототипы. Когда функция будет готова к проверке в команде, все стандартные рекомендации будут соблюдены.

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

Прежде чем создать собственный анализатор, ознакомьтесь со встроенными анализаторами. Дополнительные сведения см. в разделе Анализ стиля кода.

Предоставление рекомендаций с пакетами библиотек

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

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

Предоставление общих рекомендаций

Эти анализаторы можно отправить в Visual Studio Marketplace. Затем разработчики смогут скачать их с помощью Visual Studio. Новички в работе с языком и платформой быстро освоят правильные методики и достигнут требуемого уровня производительности на самых ранних этапах работы с NET. Как только методики начинают широко использоваться, сообщество их принимает.

Следующие шаги

Инструкции по установке — Visual Studio Installer

Установка с помощью Visual Studio Installer — представление «Рабочие нагрузки»

Кроме того, вы можете настроить редактор DGML для отображения диаграмм в средстве визуализации:

Установка с помощью Visual Studio Installer — вкладка «Отдельные компоненты»

Кроме того, вы можете настроить редактор DGML для отображения диаграмм в средстве визуализации:

Источник

.NET Core: номера версий и global.json

Dotnet sdk что это. Смотреть фото Dotnet sdk что это. Смотреть картинку Dotnet sdk что это. Картинка про Dotnet sdk что это. Фото Dotnet sdk что это

Dotnet sdk что это. Смотреть фото Dotnet sdk что это. Смотреть картинку Dotnet sdk что это. Картинка про Dotnet sdk что это. Фото Dotnet sdk что это

Стоит также отметить, что, если вы хотите создавать приложения ASP.NET Core 2.0 в Visual Studio, вам нужно будет установить предварительную версию Visual Studio 2017. Её можно устанавливать параллельно со стабильной версией.

Там целая куча разной информации, среди которой есть два разных номера версий:

Dotnet sdk что это. Смотреть фото Dotnet sdk что это. Смотреть картинку Dotnet sdk что это. Картинка про Dotnet sdk что это. Фото Dotnet sdk что это

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

Понимание версий SDK

Dotnet sdk что это. Смотреть фото Dotnet sdk что это. Смотреть картинку Dotnet sdk что это. Картинка про Dotnet sdk что это. Фото Dotnet sdk что это

В общем случае, любая версия SDK, которая больше версии, использованной при создании проекта, может быть использована для его сборки ( dotnet build и dotnet publish ). Таким образом, вы можете просто использовать SDK версии 2.0 для работы с проектами, созданными в SDK версии 1.0.

Это значит, что в большинстве случаев вы можете использовать для всех проектов последнюю версию SDK. Другая версия SDK может понадобиться, например, если вы хотите собрать проект, использующий файл project.json (в этом случае вам будет нужен RC2 SDK).

Следующий вопрос — как указать приложению, какую версию SDK нужно использовать.

Выбор версии SDK в файле global.json

Файл global.json имеет очень простой формат, который просто задает, какую версию SDK нужно использовать:

Раньше файл global.json использовался еще и для того, чтобы указать папки с исходным кодом решения, но эта функциональность будет удалена в будущих версиях.

Заключение

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Содержание

Особенности

Windows SDK доступны бесплатно; они были однажды доступны в Центре загрузки Microsoft, но были перенесены в MSDN в 2012 году.

Разработчик может захотеть использовать старый SDK по определенной причине. Например, Windows Server 2003 Platform SDK, выпущенный в феврале 2003 года, был последним SDK для полной поддержки Visual Studio 6.0. Некоторые старые версии PSDK можно загрузить из центра загрузки Microsoft; другие могут быть заказаны на CD / DVD. [1]

История релиза версий Microsoft SDK [Источник 6]

НазваниеНомер версииНомер сборкиДата релизаСсылкаПримечания
Microsoft Windows Software Development Kit3.1???
Microsoft Windows Software Development Kit3.11???
Microsoft Win32 Software Development Kit3.1???
Microsoft Win32 Software Development Kit3.5???
Microsoft Win32 Software Development Kit3.51???
Microsoft Win32 Software Development Kit4.0???
Microsoft Platform SDK Апрель 1999??1999-04?MSDN записана на диск CD-ROM.

Последняя платформа SDK оффицально установленная на «Windows 95»

Microsoft Platform SDK Сентябрь 1999??1999-09?MSDN записана на диск CD-ROM.

Последняя платформа SDK полностью поддерживающая «Visual C++ 5.0»

Microsoft Platform SDK Февраль 2001??2001-02?
Microsoft Platform SDK Июнь 2001??2001-06?MSDN записана на диск CD-ROM.

Последняя платформа SDK официально развиваемая для «Windows 95», но не официально установленная.

Microsoft Platform SDK Август 2001?5.1.2601.02001-08[1]MSDN записана на диск CD-ROM

Последняя платформа SDKдля «неофициального развития» для «Windows 95», но не официально установленная на «Windows 95»

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

Документация Windows SDK включает в себя руководства по:

Источник

.NET 5.0 является последней версией.

Поддерживаемые выпуски

Даты окончания жизненного цикла версий Windows 10 зависят от выпуска. В следующей таблице рассматриваются только выпуски Домашняя, Профессиональная, Pro для образовательных учреждений и Pro для рабочих станций. Дополнительные сведения см. в справочных материалах по жизненному циклу поддержки Windows.

Символ + представляет минимальную версию.

Операционная система.NET Core 2.1.NET Core 3.1.NET 5
Windows 11✔️✔️
Windows Server 2022✔️✔️
Windows 10, версия 21H1✔️✔️
Windows 10 или Windows Server версии 20H2✔️✔️
Windows 10 или Windows Server версии 2004✔️✔️
Windows 10 или Windows Server версии 1909✔️✔️
Windows 10 или Windows Server версии 1903✔️✔️
Windows 10, версия 1809✔️✔️
Windows 10, версия 1803✔️✔️
Windows 10, версия 1709✔️✔️
Windows 10 (версия 1607)✔️✔️
Windows 8.1✔️✔️
Windows 7 с пакетом обновления 1 (SP1), ESU✔️✔️
Windows Server 2019
Windows Server 2016
Windows Server 2012 R2
Windows Server 2012
✔️✔️
Windows Server Core 2012 R2✔️✔️
Windows Server Core 2012✔️✔️
Nano Server, версия 1809 и выше✔️✔️
Nano Server, версия 1803✔️

Неподдерживаемые выпуски

Сведения о среде выполнения

В Windows можно установить три различные версии среды выполнения:

Сведения о пакете SDK

Зависимости

.NET 5 поддерживает следующие версии Windows:

Символ + представляет минимальную версию.

Операционная системаVersionАрхитектуры
Windows 1121H2x64, ARM64
Клиент Windows 101607+x64, x86, ARM64
Клиент Windows7 с пакетом обновления 1 и более поздних версий (SP1+), 8.1x64, x86
Windows Server2012+x64, x86
Windows Server Core2012+x64, x86
Nano Server1809+X64

.NET Core 3.1 поддерживает следующие версии Windows:

Символ + представляет минимальную версию.

Операционная системаVersionАрхитектуры
Windows 1121H2x64, ARM64
Клиент Windows 101607+x64, x86
Клиент Windows7 с пакетом обновления 1 и более поздних версий (SP1+), 8.1x64, x86
Windows Server2012+x64, x86
Nano Server1803+x64, ARM32

.NET Core 3.0 поддерживает следующие версии Windows:

Символ + представляет минимальную версию.

Операционная системаVersionАрхитектуры
Клиент Windows7 с пакетом обновления 1 и более поздних версий (SP1+), 8.1x64, x86
Клиент Windows 10Версия 1607+x64, x86
Windows Server2012 R2+x64, x86
Nano ServerВерсия 1803+x64, ARM32

.NET Core 2.2 поддерживает следующие версии Windows:

Символ + представляет минимальную версию.

Операционная системаVersionАрхитектуры
Клиент Windows7 с пакетом обновления 1 и более поздних версий (SP1+), 8.1x64, x86
Клиент Windows 10Версия 1607+x64, x86
Windows Server2008 R2 с пакетом обновления 1 или более поздней версии (SP1+)x64, x86
Nano ServerВерсия 1803+x64, ARM32

.NET Core 2.1 поддерживает следующие версии Windows:

Символ + представляет минимальную версию.

Операционная системаVersionАрхитектуры
Клиент Windows7 с пакетом обновления 1 и более поздних версий (SP1+), 8.1x64, x86
Клиент Windows 10Версия 1607+x64, x86
Windows Server2008 R2 с пакетом обновления 1 или более поздней версии (SP1+)x64, x86
Nano ServerВерсия 1803+x64,

Автономная установка для Windows 7

Обязательно ознакомьтесь с зависимостями ниже, необходимыми для Windows 7.

Windows 7 / Vista / 8.1 / Server 2008 R2 / Server 2012 R2

Приведенные выше требования также применяются, если возникает ошибка, связанная с любой из следующих библиотек DLL:

Установка с помощью функции автоматизации PowerShell

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

Установка с помощью Visual Studio

Если среда Visual Studio уже установлена, вы можете проверить ее версию, выполнив указанные ниже действия.

Выбор рабочей нагрузки

При установке или изменении Visual Studio выберите одну или несколько из следующих рабочих нагрузок в зависимости от типа создаваемого приложения:

Dotnet sdk что это. Смотреть фото Dotnet sdk что это. Смотреть картинку Dotnet sdk что это. Картинка про Dotnet sdk что это. Фото Dotnet sdk что это

Установка вместе с Visual Studio Code

Visual Studio Code — это эффективный и облегченный редактор исходного кода, который работает на компьютере. Visual Studio Code доступен для Windows, macOS и Linux.

Установщик Windows

/quiet
Предотвращает отображение любого пользовательского интерфейса и запросов.

norestart
Предотвращает все попытки перезапуска.

В случае успешной установки установщик возвращает код 0; если требуется перезагрузка, установщик возвращает код 3010. Любое другое значение обычно является кодом ошибки.

Скачивание и установка вручную

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

Docker

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

Корпорация Майкрософт предоставляет образы, которые предназначены для конкретных сценариев. Например репозиторий ASP.NET Core содержит образы, которые предназначены для запуска приложений ASP.NET Core в рабочей среде.

Источник

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

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

0. Pay-for-Play

Dotnet sdk что это. Смотреть фото Dotnet sdk что это. Смотреть картинку Dotnet sdk что это. Картинка про Dotnet sdk что это. Фото Dotnet sdk что это

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

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

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

1. FDD vs SCD

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

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

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

Dotnet sdk что это. Смотреть фото Dotnet sdk что это. Смотреть картинку Dotnet sdk что это. Картинка про Dotnet sdk что это. Фото Dotnet sdk что это

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

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

Dotnet sdk что это. Смотреть фото Dotnet sdk что это. Смотреть картинку Dotnet sdk что это. Картинка про Dotnet sdk что это. Фото Dotnet sdk что это

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

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

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

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

Имея вышеприведенную конфигурацию, компоненты среды выполнения будут загружены из папки C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.0.

Dotnet sdk что это. Смотреть фото Dotnet sdk что это. Смотреть картинку Dotnet sdk что это. Картинка про Dotnet sdk что это. Фото Dotnet sdk что это

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

Dotnet sdk что это. Смотреть фото Dotnet sdk что это. Смотреть картинку Dotnet sdk что это. Картинка про Dotnet sdk что это. Фото Dotnet sdk что это

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

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

5. Runtime Configuration Files

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

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

Секция 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 Files\dotnet\shared\Microsoft.NETCore.App\2.0.0\Microsoft.NETCore.App.deps), а затем deps-файл приложения. Deps-файл приложения имеет более высокий приоритет.

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

В свойстве 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. Например, shared\Microsoft.NETCore.App\2.0.3\MyAdditional.deps.json.

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

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

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

6.2. [corehost] Поиск и загрузка Framework Resolver (hostfxr.dll)
На этом этапе dotnet.exe идет в папку [own directory]/host/fxr/. Для Portable-приложений эта библиотека расположена в общей папке C:\Program Files\dotnet\host\fxr\[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.

Также для 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).

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

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

На текущем этапе 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 Files\dotnet\shared\Microsoft.NETCore.App\2.0.0\Microsoft.NETCore.App.deps). В этом файле будет найден пакет с именем Microsoft.NETCore.DotNetHostPolicy и взята его версия.

Если файл не был найден на предыдущем этапе, 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 (приоритет ниже, чем у аргумента), например

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

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

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *