Миграция с ASP.NET Core 2.0 на 2.1 - PullRequest
0 голосов
/ 01 июля 2019

Я бы хотел перейти с ASP.NET Core 2.0 на 2.1.Но я получаю эту ошибку при сборке проекта.

'Microsoft.EntityFrameworkCore.Tools.DotNet 2.0.0' имеет тип пакета 'DotnetCliTool', который не поддерживается проектом 'Jahan.Beta.Web.App '.

Как мне решить эту проблему?

Файл csproj:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup Label="Globals">
    <SccProjectName></SccProjectName>
    <SccProvider></SccProvider>
    <SccAuxPath></SccAuxPath>
    <SccLocalPath></SccLocalPath>
  </PropertyGroup>

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Compile Remove="Pages\**" />
    <Content Remove="Pages\**" />
    <EmbeddedResource Remove="Pages\**" />
    <None Remove="Pages\**" />
  </ItemGroup>

  <ItemGroup>
    <None Remove=".bowerrc" />
    <None Remove="Styles\theme.less" />
  </ItemGroup>

  <ItemGroup>
    <Content Include="Styles\theme.less">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </Content>
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Areas\Admin\Data\" />
    <Folder Include="Content\css\" />
    <Folder Include="wwwroot\css\Admin\" />
    <Folder Include="wwwroot\images\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" PrivateAssets="All" />
    <PackageReference Include="FontAwesome" Version="4.7.0" />
    <PackageReference Include="jQuery.Validation" Version="1.16.0" />
    <PackageReference Include="Npm" Version="3.5.2" />
    <PackageReference Include="System.Linq.Dynamic.Core" Version="1.0.6.8" />
    <PackageReference Include="Twitter.Bootstrap" Version="3.0.1.1" />
 </ItemGroup>

  <ItemGroup>
    <None Include="wwwroot\css\blog-post.css" />
    <None Include="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css.map" />
    <None Include="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.min.css.map" />
    <None Include="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.css.map" />
    <None Include="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.min.css.map" />
    <None Include="wwwroot\lib\bootstrap\dist\css\bootstrap.css.map" />
    <None Include="wwwroot\lib\bootstrap\dist\css\bootstrap.min.css.map" />
    <None Include="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js" />
    <None Include="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js.map" />
    <None Include="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js" />
    <None Include="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js.map" />
    <None Include="wwwroot\lib\bootstrap\dist\js\bootstrap.js" />
    <None Include="wwwroot\lib\bootstrap\dist\js\bootstrap.js.map" />
    <None Include="wwwroot\lib\bootstrap\dist\js\bootstrap.min.js" />
    <None Include="wwwroot\lib\bootstrap\dist\js\bootstrap.min.js.map" />
  </ItemGroup>

  <ItemGroup>
    <Content Update="appsettings.json">
      <CopyToOutputDirectory>Never</CopyToOutputDirectory>
    </Content>
  </ItemGroup>

</Project>

1 Ответ

0 голосов
/ 01 июля 2019

Что ж, до .NET Core 2.1 вам приходилось явно включать инструментарий EF Core через ссылку на пакет, тогда как теперь он входит через сам пакет EF Core.Это сбивает с толку многих людей при миграции, так как вам нужно удалить этот пакет, или вы получаете конфликты из-за разных версий инструментов, на которые ссылаются.

Однако здесь вы не только не имеете пакетассылка на Microsoft.EntityFrameworkCore.Tools.DotNet, но у вас даже нет ссылки на пакет для Microsoft.EntityFrameworkCore.Таким образом, не имеет смысла, почему вы получаете любое исключение, связанное с чем-либо, имеющим отношение к EF Core.

Обычно я предполагаю, что это исключение действительно исходит отдругой проект по ссылке, но у вас даже нет ссылок на проекты здесь.Вы уверены, что разместили правильный проект?

Кроме того, FWIW, не включайте библиотеки на стороне клиента через NuGet.Эти пакеты предназначены только для ASP.NET MVC.В лучшем случае они просто не будут делать ничего полезного в проекте ASP.NET Core, а в худшем случае могут фактически привести к сбою сборки.

Клиентские библиотеки включены через LibMan или npm.Использование npm - лучший подход, но вам также нужно будет включить либо webpack, либо gulp для фактического копирования / компиляции библиотек узлов в ваш каталог wwwroot/lib.

...