[英]Run parallel build of Microsoft.Build.Evaluation.Project from C#
Good morning. 早上好。 Please help me with msbuild.
请帮我msbuild。
I have many loaded csproj in array of Microsoft.Build.Evaluation.Project. 我在Microsoft.Build.Evaluation.Project数组中加载了很多csproj。 I changed same properties in projects.
我在项目中更改了相同的属性。 How run parallel build of my projects?
如何运行我的项目的并行构建?
When I run project.Build() in many threads, I received exception "The operation cannot be completed because a build is already in progress." 当我在许多线程中运行project.Build()时,我收到异常“由于构建已在进行中,因此无法完成操作。” .
。
I can't save projects on disk, becouse I change property, that need only for me. 我不能在磁盘上保存项目,因为我改变了属性,只需要我。
You can call only one Build() function per process. 每个进程只能调用一个Build()函数。 So you need to synchronize all Build() call.
所以你需要同步所有的Build()调用。 Something like that:
像这样的东西:
static class ProjectBuildSync
{
private static readonly object _syncObject = new object();
public static bool Build(Project project)
{
lock (_syncObject)
return project.Build();
}
}
...
ProjectBuildSync.Build(project);
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.