I have a console application written in .NET Core 2.2.6 that is using Kestrel to host a simple WebApi.
public class SettingsController : Controller
{
//
There's a very relevant GitHub issue that explains what's going on here. Pranav K from the ASP.NET Core team says:
MVC 2.1.0 requires compilation context to be available. Compilation context tells it if a library references MVC which is used as a filter to skip assemblies that are deemed unlikely to have controllers. Microsoft.NET.Sdk does not set
<PreserveCompilationContext>true</PreserveCompilationContext>
which would explain why you're seeing this.
This means there's a couple of working solutions to the problem you're seeing:
PreserveCompilationContext
property to your .csproj file with a value of true
, as shown above.Microsoft.NET.Sdk.Web
project SDK instead of Microsoft.NET.Sdk
.I don't know of any perceivable difference between these two options, but I would just update the project SDK given that it is in fact a Web project you're building.