通过程序包管理器控制台解决版本错误(CS1705)

目录

介绍

背景

解决方案示例


介绍

如果解决方案中有多个项目,而一个项目依赖于其他项目,并且版本引入了重大更改,我们有时会遇到包版本冲突,并且Visual Studio解决方案无法构建。它可能会返回以下错误:

错误CS1705  Assembly 'WebAPI' with identity 'WebAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'Microsoft.AspNetCore.Mvc.Core, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' which has a higher version than referenced assembly 'Microsoft.AspNetCore.Mvc.Core' with identity 'Microsoft.AspNetCore.Mvc.Core, Version=2.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'    WebApiTest    C:\... 
 

上述错误可以在使用两个项目的解决方案上产生,即WebApiWebApiTest 

背景

上面的错误表明测试项目和API项目使用的是不同版本的Microsoft.AspNetCore.Mvc.Core。例如,测试项目使用的是版本2.1.0.0,而API项目使用的是2.1.1.0

我们可以通过更新要匹配的任一项目中的包引用来解决此问题。例如,我们可以根据需要更新WebApiTest项目以使用更高版本的程序集(即2.1.1.0)或将WebApi项目中的程序集版本降级到2.1.0.0  
 

解决方案示例

我们可以在目标正确项目的包管理器控制台中发出如下命令。例如,下面的代码将在WebApiTest测试中更新Microsoft.AspNetCore.Mvc.Core的程序集引用,以使用版本2.1.1.0。然后,这将匹配WebApi项目中相同程序集的版本。以下代码 

Install-Package Microsoft.AspNetCore.Mvc.Core -Version 2.1.1.0 -ProjectName WebApiTest

如果在Visual Studio程序包管理器控制台窗口中提供的下拉列表中选择了正确的项目,则可以省略参数“ - ProjectName WebApiTest”名称。屏幕截图的示例如下图所示:

图:在Windows机器上运行的Visual Studio 2017中的程序包管理控制台窗口。

同样,要更新WebApi项目,以下命令将执行此操作:

Install-Package Microsoft.AspNetCore.Mvc.Core -Version 2.1.1.0 -ProjectName WebApiTest

 

原文地址:https://www.codeproject.com/Tips/1280404/Resolve-version-error-CS1705-through-Package-Manag

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 VS2022 中创建的控制台应用程序默认不包含 `AssemblyInfo.cs` 文件,但是可以手动添加该文件来指定程序的元数据信息。下面是一个可能的 `AssemblyInfo.cs` 文件的示例: ```csharp using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 程序集的常规信息由以下属性集控制。 // 更改这些属性值以修改与程序集相关联的信息。 [assembly: AssemblyTitle("ConsoleApp1")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ConsoleApp1")] [assembly: AssemblyCopyright("Copyright ©")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // 设置 ComVisible 为 false 使此程序集中的类型对 COM 组件不可见。 // 如果需要从 COM 访问此程序集中的类型,则将 ComVisible 属性设置为 true。 [assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID [assembly: Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")] // 程序集的版本信息由以下四个值组成: // // 主版本 // 次版本 // 生成号 // 修订号 // // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,方法是按如下所示使用 '*': // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ``` 在这个示例中,`AssemblyTitle`、`AssemblyDescription`、`AssemblyConfiguration`、`AssemblyCompany`、`AssemblyProduct`、`AssemblyTrademark`、`AssemblyCulture` 等属性用于设置程序集的元数据信息,如程序的名称、描述、版本、版权信息等。`ComVisible` 属性用于设置程序集是否对 COM 组件可见。`Guid` 属性用于设置程序集的唯一标识符。`AssemblyVersion` 和 `AssemblyFileVersion` 属性用于设置程序集的版本号信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值