web-dev-qa-db-ja.com

Visual Studio Solutionでのプロジェクトの順序

Visual Studio 2008では、ソリューションフォルダー内に表示されるプロジェクトの順序は何によって決まりますか?アルファベット順ではなく、ビルド順でもありません。

プロジェクトのリストの順序を変更する方法が見つかりません。 。suoファイルを削除して、。slnファイル。どちらも効果がなかった。

プロジェクトの表示順序を変更するにはどうすればよいですか?

54
Kent Boogaart

Connect.Microsoft.comには既にフィードバックリクエストが送信されているため、恒久的な解決策を待つ必要があります。

http://connect.Microsoft.com/VisualStudio/feedback/details/468874/solution-Explorer-project-sort-order (オリジナルが削除されたため、Wayback Machineリンクに置き換えられました)

一時的な回避策はありますが、十分とは言えません。それらの1つは次のとおりです。

押す F2 プロジェクトの名前を変更し、次に Enter 名前を変更せずに。これにより、そのフォルダー内のプロジェクトが一時的に並べ替えられます。

http://social.msdn.Microsoft.com/Forums/en-US/vssetup/thread/79d46a69-386e-4ad8-b9cb-b00d4252495b/?prof=required に従って)

または、ソリューションフォルダーがネストされていない場合は http://solutionsorter.codeplex.com/ を使用してSLNを永続的な修正に変更します (それは私の解決策を食べました)

しかし、ソリューションを閉じて開くと、これは機能しません。

リシャーパーを使用すると、ショートカットを押すことができます CTRL + N ソリューション内のファイルを見つけると CTRL + F12 ファイル内のメソッドを見つける。

9
Jeeva Subburaj

残念ながらVS2010はプロジェクトをアルファベット順にソートすることを強制します。

おそらく、数値のプレフィックス(01、02、03など)を追加してプロジェクトの名前を変更し、目的の順序を実現することが唯一の回避策ですが、どちらも理想的ではありません。

11
Sam

任意のテキストエディタでファイル.slnを取得します。パーツを注文する
"Project(" {2150E333-8FDC-42A3-9474-1A3956D46DE8} ")=" etc ... "
...
EndProject

好きな順序で。それを保存。それで全部です。次回このソリューションを開くと、プロジェクトはその順序になります。

9

奇抜な代替手段:これらの行を含むセクションをテキストファイルにコピーします。

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "etc..."
EndProject

このF#スクリプトを使用してアルファベット順に並べ替えます(必要に応じてファイルパスを変更します)。

open System.IO

let readlines p = File.ReadAllLines(p)
let writelines p lines = File.WriteAllLines(p, lines)

let startpos = @"Project(""{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"") = """.Length
let getProj (s:string) = s.Substring(startpos, s.IndexOf('"', startpos) - startpos)

let path = @"C:\Temp\sln.txt"
path |> readlines
    |> Array.filter (fun s -> s.StartsWith("Project"))
    |> Array.map (fun s -> (getProj(s), s))
    |> Array.sortBy fst
    |> Array.map snd
    |> Array.collect (fun s -> [|s;"EndProject"|])
    |> writelines path

(プロジェクトが少ない場合は、手作業で並べ替えるだけです)

4
Benjol

このソリューションごと: https://stackoverflow.com/a/21118705/835561

ソリューションフォルダーを使用すると、プロジェクトの依存関係に影響を与えることを心配せずに並べ替えを実行できます。これが2013年より前にどれだけうまく機能するかはわかりませんが、2013年を探してこの質問に出くわし、これが私の状況の他の人に役立つと思いました。

2
Edyn