在Visual Studio 中使用 <AutoGenerateBindingRedirects> 来解决引用的程序集版本冲突问题
我是Visual Studio的新手,所以请耐心等待。
我正在开发一种依赖于第三方提供的DLL文件的产品。我们将其称为OtherCompany.dll。我们不发布这个。
我们的产品包含一个依赖于OtherCompany.dll的DLL文件。我们将其称为MyCompany.dll。当我们构建MyCompany.dll时,我们正在构建针对OtherCompany.dll的1.0.0版本。但是,我们最近发现OtherCompany.dll将其版本更改为2.0.0。现有功能没有变化,只有添加。
有些用户购买了OtherCompany.dll版本2.0.0,现在我们的产品已经破产,因为版本1.0.0不在GAC中。我知道这是一个常见问题,我一直在努力寻找一个好的解决方案。
我试图将我的.csproj文件添加到我的MyCompany.dll并针对OtherCompany.dll版本1.0.0进行构建,并将其安装在具有OtherCompany.dll版本2.0.0的计算机上。它仍然没有错误
无法加载文件或程序集'OtherCompany,Version = 1.0.0,Culture = neutral,PublicKeyToken = 1234'或其依赖项之一。该系统找不到指定的文件。
据我所知,这将允许MyCompany.dll独立于OtherCompany.dll。我做错了什么或误解了什么?
我能够通过手动添加到产品.config文件中来完成工作,但这很麻烦,我想要继续工作的东西,以防下周OtherCompany.dll发布3.0.0版本。
回答者:
您是否尝试在配置文件中使用bindingRedirect?只需指定需要将1.0.0到2.0.0(或其他)的任何版本重定向到使用2.0.0。我不知道自动生成的绑定重定向。 - MaKCbIMKo17年 3月16日14:08
是的,绑定重定向有效。由于许可限制,我们无法在安装中提供“其他产品”。 - J Mack17年3月16日14:22 那么,如果您有产品的安装程序,您可以询问用户他们拥有哪个版本并在安装期间更新配置。但如果他们将更新第三方库 - 它将再次失败。我认为你只需要解决许可证问题。 - MaKCbIMKo17年 3月16日14:29 我对许可问题并不反对,但这取决于合法,而不是我。 - J Mack17年3月16日15:12
解决方法:
在Visual Studio 中使用 <AutoGenerateBindingRedirects> 来解决引用的程序集版本冲突问题的更多相关文章
- 【转载】Visual Studio中WinForm窗体程序如何切换.NET Framework版本
在C#语言的WinForm窗体程序中,有时候我们需要切换WinForm窗体程序项目的.NET Framework版本号,例如从.NET Framework 4.5版本切换到.NET Framework ...
- 【已解决】在 Visual Studio 中设置 JavaScript/TypeScript 的断点 脚本出现自动中断错误
运行ASP.NET Core 程序出现错误如下: 已启用 Visual Studio 中的 Chrome 脚本调试 在 Visual Studio 中设置 JavaScript/TypeScript ...
- Visual studio 中或IIS中使用Less预处理语言
在用css预编译语言less时,在visual studio中编写静态页时报错,错误如下: 原因: 经过一番搜索后终于找到解决办法,原来是 visual studio中绑定的IIS Express没有 ...
- CLR调试报错“Visual Studio远程调试监视器 (MSVSMON.EXE) 的 64 位版本无法调试 32 位进程或 32 位转储。请改用 32 位版本”的解决
Win7 64位电脑上进行visual studio的数据库项目的CLR存储过程进行调试时,报错: ---------------------------Microsoft Visual Studio ...
- Visual Studio 中 Tab 转换为空格的设置
Visual Studio 中 Tab 转换为空格的设置 在 Visual Studio 中写代码时,按 Tab 键,会自动进行缩进.有时希望实现按 Tab 键,出现多个空格的效果.Visual St ...
- Visual Studio中定义OVERFLOW不能用
在Visual Studio中对OK.ERROR.OVERFLOW进行宏定义,但只有OVERFLOW不能正常使用为什么呢? #define OK 1: #define ERROR 0: #define ...
- VS2017远程调试C#或 Visual Studio 中的 Visual Basic 项目
来源:远程调试C#或 Visual Studio 中的 Visual Basic 项目 若要调试已部署在另一台计算机的 Visual Studio 应用程序,安装和在其中部署您的应用程序的计算机上运行 ...
- 在visual studio中运行C++心得
1.在visual studio中建立C++项目 (1)新建->项目->空项目 C++ (2)右击项目->添加->新建项->C++文件(.app) (3编写C++文件 ...
- Visual Studio中用于ASP.NET Web项目的Web服务器
当您在 Visual Studio 中开发 Web 项目时,需要 Web 服务器才能测试或运行它们. 利用 Visual Studio,您可以使用不同的 Web 服务器进行测试,包括 IIS Expr ...
随机推荐
- Java开发桌面程序学习(八)——启动浏览器或者打开资源管理器操作与hyperlink超链接的使用
启动浏览器或者打开资源管理器 启动浏览器 java1.6版本以上,Desktop Desktop.getDesktop().browse(new URI("www.cnblogs.com/k ...
- 关于.Net Core 部署在Linux下连接SqlServer数据库超时解决办法
.Net Core 在 Linux 下连接 SqlServer 需要 SqlServer2008 SP3或以上版本,或SqlServer2012,或SqlServer2014. 如果SqlServer ...
- python bin文件处理
参考: https://blog.csdn.net/and_then111/article/details/86744938 https://blog.csdn.net/zw515370851/art ...
- 不知道怎么向女神表白?Python三大神技分分钟带你成功逆袭!
一行python的表白 首先祭出绝招,用1行python表白: print(' '.join([''.join([('I LOVE U'[(x-y) % 8] if ( (x*0.05)**2 + ( ...
- Java日期时间API系列1-----Jdk7及以前的日期时间类
先看一个简单的图: 主要的类有: Date类负责时间的表示,在计算机中,时间的表示是一个较大的概念,现有的系统基本都是利用从1970.1.1 00:00:00 到当前时间的毫秒数进行计时,这个时间称为 ...
- 虚拟机Centos6.7安装VMTools
安装VMware Tools,设置共享文件夹 一.基本步骤 1.VMware Workstation菜单栏中,选择“虚拟机”,”安装VMware Tools...“.(注:此时下方可能会弹出“确保您已 ...
- ES新提案:双问号操作符
摘要: 简单实用的新特性. 原文:ES新提案:双问号操作符 译者:前端小智 本文主要讲Gabriel Isenberg撰写的ES提案"Nullish coalescing for JavaS ...
- python基础-并发编程02
并发编程 子进程回收的两种方式 join()让主进程等待子进程结束,并回收子进程资源,主进程再结束并回收资源 from multiprocessing import Process import ti ...
- JavaScript—数据可视化(ECharts)
Echarts具有丰富的图表,可以说是数据可视化的神器: 1.下载Echarts 官网下载地址:https://echarts.baidu.com/index.html 2.Echarts引用案例—柱 ...
- (三)Amazon Lightsail 部署LAMP应用程序之连接到Lightsail数据库
连接到Lightsail数据库 简介:应用程序的Web前端的第一次迭代不建议固有的可伸缩性,因为数据库和前端位于同一台机器,只需要额外的前端容量,添加额外的数据库实例就会出现问题,若想解决此问题,需要 ...