4

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

4

4 回答 4

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# 项目。”

于 2012-07-24T12:38:29.863 回答
4

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

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

于 2012-07-24T12:42:04.137 回答
1

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

Project("{PROJECT-TYPE-GUID}") = "OurSolution.Tests.Integration", "OurSolution.Tests.Integration\OurSolution.Tests.Integration.csproj", "{04A96D9A-FF90-4FDC-9265-704CC8D496BE}"
于 2012-07-24T12:40:16.977 回答
1

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

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

编辑:请参阅此帖子以获取答案:您如何从现有的 Visual Studio 项目中区分 Visual Studio 项目类型

于 2012-07-24T12:41:24.727 回答