VisualStudio

プロジェクトがVisual Studioに表示されないとき

はじめに

プロジェクトがVisual Studioに表示されないときについてのメモです。
間違いや勘違いに関しましてはご指摘いただけると幸いです。

状況

Visual Studioを立ち上げてもプロジェクトの中身が表示されないことがありました。

VisualStudioに表示されない.png

原因は「プロジェクト名.sln」ファイルに、プロジェクトについての内容が書かれていなかったためでした。
その時したことをメモとして残します。


「プロジェクト名.sln」ファイル

ソリューションはプロジェクトの上にあるディレクトリのようなもので、.slnファイルはその構成について記しています。

「プロジェクト名.csproj」ファイル

個々のプロジェクトについての構成が書かれています。
csファイルが存在しても、このファイルに書かれていない場合、プロジェクトに入っておらず、Visual Studioに表示されません。
その場合、ソリューションエクスプローラーの「すべてのファイルを表示」をクリックしてください。
すべてのファイルを表示.png
点線の状態でファイルが表示されるので、表示させたい入れたいファイルを右クリックし、「プロジェクトに含める」を選ぶとプロジェクト内に格納されます。
逆にcsファイルが存在していなくてもこのファイルに書かれていると表示されます。


対処

.slnファイル

.slnファイルを開くと、「MinimumVisualStudioVersion = 10.0.40219.1」と「Global」の間に

Project("{AB01234C-D567-89EF-0G1H-234IJK3L4567}")
      = "SlnProject", "SlnProject\SlnProject.csproj",
        "{012Z3YX4-5W6V-Y789-TSR0-1Q2PO34N5M67}"
EndProject

※{}の中の英数字は適当です。

上記の記述があるはずなのですが、なくなっていました。
Project以降の記述の構成は以下のようです。

Project("{(1)(8文字-4文字-4文字-4文字-12文字)の英数字}") 
    = "(2)プロジェクト名", 
      "(3)プロジェクト名\プロジェクト名.csproj", 
      "{(4)(8文字-4文字-4文字-4文字-12文字)の英数字}"
EndProject

(2)はプロジェクト名、(3)はプロジェクトの「.csproj」ファイルまでの相対パスです。
新規作成時にVisual Studioがプロジェクト名のフォルダを作成し、その下に.csprojファイルが作成されています。

(1)、(4)の英数字ですが、こちらは「.csproj」ファイルに記載がありますので、そちらから取ってくるのが安全だと思います。

.csprojファイル

.csprojファイルを開くと、
の下にがあります。
その中にとに記載があります。

<ProjectGuid>
    {012Z3YX4-5W6V-Y789-TSR0-1Q2PO34N5M67}
</ProjectGuid>
<ProjectTypeGuids>
    {1HK2L3F4-5M67-SE89-QP01-23X456GR7UL8};
    {AB01234C-D567-89EF-0G1H-234IJK3L4567}
</ProjectTypeGuids>

記述の構成は以下のようです。

<ProjectGuid>
    {(あ)(8文字-4文字-4文字-4文字-12文字)の英数字}
</ProjectGuid>
<ProjectTypeGuids>
    {(い)(8文字-4文字-4文字-4文字-12文字)の英数字};
    {(う)(8文字-4文字-4文字-4文字-12文字)の英数字}
</ProjectTypeGuids>

見比べてみてわかったのですが、
まず(1)は(う)と対応しています。プロジェクトの形式を指定しているようで、同じ形式のプロジェクトであれば同じ英数字のようです。

(4)は(あ)と対応しています。プロジェクト個別の内容のようで、同じ英数字になっているものは見かけません。

(い)に関しては.csprojファイルの下のほうにに記載があります。

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">

また、同様の記載が「.csproj.user」ファイルにもあります。

.slnファイルに記入

.csprojファイルの(あ)、(う)を.slnファイルの(4)、(1)にはめ込んだものを.slnファイルに記入するとVisual Studioでプロジェクトが表示されました。

おわりに

正直に言ってしまうと.slnファイルからプロジェクトについての内容が消えた理由がよくわかってません。Visual Studioや設定ファイルをいろいろ見ているうちに間違えて消してしまったようです。
GitやSubversionなどのバージョン管理システムを使用し、こまめにコミットしておけばすぐに戻せたので、環境の準備って大事ですね。