Pergunta sobre ubuntu, mono – Não é possível executar o aplicativo .net com Mono - mscorlib.dll não encontrado (incompatibilidade de versão?)

67

Eu tenho uma ferramenta de linha de comando simples .net escrita e compilada no Windows, usando o .net 3.5SP1. Eu gostaria de executá-lo no Linux usando o Mono.

Estou usando o Ubuntu 12.04 e instalei o Mono Runtime usando o centro de software do Ubuntu. Se eu tentar iniciar meu aplicativo no terminal fazendo:

<code>mono MyApp.exe
</code>

Eu recebo o erro:

O assembly mscorlib.dll não foi encontrado ou não pôde ser carregado. Ele deveria ter sido instalado no 'usr / lib / mono / 2.0 / mscorlib.dll'.

Se eu navegar para esse local, vejo que não existe. No entanto, existeusr/lib/mono/4.0/mscorlib.dll (e mais algumas DLLs na mesma pasta).

Então, aparentemente, há uma incompatibilidade de versão.

[no caso de ser importante,mono -V showsMono JIT compiler version 2.10.8.1 (Debia 2.10.8.1-1ubuntu2) ]

Sua resposta

5   a resposta
1

sudo apt-get purge mono-* e depoissudo apt-get install mono-complete. Isto criou os arquivos em / usr / lib / mono, entretanto o erro ainda era gerado onde estava procurando pelo arquivo em / usr / local / lib / mono que não existia.

Tentei mudar MONO_PATH para o local correto, mas não funcionou. Finalmente acabei copiando o diretório inteiro para / usr / local / lib que finalmente funcionou.

1

libmono-system.data2.0-cil" que é instalado com o Mono-complete

92

<code>sudo apt-get install mono-complete
</code>

Depois disso, eu tinha pastas 2.0, 3.5, 4.0 e mais em usr / lib / mono

Para quem enfrenta esse problema com a versão 3.4, consultestackoverflow.com/questions/22285830/… natli
Isso funcionou para mim. Obrigado! TravisWhidden
Eu tenho o mesmo problema com o NOOB v1.2. Depois que eu comecei novamente com Raspbian "Wheezy" os, como Lex apontou, ter <supportedRuntime version = "v4.0" /> no app.config fez meu aplicativo usar a versão correta (4.0) e eu não tive que instalar mono-completo. bob
Você tentou usar o app.config para definir o supportedRuntime como .NET 4 no Windows primeiro? Então você deve ser capaz de usar o Mono para executá-lo como o .NET 4, já que o executável mono deve pegá-lo como um aplicativo .NET 4. Lex Li
28

sudo apt-get install libmono2.0-cil libmono-system-net2.0-cil mono-runtime pode ser suficiente.

Infelizmente, isso não funcionou para mim (pastebin.com/XduV6vPd). A instalação do mono-completo demorou um pouco mais de tempo, mas resolveu o problema. Tagc
Esta resposta é mais precisa do que "instalar mono completo". Necessidade mono completa ~ 170Mb enquanto as libs da NET 2.0 são de aproximadamente ~ 45Mb. erm3nda
@Tagc Para mim a mensagem desapareceu depois que eu também fizsudo apt-get install libmono-system-net2.0-cil NIA
4

para minha distro (ubuntu 12. 32 Bit), mono-completo não está disponível. Então eu instalei os seguintes pacotes e o mono com as dlls mais importantes está disponível:

<code>sudo apt-get install mono-dmcs
sudo apt-get install mono-gmcs
sudo apt-get install mono-devel
</code>

Perguntas relacionadas