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

Я запускаю Ubuntu 12.04 LTS. Для испытания некоторых упражнений.NET я установил ниже моно пакетов:

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

Теперь, у меня есть моно компилятор до-диеза хорошо работающие (мГц). Однако компилятор VB.NET (vbnc) бросает ниже ошибки:

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

Какая-либо идея, что я пропустил?

1
задан 1 April 2013 в 17:28

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

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

0
ответ дан 1 April 2013 в 17:28

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

sudo apt-get install libmono-system-design4.0-cil
0
ответ дан 1 April 2013 в 17:28

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

Удачи!

0
ответ дан 1 April 2013 в 17:28

Другие вопросы по тегам:

Похожие вопросы: