Answers:
此链接有帮助吗?运行单声道
在使用binfmt的Mono项目中:
将.exe注册为非本机二进制文件(仅Linux)
由于这是特定于Linux的功能,因此不建议开发人员部署此解决方案,因为它会限制脚本的可移植性。
此外,此机制无法按应用程序部署准则的要求运行。
您还可以在系统范围内进行更改,并使用binfmt将exe文件注册为非本地二进制文件。然后,当尝试启动exe文件时,内核将运行单声道解释器来处理命令。Binfmt也可用于使用WINE启动Windows可执行文件,或使用JVM启动Java .class文件。要向内核注册exe:
成为root用户,并使用以下命令打开内核中的binfmt模块:
sudo apt-get install binfmt-support
modprobe binfmt_misc
另外,您可能希望将modprobe
命令添加到/etc/rc.local
引导脚本中,以便在引导时执行该命令。
将以下行添加到您的/etc/fstab
文件中:
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
然后,让系统在引导时运行以下命令:
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
确保在文件系统中也将.exe文件标记为可执行文件:
chmod +x myprogram.exe
请注意,这不会更改内核,只会更改引导系统时加载的模块。换句话说,您仍然可以升级内核而不必担心丢失这些更改。同样,您可以升级Mono运行时,而不会影响本节中列出的任何调用方法。
FATAL: Module binfmt not found
在12.04
您可以在Nautilus上关联文件扩展名“ .exe”,以便与 /usr/bin/mono
我知道这是一个老问题,但我是通过Google找到的,这让我开始思考。这是一个主要的技巧,但您可以下载
https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh
到您的家中,并将以下内容添加到.bashrc中
source ~/.bash-preexec.sh
preexec() {
if [[ $1 =~ [^\s]+\.exe$ ]]; then
eval "$1() { return 1; }"
export -f $1
/usr/bin/mono $1
fi
}
precmd() { [[ $1 =~ [^\s]+\.exe$ ]]; unset -f $1; }