问题描述
以前在ASP.NET Core 2.0中,当您使用@Override
public void handleRequest(HttpServletRequest request,HttpServletResponse response)
throws servletexception,IOException {
// For very general mappings (e.g. "/") we need to check 404 first
Resource resource = getResource(request);
if (resource == null) {
logger.trace("No matching resource found - returning 404");
response.sendError(HttpServletResponse.SC_NOT_FOUND);
return;
}
创建一个新的Web项目并打开dotnet new web
文件时,您将具有如下所示的.csproj
条目:
但是今天我开始使用ASP.NET Core 3.1,并且我注意到当您以相同的方式创建新项目时,.csproj文件仅包含以下内容:
packagereference
条目到哪里去了,ASP.NET Core如何知道在没有此信息的情况下如何构建和运行项目?
解决方法
共享框架引用程序集和构建逻辑的分发机制已更改。它不再基于NuGet并使用FrameworkReference
个项目。
Web SDK(Microsoft.NET.Sdk.Web
)自动引用此框架。
如果您需要使用仅在ASP.NET Core中可用的类型/ API,而无需通过非Web项目(Sdk="Microsoft.NET.Sdk"
)中的单独NuGet程序包使用,则可以使用:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>