Развертывание автономного приложения.NET CORE. Почему нужно знать RID, когда.NET Core кроссплатформенный

В автономном приложении.NET Core... Нам нужно указать время выполнения (RID) в project.json, для которого мы хотим, чтобы наше приложение публиковалось против... Почему это так? .NET Core является кроссплатформенным, и не должно иметь значения, на какую платформу или операционную систему мы развертываем наше приложение. не так ли?

введите описание изображения здесь

1 ответ

Решение

Именно потому, что он самодостаточен... он содержит весь.NET Core или, по крайней мере, столько, сколько требуется для запуска вашего приложения. Хотя.NET Core является кроссплатформенным, это не означает, что вы можете использовать двоичный файл Linux x64 CLR, например, на компьютере с Windows 10 IoT ARM. Точно так же ваше приложение может зависеть от нативных библиотек, которые будут варьироваться в зависимости от платформы... это не "один-двоичный-подходит-для всех".

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

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

См. Статью .NET Core Application Deployment для получения более подробной информации о различиях между автономными приложениями и переносимыми.

Другие вопросы по тегам