Asp.net-Core
無法升級或降級 NuGet 包
我有一個 ASP.NET Core 網站,它依賴於 2 個類庫。
他們都引用了 Microsoft.NETCore,但版本以某種方式混淆並導致我收到警告:
檢測到的包降級:Microsoft.NETCore.App 從 1.1.0 到 1.0.3
NuGet 不允許我更改以下版本
Microsoft.NetCore.App:如果我嘗試升級或降級,我會收到錯誤消息
由於項目或 packages.config 中的其他限制,以下版本不可用
我該如何解決這個錯誤?
我的 csproj 文件:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.0</TargetFramework> <PreserveCompilationContext>true</PreserveCompilationContext> <AssemblyName>AutomotiveWebPortalCore</AssemblyName> <OutputType>Exe</OutputType> <PackageId>AutomotiveWebPortalCore</PackageId> <UserSecretsId>aspnet-AutomotiveWebPortalCore-20170223120414</UserSecretsId> <RuntimeFrameworkVersion>1.0.3</RuntimeFrameworkVersion> <PackageTargetFallback>$(PackageTargetFallback);dotnet</PackageTargetFallback> </PropertyGroup> <ItemGroup> <Content Update="wwwroot\**\*;Views\**\*;Areas\**\Views;appsettings.json;web.config"> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> </Content> </ItemGroup> <ItemGroup> <PackageReference Include="AutoMapper" Version="5.2.0" /> <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="1.2.0" /> <PackageReference Include="DevExtreme.AspNet.Core" Version="16.2.4" /> <PackageReference Include="DevExtreme.AspNet.Data" Version="1.2.4" /> <PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="1.0.1" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.0.2" /> <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="1.0.1" /> <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="1.0.2" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.0.1" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="1.0.1" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.0.1" /> <PackageReference Include="Microsoft.Extensions.Logging" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.0.1" /> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.0.1" /> <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.0.1" /> <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink.Loader" Version="14.0.1" /> <PackageReference Include="bootstrap" Version="3.3.7" /> <PackageReference Include="HubSpot.Tether" Version="1.1.1" /> </ItemGroup> <Target Name="PrepublishScript" BeforeTargets="PrepareForPublish"> </Target> <ItemGroup> <DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.2.301" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\AutomotiveDAL\AutomotiveDAL.csproj" /> <ProjectReference Include="..\AutomotiveDTO\AutomotiveDTO.csproj" /> </ItemGroup> </Project>編輯:
以下是我的類庫的參考:
數據訪問層:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netcoreapp1.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="AutoMapper" Version="5.2.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="1.1.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0-msbuild3-final" /> </ItemGroup> </Project>數據傳輸對象:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netcoreapp1.0</TargetFramework> </PropertyGroup> </Project>
即使在全新的空 ASP.NET Core 項目中,似乎也會出現“以下版本由於其他限製而不可用”消息。我認為這是 NuGet GUI 的錯誤或功能。(我使用的是 Visual Studio 2017 的最終版本)
您可以通過直接編輯 .csproj 文件來解決此問題:右鍵點擊解決方案資源管理器中的項目並選擇Edit (projectname).csproj。
您可以在第一個 PropertyGroup 中提升 Microsoft.NETCore.App(和目標框架)的版本:
<PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> <!-- snip --> <RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion> <!-- snip --> </PropertyGroup>然後,關閉文件並重建項目。我使用您在問題中提到的所有(公共)依賴項對此進行了測試,沒有看到任何包版本衝突。
