Visual Studio では、WinForms プロジェクトに要素を追加するためのコンテキスト メニュー コマンドは、WPF プロジェクトで表示されるものとは異なります。実際、最初に "Add->Windows Form" が表示され、2 番目に "Add->Window" が表示されます。VisualStudio が現在開いているプロジェクトの種類を区別できるパラメーター/構成はどれですか? 私の最初の賭けは .csproj ファイルでしたが、プロジェクトの種類に特徴的なものは何も見当たりません。
4 に答える
ProjectTypeGuids
VisualStudioが認識するプロジェクトの種類を特定します。プロジェクトファイルとソリューションファイルに含まれています。プロジェクトは、C#やVSTOなどの複数のプロジェクトタイプに属することができます。
WPFのGUIDはですが{60dc8134-eba5-43b8-bcc9-bb4bc16c2548}
、WinFormsのGUIDは{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
withOutputTypeですWinExe
。
多くの場合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 プロジェクトであり、 2 つ目は C# プロジェクトだと言っています。」
プロジェクトの種類を識別するのは、実際には.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
編集: 回答については、この投稿も参照してください: How do you tell the Visual Studio project type from an existing Visual Studio project