.NET Core supports different types of deployment and you need to decide which type to use before you publish your application. You can choose from the following:
When using framework-dependent deployment (FDD), the target system (that is, the system onto which you deploy your application) must include a shared system-wide version of the .NET Core runtime. The application that you deploy contains only its own code and any third-party dependencies that are outside of the .NET Core libraries.
An application that uses framework-dependent deployment contains a .dll file that can be launched from the command line using the dotnet utility. For example, dotnet HelloWorld.dll would run the HelloWorld application.
See Microsoft: Why Create a Framework-dependent Deployment for guidance on when you should use framework-dependent deployment.
Unlike framework-dependent deployment, a self-contained deployment (SCD) doesn't rely on the target system including a version of .NET Core for it to use. Instead, the application being deployed contains all the components that it requires, including the .NET Core libraries and the .NET Core runtime, enabling the application to be run in isolation from other .NET Core applications.
See Microsoft: Why Create a Self-contained Deployment for guidance on when you should use self-contained deployment.