.Net Жила - не удается получить действие контроллера любой ссылки на сборку, когда используется рамочный netcoreapp2.2 - PullRequest
0 голосов
/ 14 марта 2019

У меня есть основной проект с именем 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 есть действие get в TestController, как показано ниже:

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 файле csproj в разделе ItemGroup, как показано ниже

<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!!!!!, но когда я сменил версию на другую, такую ​​как 2.2.1, 2.2.2, 2.2.3 и т. Д. (NU1605) при сборке.

Мой вопрос: почему я могу успешно выполнить только при установке номера версии на 2.2.0? Мой используемый .net core sdk - 2.2.105

Я делаю демо здесь: https://github.com/linmasaki/TestWeb/tree/master

...