Целевая структура политики издателя.NET

РЕЗЮМЕ

Как создать сборку политики издателя, которая нацелена на ту же версию фреймворка, что и перенаправленная сборка?

TL; DR

у меня есть Assembly.dll с версией 1.x.y.0 и у меня также есть политика издателя для этого имени policy.1.0.Assembly.dll который перенаправляет версии 1.0.0.0-1.x.y.0 в 1.x.y.0,

Assembly.dll цели.NET Framework 3.5. Правильно ли я думаю, что policy.1.0.Assembly.dll также должен быть ориентирован на.NET Framework 3.5, чтобы все работало корректно на всех платформах 3.5+? Если да, то как мне создать такую ​​сборку политики издателя? Я не вижу никакого соответствующего переключателя командной строки на компоновщике сборок (AL).

В настоящее время, когда я собираю собрания, Assembly.dll заканчивается в \Windows\assembly а также policy.1.0.Assembly.dll заканчивается в \Windows\Framework.NET\assembly, ILDASM показывает мне, что целевые среды выполнения отличаются:

Assembly.dll:

// Metadata version: v2.0.50727
.assembly extern mscorlib
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .ver 2:0:0:0
}
.assembly extern System
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .ver 2:0:0:0
}

policy.1.0.Assembly.dll:

// Metadata version: v4.0.30319
.assembly extern mscorlib
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .hash = (B6 24 5D 64 2D 23 95 0B 50 19 B4 DC 19 4B 9A E8   // .$]d-#..P....K..
           B9 FF C0 53 )                                     // ...S
  .ver 4:0:0:0
}

1 ответ

Решение

Использование компоновщика сборки из C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin кажется, чтобы произвести policy.1.0.Assembly.dll который нацелен на правильное время выполнения:

// Metadata version: v2.0.50727
.assembly extern mscorlib
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .hash = (15 3B C0 4F 38 2D 09 20 CC A2 58 01 EE B1 AB E2   // .;.O8-. ..X.....
           D2 D0 C5 11 ) 
  .ver 2:0:0:0
}

Хотя это, кажется, делает то, что я хочу, неясно,

  • Это действительно необходимо.
  • Как долго будет старше AL.EXE быть отправлены с Visual Studio.

VBlog от Lucian помог мне понять, как организованы инструменты SDK:

https://blogs.msdn.microsoft.com/lucian/2008/11/14/where-are-the-sdk-tools-where-is-ildasm/

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