首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mono框架shebang linux

Mono框架shebang linux
EN

Stack Overflow用户
提问于 2010-11-20 23:13:32
回答 2查看 653关注 0票数 4

我有一个c#源文件。有没有办法像#!/usr/bin/env mono那样编译它,然后作为可执行文件运行:

以python为例,我将这样做:

代码语言:javascript
复制
#!/usr/bin/env python

事实上,我想要的是在编译后运行脚本而不调用"mono the.exe“。我想要类似于"./the.exe“的内容。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-20 23:16:14

编辑:我只是注意到你想对单个源文件执行此操作--针对单个源文件。Mono附带的csharp REPL几乎支持这一点。然而,REPL给出了一个语法错误,因为它不理解shebang行,并将其视为预处理器定义。如果我误解了,你说的是已编译的程序集,下面的文本仍然适用。/EDIT

你不能使用shebangs,因为Mono生成的.exe文件是PE可执行文件,就像在Windows上一样。它们包含CIL,而不是脚本。

但是,您可以做的是生成一个运行mono your.exe的小shell脚本并使用它,或者您也可以使用Linux内核的binfmts支持,如here所述。

票数 4
EN

Stack Overflow用户

发布于 2010-11-21 00:26:08

我认为您可以使用update-binfmtsmono注册为(编译的)单声道程序的解释器。

尝试update-binfmts --display并查看输出是否包含以下内容:

代码语言:javascript
复制
cli (enabled):
     package = mono-common
        type = magic
      offset = 0
       magic = MZ
        mask =
 interpreter = /usr/bin/cli
    detector = /usr/lib/cli/binfmt-detector-cli
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4233395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档