0
我想从另一个使用CSharpCodeProvider无法编译来自不同项目的C#文件
是编译器看到在当前目录中的目标类的问题
CompilerParameters parameters = new CompilerParameters
{
GenerateExecutable = true,
IncludeDebugInformation = true,
GenerateInMemory = false,
TreatWarningsAsErrors = true,
WarningLevel = 3,
CompilerOptions = "/optimize",
OutputAssembly = "Output.exe",
};
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
CompilerResults results = codeProvider.CompileAssemblyFromFile(parameters, new string[] { "../../../targetDirectory/targetClass.cs" });
var warnings = from e in results.Errors.Cast<CompilerError>()
where e.IsWarning
select e;
var errors = from e in results.Errors.Cast<CompilerError>()
where !e.IsWarning
select e;
foreach (var warning in warnings)
{
Console.WriteLine(warning);
}
Console.WriteLine("==========");
foreach (var error in errors)
{
Console.WriteLine(error);
}
输出误差是编译:错误CS1504:源文件 'c:\ Users \ User \ Documents \ Visual Studio 2017 \ Projects \ CurrentDirectory \ bin \ Debug \ targetClass.cs'不能为 opened('系统找不到指定的文件'。)