【问题标题】:how visualstudio knows about the type of current project?visualstudio 如何知道当前项目的类型?
【发布时间】:2012-07-22 18:44:41
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    举个例子。

    这里有一个指向项目 guid 列表的旧链接,但大多数仍然有效: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# 项目。”

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 虽然,是的,它也在解决方案文件中,但如果它不是类库的话,它最初在 proj 文件中。否则,将项目导入另一个解决方案将非常困难。 =)
      • @J. Steen 谢谢,不知道。我想知道使用解决方案加载时会优先考虑什么。
      • 我假设解决方案文件,考虑到它首先加载 - 但我还不确定 - 所以我猜 actual 对“VS如何知道" 将是,正如您所说:解决方案文件。 ;)
      【解决方案3】:

      几乎正确,它在解决方案文件中。搜索属性 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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-10-30
          • 2018-01-25
          • 2011-11-25
          • 1970-01-01
          • 1970-01-01
          • 2012-01-05
          相关资源
          最近更新 更多