在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 基础篇
一.数组 1. 什么是数组? 数组和变量差不多,也是可以存放数据的,但是数组可以存放多个数据,而且多个数据的数据类型统一 格式 数据类型 [] 数组名称; 还有一种等效的写法,不推荐 数据类型 数组名 ...
- Node.js提供了哪些内容(API)
Nodejs运行时,JavaScript代码运行时的环境. 提供了一些核心模块,应用程序编程接口(Application Program Interface,API) API 的意思就是.一个已经解 ...
- 搭建RTMP直播流服务器
最近项目比较紧张,所以没什么时间写博客,正好这几天没什么事,赶紧记录下自己最近所学. 环境配置 服务器选用 服务器我选择的是小鸟云 ,原因很简单,他的个人用户有3个月免费使用时间. 服务器环境 Win ...
- Linux—编译安装详解
编译安装python3 1.python是通过C语言编写,所以在编译安装python3时需要在C语言环境 [root@localhost ~]# yum install -y gcc 2.python ...
- Shell命令-用户用户组管理之visudo、sudo
文件及内容处理 - visudo.sudo 1. visudo:编辑/etc/sudoers文件的专属命令 visudo命令的功能说明 visudo命令专门用来编辑/etc/sudoers这个文件的. ...
- HttpContext.Current.Server.MapPath("") 未将对象设置到引用的
在多线程中使用该方法获取目录报错:未将对象设置到引用 #region 上传图片到腾讯 public async Task<Result> UploadImageToWX(string ba ...
- Hadoop序列化案例实操
需求 统计每一个手机号耗费的总上行流量.下行流量.总流量. 输入数据: 1 13736230513 192.196.100.1 www.atguigu.com 2481 24681 200 2 138 ...
- driver.find_element_by_xpath() 带参数时的写法
假设要定位如下所示的 Elements,且文本 “1234567890” 对应参数 cluster_name: <td class="xxxx-body">12345 ...
- 【cf915】E. Physical Education Lessons(线段树)
传送门 简单的线段树区间修改区间查询,但是因为数据范围过大,所以采用动态开点的方法(注意一下空间问题). 也可以直接对询问区间的端点离散化然后建树,这种方法时间复杂度和空间复杂度都比较优秀. 给出动态 ...
- C# 内存管理(一)
引用地址:https://blog.csdn.net/libohuiyuan/article/details/81030010 一.变量类型 C#的变量类型分为值类型,引用类型.指针类型和指令类型.所 ...