Ответ 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 для каждого выпуска патча.