visualstudio如何知道当前项目的类型?

时间:2012-07-24 12:36:54

标签: wpf winforms visual-studio-2010 project solution

在Visual Studio中,用于在WinForms项目中添加元素的上下文菜单命令与为WPF项目显示的命令不同。事实上,我可以在第一个中看到“Add-> Windows Form”,在第二个中看到“Add-> Window”。参数/配置VisualStudio可以区分当前打开哪种项目?我的第一个赌注是.csproj文件,但我看不到项目类型的任何区别。

4 个答案:

答案 0 :(得分:4)

项目文件中经常有一个ProjectTypeGuids元素,允许Visual Studio确定它是什么项目类型。它也在解决方案文件中声明,引用了该项目。

<ProjectTypeGuids>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

作为一个例子。

这是一个指向项目指南列表的旧链接,但大多数仍然有效:http://onlinecoder.blogspot.se/2009/09/visual-studio-projects-project-type.html

这是一篇博客文章,概述了它的全部内容:

  

http://www.dzimchuk.net/blog/post/ProjectTypeGuids-node-in-VS-project-files.aspx

     

“在一个普通的类库项目中,'ProjectTypeGuids'节点完全没有了。没过多久就找到了那些神秘的GUID:List of known project type Guids。所以第一个说它是一个WPF项目第二个说它是一个C#项目。“

答案 1 :(得分:4)

ProjectTypeGuids标识Visual Studio可识别的项目类型。它包含在项目文件和解决方案文件中。项目可以属于多个项目类型,例如C#和VSTO。

WPF 的GUID为{60dc8134-eba5-43b8-bcc9-bb4bc16c2548},而 WinForms 的GUID为{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}OutputType WinExe

答案 2 :(得分:1)

它实际上是.sln文件中用于标识项目类型的GUID。

Project("{PROJECT-TYPE-GUID}") = "OurSolution.Tests.Integration", "OurSolution.Tests.Integration\OurSolution.Tests.Integration.csproj", "{04A96D9A-FF90-4FDC-9265-704CC8D496BE}"

答案 3 :(得分:1)

几乎是正确的,它在解决方案文件中。搜索属性ProjectTypeGuids。

以下是项目类型的一些GUID列表: http://www.mztools.com/articles/2008/mz2008017.aspx

修改:请参阅此帖子以获取答案:How do you tell the Visual Studio project type from an existing Visual Studio project