命名空间 'System.Diagnostics' 中不存在类型或命名空间名称 'Process'
The type or namespace name 'Process' does not exist in the namespace 'System.Diagnostics'
这个错误对我来说毫无意义。
我正在使用 CodeDOM 编译可执行文件。
这是我的 class 编译:
using System;
using System.CodeDom.Compiler;
using System.IO;
using Microsoft.CSharp;
class Compiler
{
public static bool Compile(string[] sources, string output, params
string[] references)
{
var results = CompileCsharpSource(sources, "result.exe");
if (results.Errors.Count == 0)
return true;
else
{
foreach (CompilerError error in results.Errors)
Console.WriteLine(error.Line + ": " + error.ErrorText);
}
return false;
}
private static CompilerResults CompileCsharpSource(string[] sources,
string output, params string[] references)
{
var parameters = new CompilerParameters(references, output);
parameters.GenerateExecutable = true;
using (var provider = new CSharpCodeProvider())
return provider.CompileAssemblyFromSource(parameters, sources);
}
}
以下是我编译源代码的方式:
Compiler.Compile(srcList, "test.exe", new string[] { "System.dll", "System.Core.dll", "mscorlib.dll" });
下面是我正在编译的源代码中发生错误的部分:
System.Diagnostics.Process p;
if (System.Diagnostics.Process.GetProcessesByName("whatever").Length > 0)
p = System.Diagnostics.Process.GetProcessesByName("whatever")[0];
else
return false;
所以我在编译时引用了System.dll,我在进程前面写了System.Diagnostics,(我也试过使用System.Diagnostics但是我产生了一个类似但更少具体错误),由于某种原因我收到了这个错误。我会很感激一些帮助。
您没有将引用传递给 CompileCsharpSource
。
将Compile
改为:
public static bool Compile(string[] sources, string output, params string[] references)
{
var results = CompileCsharpSource(sources, "result.exe", references);
if (results.Errors.Count == 0)
return true;
else
{
foreach (CompilerError error in results.Errors)
Console.WriteLine(error.Line + ": " + error.ErrorText);
}
return false;
}
这个错误对我来说毫无意义。 我正在使用 CodeDOM 编译可执行文件。 这是我的 class 编译:
using System;
using System.CodeDom.Compiler;
using System.IO;
using Microsoft.CSharp;
class Compiler
{
public static bool Compile(string[] sources, string output, params
string[] references)
{
var results = CompileCsharpSource(sources, "result.exe");
if (results.Errors.Count == 0)
return true;
else
{
foreach (CompilerError error in results.Errors)
Console.WriteLine(error.Line + ": " + error.ErrorText);
}
return false;
}
private static CompilerResults CompileCsharpSource(string[] sources,
string output, params string[] references)
{
var parameters = new CompilerParameters(references, output);
parameters.GenerateExecutable = true;
using (var provider = new CSharpCodeProvider())
return provider.CompileAssemblyFromSource(parameters, sources);
}
}
以下是我编译源代码的方式:
Compiler.Compile(srcList, "test.exe", new string[] { "System.dll", "System.Core.dll", "mscorlib.dll" });
下面是我正在编译的源代码中发生错误的部分:
System.Diagnostics.Process p;
if (System.Diagnostics.Process.GetProcessesByName("whatever").Length > 0)
p = System.Diagnostics.Process.GetProcessesByName("whatever")[0];
else
return false;
所以我在编译时引用了System.dll,我在进程前面写了System.Diagnostics,(我也试过使用System.Diagnostics但是我产生了一个类似但更少具体错误),由于某种原因我收到了这个错误。我会很感激一些帮助。
您没有将引用传递给 CompileCsharpSource
。
将Compile
改为:
public static bool Compile(string[] sources, string output, params string[] references)
{
var results = CompileCsharpSource(sources, "result.exe", references);
if (results.Errors.Count == 0)
return true;
else
{
foreach (CompilerError error in results.Errors)
Console.WriteLine(error.Line + ": " + error.ErrorText);
}
return false;
}