在 Ubuntu 上运行 .net 程序时,我必须输入“mono foo.exe”而不仅仅是 foo.exe 或双击图标。有没有办法只运行 foo.exe?
小智 17
这个链接有帮助吗?运行单声道
从 Mono 项目中使用 binfmt:
将 .exe 注册为非本地二进制文件(仅限 Linux)
由于这是 Linux 特定的功能,我们不建议开发人员部署此解决方案,因为这会限制其脚本的可移植性。
此外,此机制无法按应用程序部署指南的预期工作。
您还可以进行系统范围的更改,并使用 binfmt 将 exe 文件注册为非本地二进制文件。然后,当试图启动一个 exe 文件时,内核将运行单声道解释器来处理命令。Binfmt 还可用于使用 WINE 启动 Windows 可执行文件,或使用 JVM 启动 Java .class 文件。向内核注册 exe:
成为 root 并使用以下命令打开内核中的 binfmt 模块:
sudo apt-get install binfmt-support
modprobe binfmt_misc
Run Code Online (Sandbox Code Playgroud)
此外,您可能希望将modprobe命令添加到您的/etc/rc.local引导脚本中,以便在引导时执行。
将以下行添加到您的/etc/fstab文件中:
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
Run Code Online (Sandbox Code Playgroud)
然后,让您的系统在启动时运行以下命令:
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
Run Code Online (Sandbox Code Playgroud)
请务必将您的 .exe 文件也标记为文件系统中的可执行文件:
chmod +x myprogram.exe
Run Code Online (Sandbox Code Playgroud)
请注意,这不会更改您的内核,只会更改您启动系统时加载的模块。换句话说,您仍然可以升级内核而不必担心丢失这些更改。同样,您可以升级 Mono 运行时而不影响本节中列出的任何调用方法。
j-g*_*tus 10
创建启动脚本。
打开纯文本编辑器,添加以下内容:
#!/bin/bash
mono foo.exe &
Run Code Online (Sandbox Code Playgroud)
根据您的设置,您可能需要使用 foo.exe 的完整路径。
例如将文件另存为foo.sh.
使其可执行:
sudo chmod a+x foo.sh
Run Code Online (Sandbox Code Playgroud)
您现在应该可以通过双击 来启动 foo.exe foo.sh。
| 归档时间: |
|
| 查看次数: |
18000 次 |
| 最近记录: |