找不到CodeDOM程序集

时间:2013-01-04 21:59:45

标签: c# compiler-construction codedom

我刚问了一个关于使用CodeDOM进行编译的问题,我得到了一个很棒的答案,它解决了许多问题我现在遇到的一个问题是如何将以下用法添加到我的编译器中

System.Diagnostics
&&
Microsoft.Win32

当我尝试

CompilerParameters Params = new CompilerParameters();
Params.ReferencedAssemblies.Add("System.Diagnostics.dll");
&&
Params.ReferencedAssemblies.Add("Microsoft.Win32.dll");

(请注意我正在添加system.dll和其他作为表单和绘图,如果不使用这些dll,我的代码也在编译)

我收到以下错误

metadata file System.Diagnostics.dll could not be found

和Win32相同

如果我得到了一个能够让我的日子变得更好的aswer,那么非常感谢

2 个答案:

答案 0 :(得分:1)

正如Hans Passant所说,System.DiagnosticsMicrosoft.Win32名称空间,而不是程序集。这意味着没有System.Diagnostics.dll,因此您无法将其添加为参考。

在.Net中,一个程序集可以包含多个名称空间,并且单个名称空间可以包含在多个程序集中。如果查看类的文档,它总是列出其命名空间它的程序集。例如,对于the Process class,它是:

  

命名空间: System.Diagnostics
  汇编:系统(在System.dll中)

答案 1 :(得分:1)

我在以下方面取得了成功:

cp.ReferencedAssemblies.Add(typeof(TTarget).Assembly.ManifestModule.FullyQualifiedName);