Перенаправление сборки GAC для нескольких.dll
Я пытаюсь перенаправить конкретный .dll
давайте назовем это MyAssembly.dll
, Эта сборка имеет две версии:
MyAssembly.dll version 1.0.0.0
а также
MyAssembly.dll version 1.1.0.0
Я хочу, чтобы эти две сборки перенаправили на третью версию: 1.2.0.0
, Для этого я написал это .config
файл для построения Publisher Policy
для применения в GAC:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MyAssembly" publicKeyToken="myPublicKeyToken" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.2.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
С этим я создаю соответствующий .config
файл для генерации политики. Но моя проблема возникает, когда я хочу создать Policy
,
Примечание перед следующим шагом: управление версиями сборки работает следующим образом:
<major version>.<minor version>.<build number>.<revision>
В первый раз, когда я захотел создать Политику, я понял, что если версия сборки, которую я хочу перенаправить, это: 1.0.0.0
Я должен был создать политику, которая соответствует этому:
Policy.<majorversion>.<minorversion>.<AssemblyName>.dll
С этим я могу перенаправить любой MyAssembly.dll
от 1.0.* до версии 1.1.
Но как мне создать эту политику, если я хочу перенаправить более одной сборки, как я объяснил выше? Как должна выглядеть моя политика?
Если у меня есть две сборки:
1.0.0.0 - 1.1.0.0
Как мне построить PublisherPolicy
?
1 ответ
Из-за этой статьи мне пришлось создать одну Политику для каждой комбинации MajorVersion.MinorVersion моей сборки. Поэтому мне пришлось создать две политики:
- Один, чтобы иметь возможность перенаправить с 1.0.0.0 до 1.2.0.0
- И еще один для перенаправления с 1.1.0.0 на 1.2.0.0
Это решение работает, но если кто-нибудь знает более эффективный способ сделать это, я буду очень признателен.