2011-08-24 107 views
12

从调试切换到发布版本将导致签证装置停止工作及以下神秘警告:如何重新映射程序集版本

目标ResolveAssemblyReferences:

考虑装配“IVI的app.config将程序。 Visa.Interop, Culture = neutral,PublicKeyToken = a128c98f1d7717c1“从版本 ”3.0.0.0“[]到版本”3.2.0.0“[dll \ Ivi.Visa.Interop.dll]解决 冲突并摆脱警告。 C:\ Windows \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets: 警告MSB3247:在不同版本的 相同的相关程序集之间发现冲突。

VS2008项目中的Ivi.Visa.Interop参考属性表明dll是版本3.2.0.0。 按照警告建议重新组装版本的过程是什么?

+0

[MSDN上的重定向汇编版本](http://msdn.microsoft.com/zh-cn/library/7wd6ex19%28v=VS.100%29.aspx)(.NET 4.0) – Rune

回答

1

我有这种情况,是用:

{Final Class Library}<-{Dependent Class Library}<-{Referenced DLL}

{Referenced DLL}有多个GAC公钥相匹配。

因此,{Final Class Library}编译忽略{Dependent Class Library}中引用的版本,并使用最高的Version=值。这与No way to resolve conflict betweenChoosing ... arbitrarilyChoosing ... arbitrarily

而不是装配绑定,我只是在{Final Class Library}{Referenced DLL}添加引用。我对这个选择感到高兴,似乎更简单。

1

警告“在相同的相关程序集的不同版本之间发现冲突”。意味着你的项目中有多个程序集引用了不同的COM Interop存根 - 我建议选择一个(假设没有由库供应商提供的主要互操作程序集)并将所有引用改为引用该interop程序集(而不是将引用添加到COM库所有的地方)