首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从MSBuild以编程方式从C#中使用SLN文件?

如何从MSBuild以编程方式从C#中使用SLN文件?
EN

Stack Overflow用户
提问于 2017-10-17 03:18:34
回答 1查看 798关注 0票数 2

我正在尝试使用更新的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文件的库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-18 13:02:47

经过更多的搜索我就想出来了。在网上找到好的示例有点困难,因为两个不同版本的MSBuild API,以及只从命令行运行MSBuild的流行。

下面是我正在使用的代码,使用更新的MSBuild API:

代码语言:javascript
复制
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);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46781950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档