我正在尝试使用.csproj文件构建C#项目。 为此,我使用以下代码:
Microsoft.Build.Evaluation.Project project = new Microsoft.Build.EvaluationProject(projectFile);
bool success = project.Build();
但并非所有项目都是构建的,对于某些项目,我false
会得到project.Build()
。
任何想法如何理解出了什么问题?
或许任何人都可以建议使用.csproj文件编译项目的替代方法?
答案 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
的文件。基于此,您应该能够辨别出这个问题。