我正在尝试使用更新的MSBuild API在C#中创建一个自定义Microsoft.Build.Evaluation脚本。我遇到的问题是这个更新的API不支持.sln文件。旧版本的Microsoft.Build.Engine API确实支持.sln文件,但我想使用较新的文件,因为1)它不受推荐,2)似乎有更多的在线文档和用法可供参考。我已经看到,MSBuild可以在成功编译解决方案时创建一个.metaproj文件,而这个分配是在CMD:set MSBuildEmitSolution=1中完成的。首先,我需要.metaproj文件来编译解决方案。API中是否有将.sln转换为.metaproj的内容?是否有用于解析.sln文件的库?
发布于 2017-10-18 13:02:47
经过更多的搜索我就想出来了。在网上找到好的示例有点困难,因为两个不同版本的MSBuild API,以及只从命令行运行MSBuild的流行。
下面是我正在使用的代码,使用更新的MSBuild API:
var pc = new ProjectCollection();
var parameters = new BuildParameters(pc)
{
Loggers = new[] { _logger } //Instance of ILogger instantiated earlier
};
var request = new BuildRequestData(
projectFullPath: pathToMySlnFile, //Solution file path
globalProperties: myPropertyDictionary,
toolsVersion: null,
targetsToBuild: myTargetsArray,
hostServices: null,
flags: BuildRequestDataFlags.ProvideProjectStateAfterBuild);
var buildResult = BuildManager.DefaultBuildManager.Build(parameters, request);https://stackoverflow.com/questions/46781950
复制相似问题