aspnet core 2.1版本冲突如何解决? (2.1.1 >= 2.1.0-rc1-final)
How do I resolve version conflicts in aspnet core 2.1? (2.1.1 >= 2.1.0-rc1-final)
正在尝试将 Microsoft.VisualStudio.Web.BrowserLink 2.1.1 作为 nuget 包添加到非常常用的文件 -> 新建 -> 项目 .net core 2.1 项目中。
Version conflict detected for Microsoft.AspNetCore.Hosting.Abstractions. Reference the package directly from the project to resolve this issue.
EngineeringWeb (>= 1.0.0) -> Microsoft.VisualStudio.Web.BrowserLink (>= 2.1.1) -> Microsoft.AspNetCore.Hosting.Abstractions (>= 2.1.1)
EngineeringWeb (>= 1.0.0) -> Microsoft.AspNetCore.App (>= 2.1.0-rc1-final) -> Microsoft.AspNetCore.Hosting.Abstractions (>= 2.1.0-rc1-final).
我记得过去在 csproj 文件中做一些事情来重定向版本。我希望在核心中避免这种情况。
.csproj 文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
</ItemGroup>
<ItemGroup>
<Folder Include="Features\" />
<Folder Include="Features\Registration\" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Controllers\HomeController.cs" />
</ItemGroup>
<ProjectExtensions>
<MonoDevelop>
<Properties>
<Policies>
<VersionControlPolicy>
<CommitMessageStyle LastFilePostfix=":
 " LineAlign="0" IncludeDirectoryPaths="True" />
</VersionControlPolicy>
</Policies>
</Properties>
</MonoDevelop>
</ProjectExtensions>
</Project>
共享框架包 Microsoft.AspNetCore.App
应始终在没有版本号的情况下使用,如下所示:
<PackageReference Include="Microsoft.AspNetCore.App" />
这样,它将由运行时自动解决,运行时将包及其依赖项作为 .NET Core 的一部分发送,并将自动前滚补丁版本。因此,为了升级到 2.1.1
,您应该只升级本地 .NET Core SDK,以及部署到的服务器上的 .NET Core 运行时。
至于你的问题,如果你查看输出,你会看到以下内容:
Microsoft.AspNetCore.App (>= 2.1.0-rc1-final)
那里的版本是2.1.0-rc1-final
。这表明您尚未将本地 SDK 更新为 2.1.0 RTM 或 2.1.1。您可以下载 current SDK v2.1.301 over here. All downloads, including the runtime installers for your server can be found over here.
正在尝试将 Microsoft.VisualStudio.Web.BrowserLink 2.1.1 作为 nuget 包添加到非常常用的文件 -> 新建 -> 项目 .net core 2.1 项目中。
Version conflict detected for Microsoft.AspNetCore.Hosting.Abstractions. Reference the package directly from the project to resolve this issue.
EngineeringWeb (>= 1.0.0) -> Microsoft.VisualStudio.Web.BrowserLink (>= 2.1.1) -> Microsoft.AspNetCore.Hosting.Abstractions (>= 2.1.1)
EngineeringWeb (>= 1.0.0) -> Microsoft.AspNetCore.App (>= 2.1.0-rc1-final) -> Microsoft.AspNetCore.Hosting.Abstractions (>= 2.1.0-rc1-final).
我记得过去在 csproj 文件中做一些事情来重定向版本。我希望在核心中避免这种情况。
.csproj 文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
</ItemGroup>
<ItemGroup>
<Folder Include="Features\" />
<Folder Include="Features\Registration\" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Controllers\HomeController.cs" />
</ItemGroup>
<ProjectExtensions>
<MonoDevelop>
<Properties>
<Policies>
<VersionControlPolicy>
<CommitMessageStyle LastFilePostfix=":
 " LineAlign="0" IncludeDirectoryPaths="True" />
</VersionControlPolicy>
</Policies>
</Properties>
</MonoDevelop>
</ProjectExtensions>
</Project>
共享框架包 Microsoft.AspNetCore.App
应始终在没有版本号的情况下使用,如下所示:
<PackageReference Include="Microsoft.AspNetCore.App" />
这样,它将由运行时自动解决,运行时将包及其依赖项作为 .NET Core 的一部分发送,并将自动前滚补丁版本。因此,为了升级到 2.1.1
,您应该只升级本地 .NET Core SDK,以及部署到的服务器上的 .NET Core 运行时。
至于你的问题,如果你查看输出,你会看到以下内容:
Microsoft.AspNetCore.App (>= 2.1.0-rc1-final)
那里的版本是2.1.0-rc1-final
。这表明您尚未将本地 SDK 更新为 2.1.0 RTM 或 2.1.1。您可以下载 current SDK v2.1.301 over here. All downloads, including the runtime installers for your server can be found over here.