что означает «исходный файл политики издателя»?
Это файл конфигурации в вашей папке для разработки, например, 1.0.MySharedAssembly.dll.config, который должен быть расположенв том же каталоге, что и сама сборка политики, например, policy.1.0.MySharedAssembly.dll перед добавлением его в GAC.
к какой сборке относится последнее слово в этом предложении?Сборка, содержащая политику издателя, или сборка, для которой политика издателя определяет перенаправление привязки?
Это сборка, для которой политика издателя определяет перенаправление привязки, например: policy.1.0.MySharedAssembly.dll
Ваш третий вопрос: Да, концепция возможна.Вам не нужно добавлять свою общую сборку в GAC, чтобы политика издателя вступила в силу.Пока ваша сборка строго типизирована, политика издателя будет перенаправлять ее с клиентов, созданных из старых версий, на новую версию сборки.
Обычно я создаю файл 1.0.MySharedAssembly.dll.config (например, перенаправить из v1.0-> v2.0), содержащее перенаправление, например:
<assemblyIdentity name="MySharedAssembly"
publicKeyToken="2752785e627d5953"
culture="neutral" />
<!-- Redirecting to version 2.0.0.0 of the assembly. -->
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0"/>
добавить его в мой проект и выплюнуть его в целевой каталог.Затем для создания policy.1.0.MyAssemblyToRedirect.dll (определяет перенаправление привязки) можно использовать инструмент компоновщика сборки .Я обычно использую событие пост-сборки для моего проекта MySharedAssembly, например:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\al.exe" /link:"$(TargetDir)1.0.MySharedAssembly.dll.config" /out:"policy.1.0.MySharedAssembly.dll" /keyfile:"$(ProjectDir)MySharedAssembly.snk"
Затем вы регистрируетесь в GAC во втором событии пост-сборки, например:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\gacutil.exe" /i "$(TargetDir)policy.1.0.MySharedAssembly.dll" /f