Joon w K
Joon w K

Reputation: 827

VSIX How to get project output type in code

Here is the xml code I got from project.csproj

<?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>...

Is there any way to cast value of ot to OutputType which is 'WinExe' in code?

Thanks in advance.

Upvotes: 1

Views: 772

Answers (2)

Mathivanan KP
Mathivanan KP

Reputation: 2044

You can get the project type using ProjectTypeGuids combination value. For example, your project is a WPF C# project. List of ProjectTypeGuids can be found here.

Upvotes: 0

Joon w K
Joon w K

Reputation: 827

I got it as follows:

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

Upvotes: 2

Related Questions