【问题标题】:Runtime Compilation, System.Drawing.Graphics not found运行时编译,未找到 System.Drawing.Graphics
【发布时间】:2013-12-24 14:08:25
【问题描述】:

我正在尝试使用 VBCodeProvider 类在运行时编译一段代码。 它工作得很好,但有一个例外。我无法访问 System.Drawing 的任何成员 命名空间。 我在代码的开头做了一个“Imports System.Drawing” 编译没有错误(所以我猜参考是好的)但是当我尝试时 例如,使用“Dim g as Graphics”或“Dim g as System.Drawing.Graphics”定义图形对象,我在编译时遇到异常:{[...] error BC30002: Der Typ "Graphics" ist nicht definiert. (The type Graphics is not defined)}

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

有人对我可能做错的事情有什么想法或提示吗?

提前谢谢你。 延斯

因缺乏声誉而编辑:

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

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

有效的是使用相对路径。例如

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

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

非常感谢您的帮助!

【问题讨论】:

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

标签: vb.net exception reflection compilation system.drawing


【解决方案1】:

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

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

有效的是使用相对路径。例如

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 2018-01-07
    • 2013-02-05
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多