我们正在尝试编写一个在VB.NET环境中使用NServiceBus库的应用程序。我们一直受到类似于以下错误的阻碍:
程序集'NServiceBus,Version = 2.0.0.1071,Culture = neutral,PublicKeyToken = 9fc386479f8a226c'所需的引用包含已实现的接口'NServiceBus.IMessageHandler`1'。在项目中添加一个。
我们的项目已经包含来自同一NServiceBus 2.0 RC2发行版的NServiceBus.dll和NServiceBus.Core.dll的引用。
重现的步骤:
将以下代码放在Class1.vb中:
Imports NServiceBus.Sagas.Impl
Class Test
Public Function Foo() As SagaMessageHandler
Return Nothing
End Function
End Class
用C#编写的相同项目没有编译错误。
有关如何解决此问题的任何想法? (并且,是的,我的首选解决方案是切换到C#,但不是,目前这是不可接受的。)
答案 0 :(得分:3)
预感到这是与ILMerge相关的问题,我找到了this post suggesting that assembly signing might be responsible。
我下载了NServiceBus主干源,打开了src / core / NServiceBus.sln,并设置了解决方案中的每个项目,以便从源树根用NServiceBus.snk对程序集进行签名。重建NServiceBus后生成的新DLLS修复了原始帖子中的编译器错误。
答案 1 :(得分:2)
现在项目在trunk和2.0分支上都很强大。
希望这有帮助!