强制VS使用较低版本的程序集

时间:2018-12-17 01:41:57

标签: visual-studio asp.net-core .net-core visual-studio-2017 asp.net-core-2.0

这是一个普遍的问题,但我将描述我的具体情况-我的项目是VS19中的.NET Core 3.0 SignalR控制台应用程序(与VS17相同)

将所有内容升级到Core 3.0之后,构建现在会失败,并显示以下信息:

Error CS1705 Assembly 'Microsoft.AspNetCore.SignalR.Client' with identity
'Microsoft.AspNetCore.SignalR.Client, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=adb9793829ddae60' uses 'Microsoft.AspNetCore.Http.Connections.Common, 
Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' which has a higher version 
than referenced assembly 'Microsoft.AspNetCore.Http.Connections.Common' with identity 
'Microsoft.AspNetCore.Http.Connections.Common, Version=1.1.0.0, Culture=neutral,
PublicKeyToken=adb9793829ddae60'

我了解的是,尽管Microsoft.AspNetCore.Http.Connections.Common的最高版本为1.0.0.0,但出于某些原因,Microsoft.AspNetCore.SignalR.Client要求的3.0.0.0尚不存在。

如何告诉VS使用Microsoft.AspNetCore.Http.Connections.Common 1.0.0.0代替?

我尝试在csproj中为参考添加特定版本:

<PackageReference Include="Microsoft.AspNetCore.Http.Connections.Common" Version="1.1.0">
  <SpecificVersion>False</SpecificVersion>
</PackageReference>

但是什么都没有改变。我也尝试过<SpecificVersion>True</SpecificVersion>,结果相同:(

有帮助吗?

1 个答案:

答案 0 :(得分:1)

某些.NET Core预发行库在主NuGet供稿上不可用。您需要将夜间/ dev提要添加到NuGet包源中,希望在那里可以使用。

提要是:

ASP.NET Core

https://dotnet.myget.org/gallery/aspnetcore-dev

.NET Core

https://dotnet.myget.org/F/dotnet-core/api/v3/index.json

要将提要添加到Visual Studio

  1. 在项目的“管理NuGet软件包”窗口中,单击右上角的齿轮。
  2. 在新对话框中,单击右上角的红色“ x”
  3. 在“源”文本框中粘贴上面的URL
  4. 给Feed命名(例如ASP.NET Core Dev)
  5. 点击更新
  6. 确保提要位于列表的底部(因此这是用于软件包的最后一个)
  7. 点击确定

现在,您可以在NuGet窗口中将Package Source更改为新的Feed或“ All”,然后单击“ include prerelease”以查看软件包的预发行版本。