SolaceSystems.Solclient.Messaging,Version = 10.0.0.0,异常

时间:2017-07-28 11:35:47

标签: c# solace

尝试运行任何Solace应用程序时获取此异常

未处理的类型' System.BadImageFormatException'发生在未知模块中。

其他信息:无法加载文件或程序集' SolaceSystems.Solclient.Messaging,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = e191a36e57c23464'或其中一个依赖项。试图加载格式不正确的程序。

如果存在此异常的处理程序,则可以安全地继续该程序。

在建造之前也会收到警告 警告1正在构建的项目的处理器体系结构与#34; MSIL"之间存在不匹配。和参考的处理器体系结构" SolaceSystems.Solclient.Messaging,Version = 10.0.0.0,Culture = neutral,,processorArchitecture = AMD64"," AMD64"。这种不匹配可能会导致运行时故障。请考虑通过Configuration Manager更改项目的目标处理器体系结构,以便在项目和引用之间调整处理器体系结构,或者依赖于具有与项目的目标处理器体系结构相匹配的处理器体系结构的引用。

这两个相关吗?

4 个答案:

答案 0 :(得分:0)

您的平台不匹配。您很可能在x86平台上使用x64库,反之亦然。

请注意,只要在运行时安装正确的Messaging Assembly(和相应的本机库),就可以安全地忽略有关处理器体系结构不匹配的警告。此警告是视觉工作室提醒您正确设置运行时环境。

答案 1 :(得分:0)

请检查您的csproj是否已正确配置以使用依赖于运行时的库。

您需要做什么:

  • 使用适当的运行时标记项目
  • 从SolaceSystems.Solclient.Messaging包中排除过时的目标

请使用以下示例:

<PropertyGroup>
  <!-- Mark you application as x86 for debugger -->
  <PlatformTarget>x86</PlatformTarget>

  <!-- Ask MSVS to use win-x86 runtime for debug/run. Check runtimes folder in the nupkg archive to see full list -->
  <RuntimeIdentifier>win-x86</RuntimeIdentifier>
  <!-- Mark you library, that it supports this runtime -->
  <RuntimeIdentifiers>win-x86</RuntimeIdentifiers>

</PropertyGroup>


<ItemGroup>
  <!-- Use new csproj format and package references, to simplify transitive dependencies -->
    <PackageReference Include="SolaceSystems.Solclient.Messaging" Version="10.1.1" >

    <!-- Exclude obsolete solace targets -->
    <ExcludeAssets>build</ExcludeAssets>
  </PackageReference>
</ItemGroup>

请参阅其他图书馆的相同问题:

答案 2 :(得分:0)

此解决方案适用于我们的团队,其Web服务加载SolaceSystems.Solclient.Messaging.dll并获取BadImageFormatException: 在运行我们服务的应用程序池下,我们进入了高级设置,并看到了一个设置&#34;启用32位应用程序&#34;已被设置为true。将其设置为false(默认值)允许服务正常运行。事实证明,此设置与我们的64位操作系统,Build of&#34; Any CPU&#34;以及Solace客户端库的混合不兼容。

答案 3 :(得分:0)

得到类似的错误。想共享它。

找不到或打开PDB文件。 引发异常:SolaceSystems.Solclient.Messaging.dll中的“ System.DllNotFoundException”    在SolaceSystems.Solclient.Messaging.Native.Interop.SolaceNativeAPI.LogSetCallback(LogCallbackHandler回调,IntPtr用户)    在SolaceSystems.Solclient.Messaging.Native.MAdapter.MSolClientSetLogCallback(LogCallbackHandler回调,IntPtr用户) 错误-MAdapter:下午4:01:22 |互操作适配器遇到错误无法加载DLL'libsolclient':找不到指定的模块。 (来自HRESULT的异常:0x8007007E)在方法中:Init | System.DllNotFoundException:无法加载DLL“ libsolclient”:找不到指定的模块。 (来自HRESULT的异常:0x8007007E)    在SolaceSystems.Solclient.Messaging.Native.Interop.SolaceNativeAPI.LogSetCallback(LogCallbackHandler回调,IntPtr用户)    在SolaceSystems.Solclient.Messaging.Native.MAdapter.MSolClientSetLogCallback(LogCallbackHandler回调,IntPtr用户) 引发异常:SolaceSystems.Solclient.Messaging.dll中的“ SolaceSystems.Solclient.Messaging.FatalErrorException”