C# 使用CodeDom编译器存在巨大问题,可以';不要在动态代码中使用名称空间

C# 使用CodeDom编译器存在巨大问题,可以';不要在动态代码中使用名称空间,c#,visual-studio-2010,.net-4.0,codedom,C#,Visual Studio 2010,.net 4.0,Codedom,我试图根据用户输入创建动态生成的代码(就像一个迷你编译器)。但我的问题是,我需要在动态代码中使用PresentationFramework.dll程序集,我不知道如何引用它 我已经尝试了Assembly.Load()和Assembly.Loadfrom()。但我得到的只是一个错误,说: “找不到程序集” 我习惯于使用IDE(右键单击引用,然后添加),但现在我需要找到一些方法通过代码来实现这一点 我需要程序集使用System.Windows.Shell创建自定义跳转列表 这不仅发生在这个特定的程序

我试图根据用户输入创建动态生成的代码(就像一个迷你编译器)。但我的问题是,我需要在动态代码中使用PresentationFramework.dll程序集,我不知道如何引用它

我已经尝试了
Assembly.Load()
Assembly.Loadfrom()
。但我得到的只是一个错误,说:

“找不到程序集”

我习惯于使用IDE(右键单击引用,然后添加),但现在我需要找到一些方法通过代码来实现这一点

我需要程序集使用
System.Windows.Shell
创建自定义跳转列表

这不仅发生在这个特定的程序集上,还发生在其他几个程序集上。但这是最重要的一个,所以如果有人能帮我,我会非常感激

所以基线是:我需要使用名称空间
System.Windows.Shell
。我需要通过代码完全引用这个名称空间(没有IDE)。如何做到这一点?甚至有可能吗

我使用的是Visual Studio 2010 Ultimate(C#)


提前谢谢

以下是直接来自以下方面的答案:

如果您的项目引用了任何 程序集,则必须指定 程序集名称作为 StringCollection作为 的ReferencedAssemblys属性 编译时使用的编译器参数 调用编译


它取决于需要添加PresentationFramework作为引用时所需的PresentationFramework版本。基本上,您可以在以下内容中找到它:

\Program File\Reference Assemblies\Microsoft\Framework
(用于64位编译,或32位操作系统上的32位编译)

(用于32位编译或64位操作系统上的32位)

这些只是根文件夹。从这里开始,您可以在“v3.0”或“.NETFramework\v4.0”中进行示例

因此,您只需要添加对完整“[path]\PresentationFramework.dll”的引用,而不只是“PresentationFramework.dll”,例如:

"C:\Program File\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\PresentationFramework.dll".

如果您指的是
//添加程序集引用。添加(“System.dll”)更具体一点吗它对PresentationFramework.dll不起作用吗
"C:\Program File\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\PresentationFramework.dll".