Làm cách nào để đặt bash chạy * .exe với mono?


7

Không có bất kỳ DE hay thậm chí X nào, tôi muốn sử dụng ./my.exeđể chạy mono my.exe, giống như nó hoạt động với các kịch bản python.

Câu trả lời:


8

Bash không có tính năng như vậy. Zsh có, bạn có thể thiết lập bí danh dựa trên tiện ích mở rộng:

alias -s exe=mono

Điều này sẽ chỉ hoạt động trong một vỏ tương tác, tuy nhiên, không phải khi một chương trình gọi một chương trình khác.

Trong Linux, bạn có thể thiết lập thực thi các nhị phân nước ngoài thông qua cơ chế binfmt_misc ; xem Rolf Bjarne Kvinge . Các bản phân phối Linux tốt sẽ tự động thiết lập phần này như một phần của gói thời gian chạy đơn.

Nếu bạn không thể sử dụng binfmt_misc vì bạn không có quyền root, bạn sẽ phải giải quyết các tập lệnh trình bao bọc.

#!/bin/sh
exec /path/to/mono "$0.exe" "$@"

Đặt tập lệnh bao bọc trong cùng thư mục với .exetệp, có cùng tên mà không có .exe.


6

Điều đó là có thể:

  • Trở thành root và bật mô-đun binfmt trong kernel của bạn bằng lệnh này (bạn có thể muốn thêm lệnh này vào tập lệnh khởi động /etc/rc.local của mình, để nó sẽ được thực thi khi khởi động):

    modprobe binfmt

  • Thêm dòng dưới đây vào tập tin / etc / fstab của bạn:

    binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none

  • Sau đó, yêu cầu hệ thống của bạn chạy lệnh sau khi khởi động:

    echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register

  • Đảm bảo đánh dấu các tệp .exe của bạn là có thể thực thi được trong hệ thống tệp:

    chmod +x myprogram.exe

(từ đây: http://mono-project.com/Guide )

Lưu ý rằng đây không phải là cách được đề xuất, hãy đọc trang Hướng dẫn được đề cập ở trên và cũng là trang về cách thực hiện triển khai ứng dụng cho các ứng dụng đơn.


Tôi thấy, thực sự tôi tốt hơn nên tạo trình tải cho mỗi .exe tôi cần
cnd

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.