.net windows 64位2008服务器上的QuickFIX/n

.net windows 64位2008服务器上的QuickFIX/n,.net,quickfix,.net,Quickfix,我之前在项目中使用过quickfix_net.dll和quickfix_net_messages.dll。该项目是在发布模式下构建的,projectproperteis->Platform目标是x86。当我试图启动我的windows服务时,上面的项目被引用了,然后我得到了“试图加载一个格式不正确的程序” 我在StAdvORT中搜索,大多数建议是使用QuasFix/N作为原生.NET,并且没有C++的复杂之处,必须与64位OS等< /P>进行斗争。 在迁移到QuickFix/n之后,我假设发布模式

我之前在项目中使用过quickfix_net.dll和quickfix_net_messages.dll。该项目是在发布模式下构建的,projectproperteis->Platform目标是x86。当我试图启动我的windows服务时,上面的项目被引用了,然后我得到了“试图加载一个格式不正确的程序”

我在StAdvORT中搜索,大多数建议是使用QuasFix/N作为原生.NET,并且没有C++的复杂之处,必须与64位OS等< /P>进行斗争。 在迁移到QuickFix/n之后,我假设发布模式build with and project properteis->Platform Target to AnyCPU可以在我的64位2008服务器上运行,但我遇到了相同的错误“试图加载格式不正确的程序”

当我将project properteis->Platform Target更改为x86时,我才能够在windows 2008 64位服务器上使用QuickFix/n

我的所有项目(即dll)都设置为任何CPU的平台目标,但只有使用QuickFix/n的特定dll需要设置为x86


有人能解释为什么原生.net QuickFix不能与x64一起工作(因为我的服务器是64位的)以及为什么它在目标设置为x86时工作。

请确保在执行项目的属性中选中或取消选中“首选32位”。如果您的QuickFix库是以32位编译的,那么您需要选中“首选32位”框,以防您以任何CPU为目标。这对我很有效

请确保在执行项目的属性中选中或取消选中“首选32位”。如果您的QuickFix库是以32位编译的,那么您需要选中“首选32位”框,以防您以任何CPU为目标。这对我很有用