Как перенастроить версию сборки
Переход от отладки к выпуску приведет к тому, что устройство Visa перестанет работать и следующее критическое предупреждение:
Target ResolveAssemblyReferences:
Рассмотрите переназначение app.config сборки "Ivi.Visa.Interop, Культура = нейтральная, 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: обнаружены конфликты между различными версиями такой же зависимой сборки.
Свойства ссылки Ivi.Visa.Interop в проекте VS2008 показывают, что dll - версия 3.2.0.0.
Какова процедура переназначения версии сборки, как это было предложено предупреждением?
Ответы
Ответ 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}
. Я счастлив с этим вариантом, кажется, проще.
Ответ 2
Предупреждение "Найдено конфликты между разными версиями одной и той же зависимой сборки". подразумевает, что у вас есть несколько сборок в вашем проекте, ссылающихся на разные заглушки Inter Interop - я бы предложил выбрать один (при условии, что нет первичной сборки взаимодействия, предоставляемой поставщиком библиотеки) и изменения всех ссылок на ссылку на сборку interop (вместо добавления ссылок на COM-библиотека повсюду)