Нужен ли на установленный .net на платформе где будет запускаться такое .net приложение?
Когда ты публикуешь приложение для Linux - оно будет с расширением исполняемого файла от линукса.
А именно - ни с каким.
Если будешь публиковать платформонезависимое приложение, то тогда будет .dll и в любом случае понадобится установленный рантайм.
Нужен ли на установленный .net на платформе где будет запускаться такое .net приложение?
Если публиковал с флагом --self-contained или --self-contained true, то не нужен.
Если публиковал без флага --self-contained или с флагом --self-contained false, то нужен.
Это всё ты мог проверить самостоятельно, просто скомпилировав хеллоу ворлд.
PS: вот что конкретно выдаётся в результате:
C:/workspace
❯ dotnet new console -o DemoLinuxPublish
Шаблон "Консольное приложение" успешно создан.
Идет обработка действий после создания...
Выполнение "dotnet restore" для C:\workspace\DemoLinuxPublish\DemoLinuxPublish.csproj...
Определение проектов для восстановления...
Восстановлен C:\workspace\DemoLinuxPublish\DemoLinuxPublish.csproj (за 113 ms).
Восстановление выполнено.
C:/workspace took 2s
❯ cd .\DemoLinuxPublish\
C:/workspace/DemoLinuxPublish via .NET v6.0.100 net6.0 took 12s
❯ dotnet publish -c Release -r linux-x64 --self-contained -v q --nologo -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:DebugType=None -p:DebugSymbols=false -p:PublishReadyToRun=true -p:PublishTrimmed=true
C:/workspace/DemoLinuxPublish via .NET v6.0.100 net6.0 took 2s
❯ ls .\bin\Release\net6.0\linux-x64\publish\
Directory: C:\workspace\DemoLinuxPublish\bin\Release\net6.0\linux-x64\publish
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 21.03.2022 3:25 15866695 DemoLinuxPublish
PPS: я немного упоролся с дополнительными параметрами сборки