Não é possível compilar com vbnc no Ubuntu 12.04

1

Estou executando o Ubuntu 12.04 LTS. Para experimentar alguns exercícios .NET, instalei os pacotes abaixo de mono:

sudo apt-get install mono-runtime mono-mcs mono-vbnc

Agora, eu tenho o compilador mono csharp (mcs) funcionando bem. No entanto, o compilador VB.NET (vbnc) está lançando o erro abaixo:

A biblioteca 'System.Design.dll' não foi encontrada

Alguma ideia do que eu perdi?

    
por Prahlad Yeri 01.04.2013 / 15:28

3 respostas

1
O

vbnc irá, por padrão, adicionar muitas referências, e aparentemente algumas delas não são instaladas por padrão no Ubuntu.

Eu não sei o que você precisa instalar para obter System.Design.dll, mas você pode desabilitar as referências padrão passando -noconfig:

vbnc -noconfig test.vb

Observe que isso também desativará alguns outros recursos padrão, sendo que todas as importações padrão também serão desativadas.

Por exemplo, este código:

Class Test
    Shared Sub Main
        Console.WriteLine ("Hello World")
    End Sub
End Class

quando compilado assim:

vbnc -noconfig test.vb

falhará com:

test.vb (3,21) : error VBNC30451: 'Console' is not declared. It may be inaccessible due to its protection level.

A correção é fácil, apenas passe -imports: para vbnc

vbnc -noconfig test.vb -imports:System

e agora deve compilar muito bem.

    
por Rolf Bjarne Kvinge 01.04.2013 / 23:20
1

Rolf, infelizmente sua solução não funciona no Ubuntu 12.04.2 LTS:

$ vbnc -noconfig test.vb -imports:System
Visual Basic.Net Compiler version 0.0.0.5943
Copyright (C) 2004-2010 Rolf Bjarne Kvinge. All rights reserved.

Error VBNC30456: 'ComponentModel' is not a member of 'Global.System'.
Error VBNC30456: 'CodeDom' is not a member of 'Global.System'.
Error VBNC30456: 'ComponentModel' is not a member of 'Global.System'.
Error VBNC30456: 'CodeDom' is not a member of 'Global.System'.
Error VBNC30456: 'CodeDom' is not a member of 'Global.System'.
There were 5 errors and 0 warnings.

Na verdade, você deve usar vbnc2 para compilar seu código, assim:

$ vbnc2 test.vb
Visual Basic.Net Compiler version 0.0.0.5943
Copyright (C) 2004-2010 Rolf Bjarne Kvinge. All rights reserved.

Assembly 'test, Version=0.0, Culture=neutral, PublicKeyToken=null' saved successfully to 'test.exe'.
Compilation successful

Boa sorte!

    
por crt 09.05.2013 / 16:17
0

Resolvi o mesmo problema da seguinte maneira:

sudo apt-get install libmono-system-design4.0-cil
    
por Igor Pomaranskiy 21.11.2014 / 13:43