首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSBuild (通过Microsoft.Build命名空间)可以从内存中加载项目吗?

MSBuild (通过Microsoft.Build命名空间)可以从内存中加载项目吗?
EN

Stack Overflow用户
提问于 2012-10-19 19:37:19
回答 2查看 453关注 0票数 0

我正在开发一个服务,该服务将从存储库下载.NET解决方案并构建它(与持续集成构建服务不同)。我想知道的是,通过MSBuild命名空间类以编程方式使用Microsoft.Build,我是否可以将解决方案和项目加载到内存中,并构建它为,而不需要首先将它们保存到临时文件夹中的磁盘中?

我仍然在学习MSBuild并尝试一些事情,但我发现Stack Overflow上的人已经尝试过这一点,并且有了一些见解。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-01 16:44:37

在研究了MSBuild和所有涉及的组件之后,似乎有必要在文件系统上设置整个项目,然后才能构建它。不幸的是,我试图做的事情不能用提供的工具集来完成。

票数 1
EN

Stack Overflow用户

发布于 2012-10-19 22:44:28

我说不出这是否是个好主意,但这是有可能的。

ProjectInstance有一个接受ProjectRootElement的构造函数,这个构造函数可以通过创建(XmlReader)方法构建。正如您可能知道的,XmlReader可以附加到各种流,包括一个MemoryStream。

下面是这样的事情的样子:

代码语言:javascript
复制
var xmlReader = XmlTextReader.Create([your existing memory stream]);
var project = ProjectRootElement.Create(xmlReader);

var buildParams = new BuildParameters();
var buildData = new BuildRequestData(new ProjectInstance(project),
    new string[] { "Build", "Your Other Target Here" });

var buildResult = BuildManager.DefaultBuildManager.Build(buildParams, buildData);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12981283

复制
相关文章

相似问题

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