Обновление : это стало проще с 2.2 Tooling .Убедитесь, что ваша dotnet --version
версия SDK имеет как минимум 2.2.100
, даже при создании приложений 2.1
Просто добавьте ссылку на пакет без версии в ваш проект, сохраняя Microsoft.NET.Sdk
:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.App" />
<!-- other references to xunit, test SDK etc. -->
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AspNetCoreAppToTest\AspNetCoreAppToTest.csproj" />
</ItemGroup>
</Project>
Оригинал:
ASP.NET Core 2.1 использует новую «общую инфраструктуру» для запуска приложений ASP.NET Core.Тестовые проекты необходимо изменить / обновить, чтобы использовать эту общую платформу, используя один из следующих подходов:
Измените тег <Project>
тестового проекта в первой строке, чтобы использовать веб-SDK(Microsoft.NET.Sdk.Web
вместо Microsoft.NET.Sdk
) и добавьте ссылку на пакет к Microsoft.AspNetCore.App
(или .All
, если вы используете его внутри веб-проекта) без указания версии
Файл проекта (.csproj) тестового проекта теперь должен выглядеть следующим образом:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.App" />
<!-- other references to xunit, test SDK etc. -->
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AspNetCoreAppToTest\AspNetCoreAppToTest.csproj" />
</ItemGroup>
</Project>
Альтернатива: Оставьте Sdk
как есть и добавьте PackageReference
кпакет общего каркаса, но укажите версию.
Это можно сделать, просто добавив ссылку NuGet на Microsoft.AspNetCore.App
.Однако это может вызвать проблемы, поскольку SDK может решить обновить ссылку, когда будет выпущен новый выпуск исправлений для ядра ASP.NET, и обновлены инструменты, чтобы отразить это.Вам нужно будет обновить ссылку на NuGet для каждого выпуска патча.