我正在创建一个用C#编写的Visual Studio插件,允许用户将其代码发送到远程PC进行解析。该过程将根据所使用的Active Solution Platform而有所不同。

我希望该加载项能够获得当前的Active Solution Platform,以便可以正确处理用户代码。

我尝试了以下方法:

try
{
SolutionBuild builder = applicationObject.Solution.SolutionBuild;
SolutionConfiguration2 config;
config = (SolutionConfiguration2)builder.SolutionConfigurations.Item(1);
MessageBox.Show("The platform name of
the solution configuration is: " + config.PlatformName);
}
catch(SystemException ex)
{
   MessageBox.Show(ex.ToString());
}


但是,这总是返回列表中的第一个平台,而不是当前平台。

最佳答案

这将获取活动项目的配置名称和平台名称。

object[] openProjects = (object[])applicationObject.ActiveSolutionProjects;
Project activeProject = (Project)openProjects[0];
string configurationName = activeProject.ConfigurationManager.ActiveConfiguration.ConfigurationName;
string platformName = activeProject.ConfigurationManager.ActiveConfiguration.PlatformName;

10-07 20:19