这是我从project.csproj
获得的xml代码<?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>...
有没有办法将ot的值转换为OutputType,即&#39; WinExe&#39;在代码?
提前致谢。
答案 0 :(得分:2)
我得到如下:
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);
答案 1 :(得分:0)
您可以使用ProjectTypeGuids组合值获取项目类型。例如,您的项目是WPF C#项目。可以找到ProjectTypeGuids列表here.