Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 勾选“;“建立”;在Visual Studio中';s以编程方式为项目配置管理器_Visual Studio_Build_Automation_Configurationmanager - Fatal编程技术网

Visual studio 勾选“;“建立”;在Visual Studio中';s以编程方式为项目配置管理器

Visual studio 勾选“;“建立”;在Visual Studio中';s以编程方式为项目配置管理器,visual-studio,build,automation,configurationmanager,Visual Studio,Build,Automation,Configurationmanager,我试图通过某种脚本在VisualStudio的配置管理器中设置“构建”复选框 这是针对不同的“项目构建模式”,因此我可以根据当前的工作,在构建或不构建某些项目之间进行切换。我不喜欢手动操作,所以我尝试通过自动脚本或程序使其工作。您可以使用以下C#脚本作为我的扩展: public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Pa

我试图通过某种脚本在VisualStudio的配置管理器中设置“构建”复选框


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

您可以使用以下C#脚本作为我的扩展:

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调用,一次“勾选”几个项目的构建。

因此,如果我理解正确,这是使用EnvDTE80,设置解决方案上下文的ShouldBuild可以控制勾选框?@ErdrikIronrose它使用Visual Studio SDK并更改内部解决方案构建设置。