我有一个c#源文件。有没有办法像#!/usr/bin/env mono那样编译它,然后作为可执行文件运行:
以python为例,我将这样做:
#!/usr/bin/env python事实上,我想要的是在编译后运行脚本而不调用"mono the.exe“。我想要类似于"./the.exe“的内容。
发布于 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所述。
发布于 2010-11-21 00:26:08
我认为您可以使用update-binfmts将mono注册为(编译的)单声道程序的解释器。
尝试update-binfmts --display并查看输出是否包含以下内容:
cli (enabled):
package = mono-common
type = magic
offset = 0
magic = MZ
mask =
interpreter = /usr/bin/cli
detector = /usr/lib/cli/binfmt-detector-clihttps://stackoverflow.com/questions/4233395
复制相似问题