C# 使用CodeDom编译器存在巨大问题,可以';不要在动态代码中使用名称空间
我试图根据用户输入创建动态生成的代码(就像一个迷你编译器)。但我的问题是,我需要在动态代码中使用PresentationFramework.dll程序集,我不知道如何引用它 我已经尝试了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创建自定义跳转列表 这不仅发生在这个特定的程序
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”)那我已经试过了。它在引用诸如system.dll或system.windows.form.dll之类的程序集时有效,但在PresentationFramework.dll中不起作用。这就是我的问题所在。但是谢谢你的帮助=)你能比更具体一点吗它对PresentationFramework.dll不起作用吗
"C:\Program File\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\PresentationFramework.dll".