Невозможно скомпилировать с vbnc в Ubuntu 12.04

Я использую Ubuntu 12.04 LTS. Чтобы попробовать некоторые упражнения.NET, я установил следующие моно пакеты:

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

Теперь у меня есть моно csharp компилятор (MCS) работает нормально. Однако компилятор VB.NET (vbnc) выдает следующую ошибку:

Библиотека 'System.Design.dll' не найдена

Есть идеи, что я пропустил?

3 ответа

Решение

vbnc по умолчанию добавит много ссылок, и некоторые из них по умолчанию не установлены в Ubuntu.

Я не знаю, что вы должны установить, чтобы получить System.Design.dll, но вы можете отключить ссылки по умолчанию, передав -noconfig:

vbnc -noconfig test.vb

Обратите внимание, что это также отключит некоторые другие функции по умолчанию, в частности, будет также отключен весь импорт по умолчанию.

Так, например, этот код:

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

когда скомпилировано так:

vbnc -noconfig test.vb

потерпит неудачу с:

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

Исправить несложно, просто передайте -imports: vbnc

vbnc -noconfig test.vb -imports:System

и теперь он должен скомпилироваться просто отлично.

Рольф, к сожалению, твое решение не работает в 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.

На самом деле, вы должны использовать vbnc2 для компиляции вашего кода, например так:

$ 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

Удачи!

Я решил эту проблему следующим образом:

sudo apt-get install libmono-system-design4.0-cil
Другие вопросы по тегам