2015-06-24 42 views
0

我想在我的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

我真的希望你能幫助我以任何方式。

回答

0

今天我發現複合庫是從版本4開始的Prism的一部分。所以我沒有添加對由我簽名的dll的引用,而是添加了已經簽名的Prism的NuGet包。

相關問題