.net 4.0 针对.NET 4.0框架编译和调试的NServiceBus FullDuplex示例引发异常

.net 4.0 针对.NET 4.0框架编译和调试的NServiceBus FullDuplex示例引发异常,.net-4.0,nservicebus,.net 4.0,Nservicebus,我刚刚安装了VS2010 RC,并从NServiceBus 2.0.0.1145启动了全双工示例,它运行良好。然后,我将解决方案中每个项目的目标框架更改为“.NET framework 4”,在调试器中重新编译并启动,并收到以下异常: System.InvalidOperationException未处理 Message=在扫描的程序集中未找到终结点配置。这通常发生在NServiceBus无法加载包含IConfigureThisEndpoint的程序集时。尝试使用appsetting键在NSer

我刚刚安装了VS2010 RC,并从NServiceBus 2.0.0.1145启动了全双工示例,它运行良好。然后,我将解决方案中每个项目的目标框架更改为“.NET framework 4”,在调试器中重新编译并启动,并收到以下异常:

System.InvalidOperationException未处理 Message=在扫描的程序集中未找到终结点配置。这通常发生在NServiceBus无法加载包含IConfigureThisEndpoint的程序集时。尝试使用appsetting键在NServiceBus.Host.exe.config中显式指定类型:EndpointConfigurationTypeScanned路径:C:\Development\Personal\ThirdParty\NServiceBus\samples\FullDuplex\MyClient\bin\Debug\ Source=NServiceBus.Host 堆栈跟踪: 在d:\BuildAgent-02\work\672d81652eaca4e1\src\Host\NServiceBus.Host\Program.cs中的NServiceBus.Host.Program.ValidateEndpoints(IEnumerable`1 endpointConfigurationTypes)处:第189行 在d:\BuildAgent-02\work\672d81652eaca4e1\src\Host\NServiceBus.Host\Program.GetEndpointConfigurationType()中的NServiceBus.Host.Program.GetEndpointConfigurationType()处:第171行 位于d:\BuildAgent-02\work\672d81652eaca4e1\src\Host\NServiceBus.Host\Program.Main(字符串[]args)中的NServiceBus.Host.Program.Main处:第32行
InnerException:

错误实际上说明了一切:)

通用主机找不到终结点配置,可能是因为它无法动态发现和加载.NET 4程序集


您可能需要查看NServiceBus源代码,并根据.NET 4自己构建它,这样它才能工作。

我一直无法完全解决这个问题。我首先必须转换所有NSB项目,将目标框架设置为4.0。然后我升级到最新的ilmerge,并将其必要的参数添加到构建脚本中。接下来,我必须更新NAnt和NUnit配置文件,以便也能使用4.0。我终于能够获得一个成功的构建和ilmerge,但是现在我在使用新编译的库执行升级的FullDuplex示例时遇到了一个与TopShelf框架版本相关的错误

我假设我必须获得更新的TopShelf二进制文件,或者获取源代码,并根据4.0框架自己构建它,但我在上周还没有看到它


Andreas,有没有计划在不久的将来将NSB项目本身更新为4.0框架?

您必须在NServiceBus.Host.exe.config中提供正确的受支持运行时版本

例如:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="EndpointConfigurationTypeScanned" value="d:\w\ServiceBusTest\"/>
  </appSettings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>


我遇到了这个问题,发现NServiceBus.Host.exe的“启动外部程序”路径不是我的程序集所在的文件夹,这意味着它找不到任何端点。在这种情况下,有两个选项是指向bin文件夹中的NServiceBus.Host.exe,或者使用menty的答案并将EndpointConfigurationTypeScanned添加到配置中。

您必须获取最新的ilmerge并将v4作为targetframework传递给它。