「VSでスタートアッププロジェクトの設定をslnで実現できないだろうか・・・」この問題には僕も悩んでいました。
VSでスタートアッププロジェクトの設定をslnで実現できないだろうか・・・
— ふ''れいす (@bleis) January 21, 2013
suoファイルを削除すると指定していたスタートアッププロジェクトが初期化されてしまう
ソリューション エクスプローラー上でスタートアップ プロジェクトを設定しても.suoファイルを削除してしまうと、記憶喪失状態になってしまい、毎回毎回スタートアップ プロジェクトを設定する必要があります。
Visual Studioで下図のような構成のソリューション(Sample.sln)があるとします。「App2」が「ClassLibrary1」を参照しているような状態です。
しかし、.suoファイルがない状態でソリューションを開くと、「ClassLibrary1」がスタートアップ プロジェクトになっており、F5キーを押してもアプリケーションを実行できません。
解決案のひとつとして手動でslnファイルを書き換える
僕が知ってる改善方法は1つしかなく、「slnファイルを直接テキストエディタで編集する」ことです。
Sample.slnを開くと下記のようになっています。.slnファイルの一番上に来ているプロジェクトが「ClassLibrary1」であることがわかります。このことから先頭で定義されているプロジェクトがデフォルトでスタートアップ プロジェクトとなっているのことが推測できます。
Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary1", "ClassLibrary1\ClassLibrary1.csproj", "{4AD4137E-1593-46A0-9DEB-B6D54949F90C}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App2", "App2\App2.csproj", "{5AD2C2C6-2C43-46D4-88BF-0E763D7A32DB}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution ...(省略)
もし、.slnファイルの先頭で定義されているプロジェクトが、デフォルトでスタートアップ プロジェクトになるのであれば、スタートアップ プロジェクトにしたいプロジェクトを先頭に移動させます。
Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App2", "App2\App2.csproj", "{5AD2C2C6-2C43-46D4-88BF-0E763D7A32DB}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary1", "ClassLibrary1\ClassLibrary1.csproj", "{4AD4137E-1593-46A0-9DEB-B6D54949F90C}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution ...(省略)
.suoファイルを削除した上でVisual Studioを開くと、下図のように「App2」がスタートプロジェクトになっていることが確認できました。
僕が知っているのはこの方法ですが、他に正しい対応方法をご存じの方がいらっしゃれば教えて欲しいです……。
追記:やっぱり手動で書き換えないとダメみたい……
僕がこのエントリを書いている間にリプライを頂いていました。
@bleis @ch3cooh ちゃらく検索するとこのようなどくめんとが http://t.co/aioAoUPQ
— zak (@zakkas783) January 21, 2013
.@ch3cooh @bleis あー、.sln を触って並べ直す他には手が無いみたいですねぇ ➤ http://t.co/2r1B63h1
— 眼力 玉壱號 (@objectxplosive) January 21, 2013
……悲しい。