Есть ли способ, чтобы assemblyBinding->bindingRedirect разрешил несколько целевых версий?
Я нахожусь в подписи.NET сборки ада.
У меня есть приложение, скомпилированное для подписанной сборки A, версия 1.1 (SA 1.1.1). На некоторых системах у меня уже есть SA 1.1.2
Можно ли выразить это в редиректе?
SA 1.1.1 binds to
SA 1.1.1 OR
SA 1.1.2
Просто чтобы напомнить вам, как выглядит такая вещь:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
1 ответ
использование
oldVersion="1.0.0.0-2.0.0.0"
Обратите внимание на черту, обозначающуюдиапазон.
Извините, думал, что вы идете наоборот.
Я не думаю, что это возможно.
Есть пара вещей, которые вы можете сделать, хотя. Если у вас есть обе версии в GAC, вы можете просто привязать к нужной версии в приложении. Т.е. приложения, которые должны быть привязаны к 1.1.1, могут указывать эту версию. Приложения, которым требуется 1.1.2, могут указывать эту привязку. В противном случае, я думаю, что самая безопасная вещь - это компилировать 1.1.1 или 1.1.2 для всех ваших приложений.
Или, что не менее важно, отмените их подпись и скомпилируйте против неподписанной версии, которая затем захватит любую сборку с указанным вами "дружественным" именем.