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

在Mint系统中通过Mono从SMB共享运行.NET应用的问题

解决Mono直接运行SMB共享.NET程序的问题

Mono无法直接识别SMB URL路径,它只能访问本地文件系统路径。要创建桌面快捷方式直接运行共享上的EXE,需先将SMB共享挂载到本地目录,再通过本地路径调用Mono。

步骤1:挂载SMB共享到本地目录

  1. 安装必要工具(未安装时执行):
sudo apt install cifs-utils
  1. 创建挂载点目录:
sudo mkdir /mnt/smbshare
  1. 临时挂载共享(替换为你的实际信息):
sudo mount -t cifs //xxx.xxx.xxx.xxx/Share /mnt/smbshare -o username=你的SMB用户名,password=你的SMB密码,uid=$UID,gid=$GID
  • uid=$UID和gid=$GID用于让当前用户拥有挂载目录的访问权限,避免权限问题。
  • 若不想明文输入密码,可创建凭证文件:
    sudo nano /etc/smbcredentials
    
    写入内容:
    username=你的SMB用户名
    password=你的SMB密码
    
    设置文件权限:
    sudo chmod 600 /etc/smbcredentials
    
    挂载命令改为:
    sudo mount -t cifs //xxx.xxx.xxx.xxx/Share /mnt/smbshare -o credentials=/etc/smbcredentials,uid=$UID,gid=$GID
    
  1. 设置开机自动挂载(可选):
    编辑/etc/fstab文件:
sudo nano /etc/fstab

添加一行:

//xxx.xxx.xxx.xxx/Share /mnt/smbshare cifs credentials=/etc/smbcredentials,uid=$UID,gid=$GID 0 0

保存后执行sudo mount -a验证生效情况。

步骤2:创建桌面快捷方式(.desktop文件)

  1. 在桌面新建Program.desktop文件,写入以下内容:
[Desktop Entry]
Name=你的程序名称
Comment=运行SMB共享上的.NET程序
Exec=mono /mnt/smbshare/Program.exe
Icon=/path/to/your/icon.png  # 可选,替换为实际图标路径
Terminal=false  # 无需终端窗口则设为false
Type=Application
Categories=Utility;Application;
  1. 赋予文件可执行权限:
chmod +x ~/Desktop/Program.desktop

双击该快捷方式即可直接运行共享上的程序。

替代方案:脚本自动挂载并运行(适合临时使用)

若不想永久挂载,可编写shell脚本:

  1. 创建run_program.sh文件:
nano run_program.sh

写入:

#!/bin/bash

# 检查是否已挂载
if ! mountpoint -q /mnt/smbshare; then
    sudo mount -t cifs //xxx.xxx.xxx.xxx/Share /mnt/smbshare -o credentials=/etc/smbcredentials,uid=$UID,gid=$GID
fi

# 运行程序
mono /mnt/smbshare/Program.exe

# 可选:程序退出后卸载共享
# sudo umount /mnt/smbshare
  1. 赋予可执行权限:
chmod +x run_program.sh
  1. 桌面快捷方式的Exec指向该脚本:
Exec=/path/to/run_program.sh

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 01:30:04