gpt4 book ai didi

c# - 我应该担心版本冲突吗?

转载 作者:太空狗 更新时间:2023-10-29 23:24:46 24 4
gpt4 key购买 nike

我最近从版本 6 更新了我的 devArt dotConnect for Oracle 组件。?到 7.2

一切似乎都很好。

但是,在编译时我看到我收到了警告:“发现同一依赖程序集的不同版本之间存在冲突。

我不知道这是否与 dotConnect 组件有关(它没有说明),但我认为这是一个很好的猜测。

当我双击警告时,出现对​​话框:

MS Visual Studio -- One or more dependent assemblies have version conflicts.

Do you want to fix these conflicts by adding binding redirect records in the app.config file?

它们(MS)或它(VS)提供的有多好,但是......它会做什么?它并没有真正准确地告诉我。我应该留下还是应该离开?

更新

我引用了两个 DevArt dotConnect for Oracle 组件:

Devart.Data-和Devart.Data.Oracle

Devart.Data:运行时版本 v2.0.50727,版本 5.0.555.0

Devart.Data.Oracle:运行时版本 v2.0.50727,版本 7.2.96.0

所以有一个版本,但没有一个运行时版本,不匹配。我不知道这是否是问题所在。如果警告信息更明确一点就好了。据推测,“它”确切地知道问题出在哪里 - 为什么它不泄露重要信息?

更新 2

我有另一个项目使用完全相同的两个引用。安装更新的组件后,它甚至无法编译。为什么这两个项目有这么大的区别呀?因此,即使 .DLL 相同(名称相同,磁盘上的位置相同),我也删除了它们,然后将它们添加回第二个项目,它运行良好 - 没有错误,没有警告。但是,我回到第一个项目,仍然收到相同的警告,我删除并添加回这两个引用/DLL——我仍然收到相同的警告。所以我仍然不知道该怎么做/我是否应该接受 VS 的提议/重定向建议(我在脑海中想象着“老派”电话接线员以各种方式重新连接电线,做着值得青少年 Twister 爱好者的旋转).

最佳答案

绑定(bind)记录会将绑定(bind)部分添加到您的 web.config(或 app.config)文件中,将给定版本的 dll 指向另一个版本。但是,如果它们彼此不兼容,这可能很危险。他们看起来像

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

不过,我会先去检查不同项目从哪里链接您的 Devart dll,并确保它们都引用相同的内容。在极端情况下,将您想要使用的 Devart dll 复制到解决方案的文件夹中,并使所有项目都指向该文件夹

关于c# - 我应该担心版本冲突吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12753987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com