user2921883
user2921883

Reputation: 39

how to change Between Debug and Release programatically in visual studio

want to change project settings programatically there are many settings like this

EnvDTE80.DTE2 dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.12.0");
Project project = dte2.Solution.Projects.Item(1);
Configuration configuration = project.ConfigurationManager.ActiveConfiguration;
configuration.Properties.Item("StartAction").Value = VSLangProj.prjStartAction.prjStartActionProgram;
configuration.Properties.Item("StartProgram").Value = "your exe file";
configuration.Properties.Item("StartArguments").Value = "command line arguments";

bu i cant find any option to switch between Debug and Release :

enter image description here

Upvotes: 2

Views: 391

Answers (1)

Rich N
Rich N

Reputation: 9475

Try (this was written for VS2019: check the GetActiveObject is right for you):

using EnvDTE80;
using System;

namespace SelectConfig
{
    class Program
    {
        static void Main(string[] args)
        {
            ChangeConfiguration("Release", "Any CPU");
        }
        private static void ChangeConfiguration(string configurationName, string platformName)
        {
            DTE2 dte2 = (DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.16.0");
            bool found = false;
            foreach (SolutionConfiguration2 configuration in dte2.Solution.SolutionBuild.SolutionConfigurations)
            {
                if (configuration.Name == configurationName && configuration.PlatformName == platformName)
                {
                    configuration.Activate();
                    found = true;
                    break;
                }
            }
            if (found)
            {
                SolutionConfiguration2 finalConfig = (SolutionConfiguration2)dte2.Solution.SolutionBuild.ActiveConfiguration;
                Console.WriteLine($"End Configuration: {finalConfig.Name}/{finalConfig.PlatformName}");
            }
            else
            {
                Console.WriteLine($"Requested configuration {configurationName}/{platformName} not found");
            }
        }
    }
}

Upvotes: 1

Related Questions