簡體   English   中英

從ASP.NET Core 2.0遷移到2.1

[英]Migrate from ASP.NET Core 2.0 to 2.1

我想從ASP.NET Core 2.0遷移到2.1。 但是在構建項目時出現此錯誤。

'Microsoft.EntityFrameworkwork.Tools.DotNet 2.0.0'具有項目類型'Jahan.Beta.Web.App'不支持的程序包類型'DotnetCliTool'。

我該如何解決?

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>

好的,在.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目錄中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM