从调试版本切换到发布版本会导致Visa设备停止工作并发出以下隐秘警告:
目标ResolveAssemblyReferences:
考虑app.config重新映射程序集“Ivi.Visa.Interop, Culture = neutral,PublicKeyToken = a128c98f1d7717c1“from Version “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 :(得分:1)
警告“发现同一个依赖程序集的不同版本之间存在冲突”。意味着您的项目中有多个程序集引用不同的COM Interop存根 - 我建议选择一个(假设没有库供应商提供的主互操作程序集)并更改所有引用以引用该互操作程序集(而不是添加引用整个地方的COM库)
答案 1 :(得分:1)
我遇到的情况是:
{Final Class Library}<-{Dependent Class Library}<-{Referenced DLL}
{Referenced DLL}
有多个GAC PublicKeyToken匹配。
因此{Final Class Library}
编译忽略了{Dependent Class Library}
中引用的版本并使用了最高Version=
值。这个输出包含No way to resolve conflict between
和Choosing ... arbitrarily
等。
我只是将{Final Class Library}
中的引用添加到{Referenced DLL}
,而不是装配绑定。我对这个选项感到高兴,看起来更简单。