在MSBuild自定义任务中构建项目失败

时间:2014-08-29 15:10:29

标签: c# visual-studio-2010 build msbuild msbuild-task

我有用于构建项目的MS Build脚本。构建逻辑并不简单,因此我实现了自定义MS Build任务,该任务由构建脚本破坏。 在任务中我使用这样的代码

   project.Build();

但是,当这个代码被调用时,我看到了异常,带有消息:"无法开始构建,构建已经运行的"。 如何使用MS Build API以编程方式在构建脚本运行的自定义任务中构建项目?

任务代码:

    public class SimpleTask : Task
{
    public override bool Execute()
    {
        try
        {
            var project = ProjectCollection.GlobalProjectCollection.LoadProject("C:/dummy.csproj");
            project.Build();
            return true;

        }
        catch (Exception ex)
        {
            return false;
        }
    }
}

使用ms内部构建脚本的示例

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
       <UsingTask TaskName="ClassLibrary1.SimpleTask" 
    AssemblyFile="ClassLibrary1.dll"/>
       <Target Name="MyTarget">
         <SimpleTask />
       </Target>
   </Project>

失败的命令:project.Build(); 异常消息:&#34;无法完成操作,因为建筑物已在进行中。&#34;

0 个答案:

没有答案