找出Microsoft.Build.Evaluation.Project.Build()返回false的原因

时间:2017-05-04 14:29:07

标签: c# build csproj

我正在尝试使用.csproj文件构建C#项目。 为此,我使用以下代码:

Microsoft.Build.Evaluation.Project project = new Microsoft.Build.EvaluationProject(projectFile);
bool success = project.Build();

但并非所有项目都是构建的,对于某些项目,我false会得到project.Build()。 任何想法如何理解出了什么问题?

或许任何人都可以建议使用.csproj文件编译项目的替代方法?

1 个答案:

答案 0 :(得分:1)

您需要在ILogger方法中添加Build作为参数。我建议实施一个as the MSDN article suggests。只需复制粘贴代码,添加任何缺少的引用,你就可以了。

然后您可以按如下方式致电Build

Microsoft.Build.Evaluation.Project project = new Microsoft.Build.Evaluation.Project(projectFile);
BasicFileLogger logger = new BasicFileLogger();
logger.Parameters = logFilePath;
logger.Verbosity = LoggerVerbosity.Normal; //Increase it if you don't get enough data
bool success = project.Build(logger);

示例记录器会将正常构建期间看到的所有数据写入logFilePath的文件。基于此,您应该能够辨别出这个问题。