Перенаправление привязки сборки .NET, когда новая версия становится подписанной, но предыдущая не - PullRequest
1 голос
/ 22 марта 2012

У меня проблема с перенаправлением сборки .NET.Сторонняя сборка A ссылается на другую стороннюю сборку B. B не подписана, поэтому у нее нет токена открытого ключа.Манифест A:

....
.assembly extern B
{
  .ver 1:0:0:0
}
....

Как я могу сделать перенаправление привязки к следующей версии B, которая стала подписанной?Если я не укажу publicKeyToken в assemblyBinding / depenAssembly / assemblyIdentity, среда выполнения не сможет найти сборку "B, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = null"Если я укажу, правило перенаправления не совпадает с зависимой ссылкой сборки в метаданных.

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Я не нашел способов сделать перенаправление привязки к подписанной сборке из неподписанного. Единственное не очень хорошее решение, которое я нашел, - удалить подпись из подписанной сборки. Для этого ildasm можно использовать для разборки, после того как открытый ключ должен быть удален из файла .il и с помощью ilasm изменен .il может быть скомпилирован.

1 голос
/ 22 марта 2012

Если вы знаете, что следующая версия будет подписана, вы можете просто получить копию publicKey?

Кстати, переход от неподписанного к подписанному промежуточному процессу без перекомпиляции технически возможен, но это очень плохая идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...