2017-04-11 78 views
0

SUMMARY

如何創建與重定向程序集相同框架版本的發佈程序策略程序集?.NET發佈者策略目標框架

TL; DR

我有一個Assembly.dll1.x.y.0版本,我也有一個出版商策略爲它命名policy.1.0.Assembly.dll其重定向版本1.0.0.0-1.x.y.01.x.y.0

Assembly.dll面向.NET Framework 3.5。我是否正確地認爲policy.1.0.Assembly.dll也應該針對.NET Framework 3.5在所有框架3.5+上正常工作?如果是的話,我該如何去創建這樣一個發佈者策略程序集?在Assembly Linker上看不到任何相關的命令行開關(AL)。

當前當我GAC組件時,Assembly.dll結束於\Windows\assemblypolicy.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 
} 

回答

0

使用集鏈接從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是讓我瞭解如何SDK工具被組織有所幫助:

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