c# - 如何在 Visual Studio 中以编程方式在调试和发布之间进行更改
问题描述
想以编程方式更改项目设置有很多这样的设置
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";
但是我找不到在调试和发布之间切换的任何选项:
解决方案
试试(这是为 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");
}
}
}
}
推荐阅读
- python - 没有超级特权;超出最大数据包大小
- asp.net-core - 升级到 ASP.NET Core MVC 2.2 后默认路由操作不起作用
- python - Celery 的“autodiscover_tasks”功能的目的是什么?
- javascript - 循环改变变量
- latex - 对齐乳胶方程
- out-of-memory - Rxjava2 OutOfMemoryError
- python - 收到的电子邮件正文中的方法调用错误
- java - 字符串中的java正则表达式连字符多次
- javascript - 如何从 yield* 获取当前字符串的长度
- wpf - 未选择任何项目时如何将 WPF 组合框颜色更改为白色?