2010-02-03 21 views
4

我們正在嘗試編寫一個在VB.NET環境中使用NServiceBus庫的應用程序。我們已經通過類似下面的錯誤阻礙:需要對程序集從另一個項目引用NServiceBus程序集時出現「需要引用」錯誤

參考「NServiceBus,版本= 2.0.0.1071,文化=中性公鑰= 9fc386479f8a226c」包含實現的接口「NServiceBus.IMessageHandler`1」 。添加一個到你的項目。

我們的項目已經包含對NServiceBus.dll和NServiceBus.Core.dll從同一NServiceBus 2.0 RC2發行版的引用。


重現步驟:

  1. 創建一個新的VB類庫項目(.NET 3.5)
  2. 添加NServiceBus.dll和NServiceBus.Core.dll作爲參考。
  3. 將下面的代碼Class1.vb:

    Imports NServiceBus.Sagas.Impl 
    Class Test 
        Public Function Foo() As SagaMessageHandler 
         Return Nothing 
        End Function 
    End Class 
    
  4. 您現在應該看到上面提到的編譯器錯誤。

用C#編寫的相同項目沒有編譯錯誤。


有關如何解決此問題的任何想法? (並且,是的,我的首選解決方案是切換到C#,但不是,目前這不是一個可接受的解決方案。)

+0

非常奇怪,也能在這裏再現。你能否拉下源碼並在本地重建它? – 2010-02-03 17:30:06

+0

是的,拉下了幹線源,並使用提供的構建腳本在本地構建它。有同樣的問題。還沒有仔細研究構建腳本,看看它是否可能會做任何可能導致這種情況的事情。 – cwegrzyn 2010-02-03 17:35:49

回答

3

在預感到它是與ILMerge相關的問題時,我找到了this post suggesting that assembly signing might be responsible

我下載了NServiceBus主幹源代碼,打開src/core/NServiceBus.sln,並設置解決方案中的每個項目,以從源代碼樹根目錄簽署NServiceBus.snk程序集。重建NServiceBus後生成的新DLLS修復了原始帖子中的編譯器錯誤。

2

這些項目現在在trunk和2.0分支上都很有名。

希望這會有所幫助!

+0

即使使用最新的3.0簽名的程序集也不會出現同樣的問題:( – tommed 2012-05-09 10:57:19

相關問題