2011-07-25 33 views
0

我們考慮將我們的一個程序集放到GAC中進行版本控制。 這意味着此程序集必須簽名,並且它使用的每個其他程序集(例如第三方)也必須簽名。只有第三方供應商才能簽名。是否存在一些實際風險,即某些供應商不會提供簽名版本,並且我們正在限制自己?簽署應用程序集合的風險

回答

1

的風險是不適用的。

如果僅僅依賴於其他GAC程序集,您只能將程序集放入GAC。
所以你的第三方庫應該已經在GAC中。

如果他們不是,你可以僞造它(參見@Preet Sangha),但是然後你成爲這些庫的發佈者。與其他應用程序共享這些二進制文件將不會發生。

+0

我的GAC程序集通過反射在磁盤上裝載其他程序集(假設這是一個要求,因爲位置是動態的等) –

+0

然後,也許它不太適合GAC。 –

+0

我的合作伙伴將編寫使用此程序集的應用程序。我不希望他們localcopy = true它,我想有自由改變其路由邏輯(例如gac中的新版本)。 –

0

是存在風險,但如果第三方供應商適合GAC,則應該簽署第三方供應商。如果他們不是,你應該可以要求他們簽字。

IMO,這是一個風險,但不是一個主要的風險,特別是如果你有一個現有的解決方案,你可以驗證是全部簽署。

1

你總是可以用ilmerge簽署第三方。

有在我的博客在這裏的鏈接:http://preetsangha.blogspot.com/2007/10/signing-third-party-assembly.html

+0

我希望我的應用程序組件是可移植的,因此它們可以用於其他不需要ILMerge的應用程序,而是按原樣運輸二進制文件。說我有組裝X取決於Y,Z。如果我ILMerge Y,Z到W,是X強迫總是需要W還是會工作,如果W不在那裏,Y,Z是? –