我有一个名为Test.Web
的核心项目,其csproj内容如下:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\TestWeb.Infrastructure\TestWeb.Infrastructure.csproj" />
</ItemGroup>
</Project>
它引用了一个名为TestWeb.Infrastructure
的外部程序集,其csproj内容如下:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
好的,TestWeb.Infrastructure
在TestController
中有一个get操作,如下所示:
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace TestWeb.Infrastructure.Controllers
{
public class TestController : Controller
{
[HttpGet]
public async Task<IActionResult> Fire()
{
return Content("Hello!!!!!");
}
}
}
然后我开始运行Test.Web
项目并请求https://localhost:5001/Test/Fire
,响应给了我404找不到...,所以我
将Version="2.2.0"
添加到Microsoft.AspNetCore.App中TestWeb.Infrastructure
部分的ItemGroup
csproj文件中,如下所示
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.0"/>
</ItemGroup>
</Project>
并再次运行该站点以请求https://localhost:5001/Test/Fire
,它给了我内容Hello!!!!!
,但是当我将Version更改为另一个版本时,例如2.2.1、2.2.2、2.2.3等。构建时会抛出其他错误(NU1605)。
我的问题是为什么仅在将版本号设置为2.2.0时才能成功执行?我用过的.net核心sdk是2.2.105