Ответ 1
Обновление: это стало проще с 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 для каждого выпуска патча.