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