как программно переключаться между Debug и Release в Visual Studio - PullRequest
2 голосов
/ 24 апреля 2020

хотите изменить настройки проекта программно, существует множество таких настроек, как это

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";

но я не могу найти никакой опции для переключения между отладкой и выпуском:

enter image description here

1 Ответ

1 голос
/ 25 апреля 2020

Попробуйте (это было написано для VS2019: проверьте, подходит ли вам GetActiveObject):

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");
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...