.NET 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 runtime. The application that you deploy contains only its own code and any third-party dependencies that are outside of the .NET 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: .NET application publishing overview 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 for it to use. Instead, the application being deployed contains all the components that it requires, including the .NET libraries and the .NET runtime, enabling the application to be run in isolation from other .NET applications.
See Microsoft: .NET application publishing overview for guidance on when you should use self-contained deployment.