早上好。请帮我修建msbuild。
我在Microsoft.Build.Evaluation.Project数组中加载了很多csproj。我在项目中更改了相同的属性。如何运行我的项目的并行构建?
当我在许多线程中运行project.Build()时,我收到异常“由于构建已在进行中,因此无法完成操作。”。
我无法在磁盘上保存项目,因为我改变了属性,只需要我。
答案 0 :(得分:1)
每个进程只能调用一个Build()函数。所以你需要同步所有的Build()调用。这样的事情:
static class ProjectBuildSync
{
private static readonly object _syncObject = new object();
public static bool Build(Project project)
{
lock (_syncObject)
return project.Build();
}
}
...
ProjectBuildSync.Build(project);
...