Хорошо ... на коне ...
1 - пытались ли вы использовать Просмотр журнала привязки сборки (Fuslogvw.exe) , чтобы узнать, какая привязка сборки выполняется?
Вы можете найти его в:
C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ FUSLOGVW.exe (с установленным VS2008).
2 - «У меня есть общая сборка (на самом деле их пять, но давайте будем проще) на сетевом диске» - обе сборки находятся на сетевом диске?
Обновление: Хорошо ... если новая сборка находится на сетевом диске, вероятно, существуют проблемы с доверием . Можете ли вы развернуть новые сборки на локальном диске на сервере, а затем переустановить в GAC?
Update2: Я знаю ... глупые вещи .... у вас определенно правильный publicKeyToken и номер версии? т. е. ваш атрибут AssemblyVersion для новой сборки определенно является 1.1.0.0, а маркер открытого ключа идентичен (в GAC)?
Вы пытались удалить атрибут культуры?
Обновление3: Привет Макс .... Можете ли вы вставить тот файл политики издателя, который вы использовали? Также ... помните, что если вы перенаправляете с версии 1.0 на сборку с более высокой версией, имя политики издателя должно называться с использованием версии major.minor сборки, с которой вы перенаправляете. Таким образом, в вашем случае политика издателя должна называться policy.1.0.Leggett.Common.dll. Я заметил, что вы назвали его «policy.1.1.Leggett.Common.dll», что может быть причиной его неработоспособности.
И, наконец, вы должны убедиться, что вы подписываете политику издателя тем же ключом, который используется сборками 1.0 и 1.1.
Я собрал пару библиотек DLL и уронил их в GAC, затем использовал консольное приложение в VS для тестирования, и он работает:)
Update4: Привет, Макс, то, о чем я никогда не думал. Когда вы создали файл политики издателя, вы указали платформу? Попробуйте построить его с помощью:
al /link:1.1.Leggett.Common.policy /out:policy.1.0.Leggett.Common.dll / keyfile: /version:1.0.0.0
Не указывайте ключ / platform и явно укажите номер версии.
Приветствия
Кев