在Visual Studio的Configuration Manager中以编程方式在项目上打勾“生成”

时间:2019-10-04 16:11:18

标签: visual-studio build automation configurationmanager

我正在尝试通过某种脚本在Visual Studio的配置管理器中设置“生成”复选框。

这适用于不同的“项目构建模式”,因此我可以根据当前的工作在是否构建某些项目之间进行切换。我不喜欢必须手动执行操作,因此我正在尝试通过自动脚本或程序使其工作。

1 个答案:

答案 0 :(得分:0)

您可以将以下C#脚本用于我的Visual Commander扩展名:

public class C : VisualCommanderExt.ICommand
{
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
    {
        this.DTE = DTE;

        SetShouldBuild(@"ConsoleApp1\ConsoleApp1.csproj", true);
    }

    void SetShouldBuild(string project, bool shouldBuild)
    {
        EnvDTE80.Solution2 solution2;
        EnvDTE80.SolutionBuild2 solutionBuild2;
        EnvDTE.SolutionContexts solutionContexts;

        solution2 = (EnvDTE80.Solution2)DTE.Solution;
        solutionBuild2 = (EnvDTE80.SolutionBuild2)solution2.SolutionBuild;

        foreach (EnvDTE80.SolutionConfiguration2 solutionConfiguration2 in solutionBuild2.SolutionConfigurations)
        {
            solutionContexts = solutionConfiguration2.SolutionContexts;
            foreach (EnvDTE.SolutionContext solutionContext in solutionContexts)
            {
                if (solutionContext.ProjectName == project)
                    solutionContext.ShouldBuild = shouldBuild;
            }
        }
    }

    EnvDTE80.DTE2 DTE;
}

添加多个 SetShouldBuild 调用以一次“打勾”多个项目的构建。