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

在.NET7.0 WPF中连接Basler ace acA1440-73gm相机的问题

.NET7 WPF中连接Basler ace acA1440-73gm相机的正确方案

一、正确的NuGet包选择

必须匹配你安装的pylon Runtime 7.4.0大版本,选择Basler.Pylon.NET.x64 7.4.0.xxx版本的NuGet包,你遇到的两个错误原因如下:

  • 第一个错误(找不到Basler命名空间):并非包本身问题,大概率是项目配置或引用缓存导致
  • 第二个错误(外部组件异常):旧版本Basler.Pylon.x64 4.2.1与pylon Runtime 7.4.0版本不兼容,跨大版本调用必然出现兼容性问题

二、项目配置前置检查

  1. 右键项目→属性→生成,将目标平台设置为x64(Basler的.NET包仅支持x64架构,不能用Any CPU)
  2. 确认项目目标框架为.NET 7.0(WPF),Basler 7.4.0版本的包已完全支持.NET 5+系列框架
  3. 验证pylon Runtime 7.4.0为x64版本,与项目平台保持一致

三、相机连接代码示例

以下是WPF项目中连接相机的基础实现,包含资源释放逻辑:

using Basler.Pylon;
using System.Windows;

namespace BaslerCameraDemo
{
    public partial class MainWindow : Window
    {
        private Camera _camera;

        public MainWindow()
        {
            InitializeComponent();
            Loaded += MainWindow_Loaded;
            Closing += MainWindow_Closing;
        }

        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                // 枚举可用相机设备
                var devices = Camera.EnumerateDevices();
                if (devices.Count == 0)
                {
                    MessageBox.Show("未检测到Basler相机");
                    return;
                }

                // 连接第一个相机
                _camera = new Camera(devices[0]);
                _camera.Open();

                // 示例:设置相机参数(帧率)
                _camera.Parameters[PLCamera.AcquisitionFrameRateEnable].SetValue(true);
                _camera.Parameters[PLCamera.AcquisitionFrameRate].SetValue(73.0);

                MessageBox.Show("相机连接成功");
            }
            catch (Exception ex)
            {
                MessageBox.Show($"连接失败:{ex.Message}");
            }
        }

        private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            // 释放相机资源
            _camera?.Close();
            _camera?.Dispose();
        }
    }
}

四、常见问题排查

  • 若仍提示找不到Basler命名空间:
    1. 右键项目→管理NuGet包,确认Basler.Pylon.NET.x64已正确安装
    2. 清理解决方案后重新生成,清除编译缓存
    3. 检查项目输出目录中是否存在Basler.Pylon.dll文件
  • 若仍出现外部组件异常:
    1. 卸载所有旧版本Basler NuGet包,重新安装与Runtime版本完全匹配的包
    2. 重启Visual Studio,避免进程残留旧版本库文件

内容的提问来源于stack exchange,提问作者shiddham sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 14:42:52