Невозможно скомпилировать с 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