Execução de um programa mono sem digitar 'mono foo.exe'

13

Ao executar um programa .net no Ubuntu, eu tenho que digitar "mono foo.exe" em vez de apenas foo.exe ou clicar duas vezes no ícone. Existe alguma maneira de apenas executar foo.exe?

    
por dan gibson 06.01.2011 / 01:54

4 respostas

17

Este link ajuda? Correndo Mono

Do Projeto Mono sobre o uso do binfmt:

Registrando .exe como binários não nativos (somente Linux)

Como esse é um recurso específico do Linux, não recomendamos que os desenvolvedores implantem essa solução, pois isso limitaria a portabilidade de seus scripts.

Além disso, esse mecanismo não funciona como esperado pelas Diretrizes para implantação de aplicativos .

Você também pode fazer uma alteração em todo o sistema e usar o binfmt para registrar os arquivos exe como binários não-nativos. Então, ao tentar iniciar um arquivo exe, o kernel executará o interpretador mono para manipular o comando. O Binfmt também pode ser usado para iniciar executáveis do Windows usando arquivos WINE ou Java .class usando uma JVM. Para se registrar exe com o kernel:

Torne-se root e ligue o módulo binfmt no seu kernel com este comando:

sudo apt-get install binfmt-support
modprobe binfmt_misc

Além disso, você pode adicionar o comando modprobe ao seu script de inicialização /etc/rc.local , para que ele seja executado na inicialização.

Adicione a linha abaixo ao seu arquivo /etc/fstab :

binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none

Depois, faça o seu sistema executar o seguinte comando na inicialização:

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

Não deixe de marcar seus arquivos .exe como executáveis no sistema de arquivos:

chmod +x myprogram.exe

Note que isto não altera o seu kernel, apenas os módulos que ele carrega quando você inicializa o seu sistema. Em outras palavras, você ainda pode atualizar seu kernel sem se preocupar em perder essas mudanças. Da mesma forma, você pode atualizar seu tempo de execução do Mono sem afetar nenhum dos métodos de chamada listados nesta seção.

    
por user8290 06.01.2011 / 03:03
10

Crie um script de inicialização.

Abra um editor de texto simples, adicione isto:

#!/bin/bash
mono foo.exe &

Dependendo da sua configuração, você pode precisar usar o caminho completo para o foo.exe.

Salve o arquivo por exemplo como foo.sh .

Torne-o executável:

sudo chmod a+x foo.sh

Agora você deve poder iniciar o foo.exe clicando duas vezes em foo.sh .

    
por j-g-faustus 06.01.2011 / 02:14
2

Você pode associar a extensão de arquivo '.exe' no Nautilus para ser executada com /usr/bin/mono

    
por Jader Dias 23.04.2011 / 02:59
1

Eu sei que esta é uma pergunta antiga, mas eu achei através do google e isso me fez pensar. Este é um grande truque, mas você pode baixar

link

para sua casa e adicione o seguinte a .bashrc

source ~/.bash-preexec.sh
preexec() {
  if [[  =~ [^\s]+\.exe$ ]]; then
    eval "() { return 1; }"
    export -f 
    /usr/bin/mono 
  fi
}
precmd() { [[  =~ [^\s]+\.exe$ ]]; unset -f ; }
    
por nettux443 07.10.2015 / 17:20

Tags