2017-03-28 1 views
1

Voici le code xml je suis arrivé de project.csprojVSIX Comment obtenir le type de sortie du projet dans le code

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> 
<PropertyGroup> 
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
<ProjectGuid>{C5BEBB57-E9AD-4EAF-B7EF-43DF7ACE2B8F}</ProjectGuid> 
<OutputType>WinExe</OutputType> 
<AppDesignerFolder>Properties</AppDesignerFolder> 
<RootNamespace>WpfApplication3</RootNamespace> 
<AssemblyName>WpfApplication3</AssemblyName> 
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion> 
<FileAlignment>512</FileAlignment> 
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 
<WarningLevel>4</WarningLevel> 
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> 
</PropertyGroup>... 

Est-il possible de jeter la valeur de ot à OutputType qui est « winexe » dans le code?

Merci d'avance.

Répondre

2

Je l'ai obtenu comme suit:

DTE2 DTE = Package.GetGlobalService(typeof(EnvDTE.DTE)) as DTE2; 
var project = ((Array)DTE.ActiveSolutionProjects).GetValue(0) as Project; 
var properties = project.Properties; 
var ot = properties.Item("OutputType").Value.ToString(); 
prjOutputType po = (prjOutputType)Enum.Parse(typeof(prjOutputType), ot); 
0

Vous pouvez obtenir le type de projet à l'aide ProjectTypeGuids valeur de combinaison. Par exemple, votre projet est un projet WPF C#. Liste des ProjectTypeGuids peuvent être trouvés here.