在 Visual Studio 中,用于在 WinForms 项目中添加元素的上下文菜单命令与为 WPF 项目显示的不同。事实上,我可以在第一个中看到“Add->Windows Form”,在第二个中看到“Add->Window”。VisualStudio 通过哪些参数/配置可以区分当前打开的是哪种项目?我的第一个赌注是 .csproj 文件,但我看不出项目类型有什么特别之处。
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 是关于什么的:已知项目类型 Guid 的列表。所以第一个说它是一个 WPF 项目,而第二个说这是一个 C# 项目。”
ProjectTypeGuids
识别 Visual Studio 识别的项目类型。它包含在项目文件和解决方案文件中。一个项目可以属于多个项目类型,例如 C# 和 VSTO。
WPF的 GUID 为,{60dc8134-eba5-43b8-bcc9-bb4bc16c2548}
而WinForms的 GUID{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
为OutputTypeWinExe
。
它实际上是.sln
文件中标识项目类型的 GUID。
Project("{PROJECT-TYPE-GUID}") = "OurSolution.Tests.Integration", "OurSolution.Tests.Integration\OurSolution.Tests.Integration.csproj", "{04A96D9A-FF90-4FDC-9265-704CC8D496BE}"
几乎正确,它在解决方案文件中。搜索属性 ProjectTypeGuids。
以下是项目类型的一些 GUID 列表: http ://www.mztools.com/articles/2008/mz2008017.aspx
编辑:请参阅此帖子以获取答案:您如何从现有的 Visual Studio 项目中区分 Visual Studio 项目类型