由於各種原因,我寧願不要在我的項目中使用強命名(簽名)程序集。但是,其中一個項目由Sharepoint Web部件引用,這意味着它必須經過簽名。c# - 你可以做一個「弱」的程序集引用一個強有力的命名程序集
是否有可能讓此程序集簽名,但是當我從其他項目中引用它時,請使用非強引用來完成此操作。這會給我帶來一個沒有簽名的程序集的剩餘代碼的優點,但仍然允許它由Sharepoint加載。
由於各種原因,我寧願不要在我的項目中使用強命名(簽名)程序集。但是,其中一個項目由Sharepoint Web部件引用,這意味着它必須經過簽名。c# - 你可以做一個「弱」的程序集引用一個強有力的命名程序集
是否有可能讓此程序集簽名,但是當我從其他項目中引用它時,請使用非強引用來完成此操作。這會給我帶來一個沒有簽名的程序集的剩餘代碼的優點,但仍然允許它由Sharepoint加載。
最簡單的方法可能是有兩個不同的項目配置 - 其中一個構建強命名的程序集,其中一個沒有。顯然,你需要小心你如何構建和引用程序集,但這與需求衝突的領域一致。
只是繼續建設你的項目沒有強大的名字。當您需要將其部署到Sharepoint時,請在工具生成後使用工具對其進行簽名。這裏是一個工具,它正是這麼做的:
http://signer.codeplex.com/Wikipage
您也可以手動做到這一點,但它是一個PITA:
http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/
這是OP,但我沒有一個OpenID做登錄,所以我想我不能回覆自己。
謝謝你的迴應。我認爲要麼有效,但情況會變得更復雜一些。我已經在這裏記錄了我的發現,以防其他人感興趣。
事實上的SharePoint引用組件A和組件又引用總成B.一個
我可以建立裝配A和B都無符號沒有問題,但當時如果我想籤一份,我必須改變項目本身以引用裝配B的簽名版本。
儘管可能有一種方法可以做到這一點,但我們確定可能的DLL衝突和具有相同名稱的不同DLL集的配置控制問題不值得麻煩。
因此,我們決定在所有構建中籤署這兩個程序集,必要時將代碼重構爲不同的程序集,以確保只有最少量的代碼位於已簽名的代碼中,以便它們不太可能發生更改。
Tim
如何在Visual Studio中設置「兩個不同的項目配置」? – 2012-09-11 00:55:21
@PavelChuchuva:請參閱http://msdn.microsoft.com/en-us/library/kkz9kefa.aspx – 2012-09-11 01:00:19
在項目屬性中的簽名選項卡上禁用配置下拉列表:http://i.imgur.com/vwZKy。 png – 2012-09-11 01:08:24