2013-12-01 3 views
0

Я пытаюсь скомпилировать фрагмент кода в Runtime с классом VBCodeProvider. Он отлично работает с одним исключением. Я не могу получить доступ к любым членам пространства имен System.Drawing . Я делаю «Imports System.Drawing» в начале кода, который делает скомпилирован без ошибок (так что я думаю, что ссылка там в порядке), но когда я попробую определить, например, графический объект с «Dim g as Графика "или" Dim g as System.Drawing.Graphics ". Я получаю исключение при компиляции: {[...] error BC30002: Der Typ "Graphics" ist nicht definiert. (The type Graphics is not defined)}Компиляция времени выполнения, System.Drawing.Graphics не найден

Когда я пытаюсь добавить System.Drawing.dll к ссылочным сборкам CompilerOptions, тогда я получаю целую кучу других ошибки компиляции, поэтому я думаю, что это не решение. Я действительно не понимаю, почему эта проблема существует. Например, в том же коде я использую члены System.Math, которые работают.

У кого-нибудь есть идея или подсказка для меня, что я могу делать неправильно?

Заранее спасибо. Jens

редактировать из-за отсутствия репутации:

Спасибо за вашу помощь. Типичная вещь: вы пытаетесь найти более часа, а затем задаете здесь, а через 10 минут вы найдете решение самостоятельно:

Проблема была в том, как я ссылался на system.drawing.dll в компиляторах. Я использовал абсолютный путь «C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Drawing.dll», и это дало мне 19 исключений в некотором коде, я даже не написал .!

enter image description here

То, что работало в том, чтобы использовать относительный путь. например

PM.ReferencedAssemblies.Add («System.Drawing.dll»)

Я не знаю, что реальная разница, но, по крайней мере, это работает. :-)

Большое вам спасибо за помощь!

+0

Вы можете показать код, в котором вы пытаетесь использовать «Графика» (отредактировать сообщение)? – Plutonix

+0

Покажите другие ошибки, возникшие после добавления сборки System.Drawing. –

+0

Другие сборки также имеют пространство имен System.Drawing, так что это ничего не значит. Конечно, вам нужно добавить ссылку, «целая куча ошибок», конечно же, необходима для диагностики проблемы с корнем. –

ответ

0

Типичная вещь: Вы попробуйте поискать в течение часа, то вы спросите здесь и через 10 минут вы найдете решение самостоятельно:

Проблема была с тем, как я сослалась на System.Drawing.dll в compileroptions , Я использовал абсолютный путь C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Drawing.dll, и это дало мне 19 исключений в некотором коде, который я даже не написал сам.

See in image here

То, что работало в том, чтобы использовать относительный путь. например

PM.ReferencedAssemblies.Add("System.Drawing.dll") 

Я не знаю, какова реальная разница, но по крайней мере это работает.

Смежные вопросы