我想在我的C#解決方案中籤署所有項目。但是,當我嘗試這樣做時,存在這樣的問題,即幾個第三方程序集沒有強大的名稱。這些組件是:Microsoft.Practices.Composite-DLL的強名稱導致編譯器錯誤
- Microsoft.Practices.Composite.dll
- Microsoft.Practices.Composite.Presentation.dll
之後做一些研究,我發現一個辦法給第三方的DLL強烈名字(source):
1) ildasm /all /out=ThirdParty.il ThirdParty.dll
2) ilasm /dll /key=YourKey.snk ThirdParty.il
這些操作都完全成功。但是,當我從我的項目未簽名組件移除的NuGet包,並添加簽署者作爲參考,我得到以下編譯器錯誤:
The type 'Microsoft.Practices.Composite.Events.EventBase' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.Practices.Composite, Version=2.0.1.0, Culture=neutral, PublicKeyToken=null'
但是,當然,我已經添加Microsoft.Practices.Composite.Presentation。 dll
爲了限制這個問題,我嘗試添加引用到一個新的項目。但是由於我在那裏得到了同樣的錯誤,我可以在我的主要解決方案中排除一些奇怪的配置。
你可以在這裏下載我的測試項目:https://www.dropbox.com/s/g7sqb4vtbnasfjz/ConsoleApplication1.zip?dl=0
我真的希望你能幫助我以任何方式。