2011-12-21 55 views
4

当给定的DLL引用第二个DLL的特定版本时,它就起作用。但是,如果第二个的版本比参考的版本更新,我的图书馆项目,该项目使用了两个库,产生一个警告:如何使DLL引用其他版本的第二个DLL?

警告不同版本的同一依赖程序集之间1个发现冲突。

而且FxCop的规定:

警告15 CA0060:将间接引用的程序集 'NationalInstruments.Common的,版本= 9.0.40.362,文化=中性公钥= dc6ad606294fc298' 找不到。这个程序集不需要进行分析,但分析结果可能不完整。此组件被引用:SimpleReadWrite

直到这些警告解决,我不能在其他项目中引用我的库。我试图用

  • NationalInstruments.NI4882.dll

在我SimpleReadWrite项目,但NationalInstruments.NI4882引用

  • NationalInstruments.Common.dll v9.0.40.362

我只能找到一个较新的版本(9.1.40.159)。如何解决这个问题呢?

+0

难道我理解正确的话 - 你想从一个项目一次引用同一个DLL的两个版本?如何处理名称冲突? – 2011-12-21 15:58:40

+0

@Doc不,我不是。我想使用单个版本,问题是我没有所需的版本,但是一个更新的版本。有什么解决方法吗? – 2011-12-21 16:00:33

+0

对不起,我不明白。您有一个带有源代码的“SimpleReadWrite”项目,因此您可以更改所需的任何引用,并使用NationalInstruments.Common.dll v9.1.40.159进行编译 - 因为这是您手头唯一的版本。问题出现在哪里?还是你有“SimpleReadWrite”只作为一个DLL,没有源代码? – 2011-12-21 16:08:19

回答

3

这里

http://digital.ni.com/public.nsf/allkb/46DE00265283A71586256FC000797682

是如何来修复您的安装,这应该属于版本一起重新安装两个DLL希望的说明。

如果你真的想尝试这些DLL在一起(这很可能将无法正常工作)混合,阅读前SO后,它解释了必要步骤:

Upgrade a reference dll in a C# project without recompiling the project

+0

我无法获得这些解决方案的工作。 – 2011-12-21 17:52:04

+0

我创建了第三个解决方案。我'ildasm' NationalInstruments.Common.dll在它出现的每一个地方都改变了版本,然后我'ilasm'再次。但是我也无法让它工作。 – 2011-12-21 18:10:52

+0

@XMLforDummies:您是否尝试联系供应商?你的时间将会更好地投入到这项任务中,而不是试图混合可能无法混合的东西。 – 2011-12-22 06:59:54