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

RHEL8安装Mono 6.12.0.199后vbc编译报错,csc正常如何解决?

Mono VB编译报错:无法找到Microsoft.VisualBasic.dll的解决方案

问题场景

  • 在RHEL8系统手动编译安装Mono 6.12.0.199,安装命令为:
    ./configure --prefix=/usr/local
    make
    make check
    make install
    
  • 编译VB程序时执行vbc hello.vb,报错:
    Microsoft (R) Visual Basic Compiler version 3.9.0-6.21124.20 (db94f4cc)
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    vbc : error BC2017: could not find library 'Microsoft.VisualBasic.dll'
    
  • 确认Microsoft.VisualBasic.dll存在于/usr/local/lib/mono/4.5-api路径下,且相同功能的C#程序通过csc hello.cs编译运行均正常。

原因分析

Mono的VB编译器(vbc)默认未正确识别自定义安装路径下的程序集搜索目录,或安装过程中未生成对应API版本的配置文件,导致编译器无法自动找到Microsoft.VisualBasic.dll。

解决方法

方法1:编译时手动指定程序集路径

执行编译命令时,通过参数明确告知vbc程序集位置:

  • 直接引用dll文件:
    vbc -r:/usr/local/lib/mono/4.5-api/Microsoft.VisualBasic.dll hello.vb
    
  • 添加程序集搜索目录:
    vbc -lib:/usr/local/lib/mono/4.5-api hello.vb
    

方法2:配置环境变量永久生效

设置MONO_PATH环境变量,让Mono全局识别程序集目录:

export MONO_PATH=/usr/local/lib/mono/4.5-api:$MONO_PATH

将上述命令添加到~/.bashrc(当前用户生效)或/etc/profile(全局用户生效)中,执行source ~/.bashrc或重启终端使配置生效。

方法3:重新编译安装Mono并指定API版本

重新执行编译安装步骤,明确指定.NET API版本,确保配置文件正确生成:

./configure --prefix=/usr/local --with-runtime=net45
make
make install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 14:37:47