2012-07-24 56 views
4

在Visual Studio中,用於在WinForms項目中添加元素的上下文菜單命令與爲WPF項目顯示的元素不同。實際上,我可以在第一個和第二個「Add-> Window」中看到「Add-> Windows Form」。 VisualStudio通過哪些參數/配置可以區分當前打開哪種類型的項目?我的第一個賭注是.csproj文件,但我沒有看到關於項目類型的獨特之處。visualstudio如何知道當前項目的類型?

回答

4

項目文件中經常會有一個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#項目「。

1

它實際上是.sln文件中標識項目類型的GUID。

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

雖然,它也在解決方案文件中,但它最初是在proj文件中,如果它只是一個類庫的話。否則,將一個項目導入另一個解決方案很困難。 =) – 2012-07-24 12:55:11

+0

@J。謝恩,不知道。我想知道使用解決方案進行加載時優先級高低。 – Aphelion 2012-07-24 12:56:53

+0

我會假設解決方案文件,考慮到它首先加載 - 但我很不確定 - 所以我猜想「VS如何知道」的問題的答案將如您所說:解決方案文件。 ;) – 2012-07-24 12:57:57

4

ProjectTypeGuids確定的Visual Studio識別項目的類型。它包含在項目文件和解決方案文件中。一個項目可以屬於多種項目類型,例如C#和VSTO。

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

相關問題