Vb.net 运行时编译,未找到System.Drawing.Graphics

Vb.net 运行时编译,未找到System.Drawing.Graphics,vb.net,exception,reflection,compilation,system.drawing,Vb.net,Exception,Reflection,Compilation,System.drawing,我试图在运行时使用VBCodeProvider类编译一段代码。 除了一个例外,它工作得很好。我无法访问系统的任何成员。正在绘制 命名空间。 我在代码的开头做了一个“Imports System.Drawing”,它 编译时没有错误(所以我想引用是正确的),但是当我尝试 例如,要使用“Dim g as graphics”或“Dim g as System.Drawing.graphics”定义图形对象,我在编译时遇到一个异常:{[…]错误BC30002:Der Typ“graphics”是一个不明

我试图在运行时使用VBCodeProvider类编译一段代码。 除了一个例外,它工作得很好。我无法访问系统的任何成员。正在绘制 命名空间。 我在代码的开头做了一个“Imports System.Drawing”,它 编译时没有错误(所以我想引用是正确的),但是当我尝试 例如,要使用“Dim g as graphics”或“Dim g as System.Drawing.graphics”定义图形对象,我在编译时遇到一个异常:
{[…]错误BC30002:Der Typ“graphics”是一个不明确的定义(图形类型未定义)}

当我尝试将System.Drawing.dll添加到CompilerOptions的ReferencedAssembly时,会出现一大堆其他编译错误,因此我想这不是解决方案。 我真的不明白为什么会有这个问题。例如,在同一代码中,我使用System.Math的成员,这是有效的

有没有人能告诉我我做错了什么

先谢谢你。 延斯

由于缺乏声誉而编辑:

谢谢你的帮助。典型的事情:你试着搜索一个多小时,然后在这里问,10分钟后你自己找到了解决方案:

问题在于我如何在编译器选项中引用system.drawing.dll。我确实使用了一个绝对路径“C:\Program Files(x86)\Reference Assembly\Microsoft\Framework.NETFramework\v4.0\System.Drawing.dll”,这在一些我自己都没有编写的代码中给了我19个异常

有效的方法是使用相对路径。e、 g

PM.ReferencedAssemblies.Add("System.Drawing.dll")
PM.ReferencedAssemblys.Add(“System.Drawing.dll”)

我不知道真正的区别是什么,但至少这是有效的。:-)


非常感谢你的帮助

典型的事情:你尝试搜索一个多小时,然后在这里提问,10分钟后你自己找到解决方案:

问题在于我如何在编译器选项中引用system.drawing.dll。我确实使用了一个绝对路径
C:\ProgramFiles(x86)\Reference Assembly\Microsoft\Framework\.NETFramework\v4.0\System.Drawing.dll
,在一些我自己都没有编写的代码中,这给了我19个异常

有效的方法是使用相对路径。e、 g

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

我不知道真正的区别是什么,但至少这是可行的。

你能展示一些你尝试使用
图形的代码吗?(编辑帖子)?展示你在添加System.Drawing程序集后遇到的其他错误。其他程序集也有System.Drawing命名空间,所以这没有任何意义。当然,您需要添加参考,当然“一大堆错误”对于诊断根本问题至关重要。请参阅上面的编辑。谢谢。如果您找到了解决方案,请将其添加为答案,并将该答案标记为已接受。否则,未来的读者总是会认为这个问题是开放的,即未解决的。