我们正在尝试编写一个在 VB.NET 环境中使用 NServiceBus 库的应用程序。我们一直被类似于以下的错误所困扰:
Reference required to assembly 'NServiceBus, Version=2.0.0.1071, Culture=neutral, PublicKeyToken=9fc386479f8a226c' containing the implemented interface 'NServiceBus.IMessageHandler`1'. Add one to your project.
我们的项目已经包含对来自同一 NServiceBus 2.0 RC2 发行版的 NServiceBus.dll 和 NServiceBus.Core.dll 的引用。
重现步骤:
Imports NServiceBus.Sagas.Impl
Class Test
Public Function Foo() As SagaMessageHandler
Return Nothing
End Function
End Class
用 C# 编写的相同项目没有编译错误。
关于如何解决这个问题的任何想法? (而且,是的,我的首选解决方案是切换到 C#,但不,目前这不是可接受的解决方案。)
最佳答案
我预感这是一个与 ILMerge 相关的问题,我发现了 this post suggesting that assembly signing might be responsible .
我下载了 NServiceBus 主干源,打开 src/core/NServiceBus.sln,并设置解决方案中的每个项目以从源树根目录使用 NServiceBus.snk 对程序集进行签名。重建 NServiceBus 后生成的新 DLLS 修复了我原来帖子中的编译器错误。
关于vb.net - 从另一个项目引用 NServiceBus 程序集时出现 "Reference required"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2193625/