Определение места сборки C # - PullRequest
2 голосов
/ 28 декабря 2011

У меня есть проект, в котором используется Microsoft.SqlServer.SMO.dll, который всегда копируется в каталог bin (для CopyLocal установлено значение true).

Однако могут быть установлены разные версии SQL SMO.У них та же версия сборки (10.0.0.0), но разные версии файлов (10.0.1600.22 и 10.50.2500.0).Конечный пользователь, возможно, установил старую версию сборки в GAC, но мне нужно всегда загружать 10.50 из bin.

Итак, у меня следующая ситуация:

Bin -> 10.50.2500.0
GAC -> 10.0.1600.22

Когда мое приложениеработает, сборка из GAC загружена, а из bin игнорируется.

Как я могу предотвратить такое поведение?Большое спасибо.

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

Все дело в строгом контроле версий.Вы ссылаетесь на dll с версией 10.50.2500.0, но ничего не говорите, что она должна быть именно ЭТОЙ версией.

Так что вам нужно сделать, чтобы установить для Specific Version значение true в свойствах сборкивы ссылаетесь на.Это гарантирует, что именно эта версия будет загружена

1 голос
/ 28 декабря 2011

Вы можете предоставить свой собственный манифест для приложения, чтобы сообщить ему, что вы хотите явно использовать местоположение 'bin'.Это тема среднего размера, но это хорошая ссылка, с которой можно начать.

http://msdn.microsoft.com/en-us/library/1w45z383.aspx

...