Есть ли способ, чтобы 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 для всех ваших приложений.

Или, что не менее важно, отмените их подпись и скомпилируйте против неподписанной версии, которая затем захватит любую сборку с указанным вами "дружественным" именем.

Другие вопросы по тегам