Поддерживается ли <bindingRedirect /> в Silverlight, Windows Phone и Metro?

Является <bindingRedirect /> поддерживается за пределами полной.NET Framework? Например, следующее поддерживается обычным приложением.NET (в app.config или же web.config):

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="PostSharp"  publicKeyToken="b13fd38b8f9c99d7" culture="neutral" />
        <bindingRedirect oldVersion="3.0.0.0-3.1.1.1" newVersion="3.1.1.1"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Если это не поддерживается, как решается проблема косвенных ссылок на сборки? То есть, если компонент A ссылается на компоненты B и C, а B ссылается на D v1.0, C на D v1.1, как мы можем гарантировать, что B найдет свою зависимость, если мы отправим только D v1.1?

1 ответ

Решение

Никакие перенаправления привязки не поддерживаются в приложениях Silverlight, Windows Phone или Windows Store. Однако это потому, что они не нужны.

Предполагая, что мы говорим здесь только о неплатформенных сборках, в основном все три из этих платформ имеют схожие политики связывания в том смысле, что они позволят более поздней версии сборки соответствовать более ранней версии с тем же именем.

В вашем конкретном примере это будет означать, что компонент B автоматически получит версию D v1.1.

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