You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#项目发布版本添加SimConnect.dll及解决发布报错问题

解决SimConnect.dll在Release x64模式下的BadImageFormatException并完成发布

异常核心原因

System.BadImageFormatException本质是进程运行架构与依赖DLL架构不匹配,Debug x64正常说明Debug配置的架构逻辑与DLL一致,Release配置存在架构设置或文件复制的问题。

具体解决与发布步骤

  1. 确认SimConnect.dll的架构版本

    • 右键项目中的Microsoft.FlightSimulator.SimConnect.dll,查看属性→详细信息;或使用VS命令行工具执行dumpbin /headers Microsoft.FlightSimulator.SimConnect.dll,确认该DLL为x64架构。如果是32位版本,必须替换为对应x64版本的SimConnect.dll(可从微软模拟飞行SDK中获取)。
  2. 修正Release配置的架构设置

    • 打开项目属性→生成选项卡:
      • 切换到Release配置,将“平台目标”设置为x64,禁用“首选32位”选项(若存在)。
      • 打开“配置管理器”,确认Release对应的平台为x64,无混合其他架构的配置项。
  3. 配置DLL的复制与发布规则

    • 在解决方案资源管理器中,找到引用的Microsoft.FlightSimulator.SimConnect.dll,右键→属性:
      • 将“复制本地”设置为True,确保Release编译时DLL会自动复制到bin\Release\x64目录。
      • 确认“特定版本”设为False,避免版本绑定导致的兼容问题。
  4. 完成项目发布

    • 文件夹发布(推荐):
      1. 右键项目→选择发布,目标选择“文件夹”。
      2. 在发布配置中,选择Release x64作为当前配置。
      3. 点击“文件发布选项”,检查“应用程序文件”列表中,Microsoft.FlightSimulator.SimConnect.dll的发布状态为“包含”,确认后启动发布。
    • ClickOnce发布:
      1. 选择Release x64配置进入发布流程。
      2. 在“应用程序文件”设置中,将Microsoft.FlightSimulator.SimConnect.dll的发布状态设为“包含(自动)”,确保其被打包进发布包。

额外排查点

  • 检查项目是否存在其他32位依赖DLL,导致进程强制以32位运行。可通过Process Explorer查看运行中Release进程的架构(右键进程→属性→图像→架构)。
  • 发布完成后,确认发布目录中存在Microsoft.FlightSimulator.SimConnect.dll,且版本与开发时一致。

内容的提问来源于stack exchange,提问作者Fred Novack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 09:05:12