.NET Core 3.0或3.1 類庫項目中引用 Microsoft.AspNetCore.App

在 ASP.NET Core 3.0+ web 項目中已經不須要在 .csproj 中添加對 Microsoft.AspNetCore.App 的引用
<PackageReference Include="Microsoft.AspNetCore.App" />
可是在 .NET Core 3.0+ 類庫項目中若是不引用 Microsoft.AspNetCore.App ,就沒法使用 ASP.NET Core 3.0 的程序集。在類庫項目的 .csproj 中將 <Project Sdk="Microsoft.NET.Sdk"> 改成 <Project Sdk="Microsoft.NET.Sdk.Web"> 能夠解決這個問題,可是會出現新的問題,build 時會出現下面的錯誤提示:
Program does not contain a static 'Main' method suitable for an entry point
請問如何解決?git

在 github 上找到了答案 Using Microsoft.NET.Sdk.Web on a class library prevents the app to start
原來使用 Microsoft.NET.Sdk.Web 時 OutputType 默認會被設置爲 Exe ,改成 Library 就能解決github

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>  
    <TargetFramework>netcoreapp3.0</TargetFramework> 
    <OutputType>Library</OutputType>  
  </PropertyGroup>
</Project>

image