「スタートアップとして設定」オプションがslnファイルではなく、suoファイルに保存されるのはなぜですか?


175

この設定をソリューションファイルに保存して、すべてのユーザーとソースコード管理の一部で共有する必要があるようです。私たちはsuoファイルをチェックインしないので、各ユーザーはこれを個別に設定する必要がありますが、これは奇妙に見えます。

回答:


46

ユーザー固有ではない設定にする必要があるのはなぜですか?

10個のファイルが含まれるソリューションがあり、1人の開発者が主にこれらのツールの1つをテスト/使用している場合、なぜそれが起動に影響を与えるのですか?

MSはこれを正しく選択したと思います。が始めたいプロジェクトは、必ずしも他の開発者が始めたいプロジェクトとはかけ離れています。


133
多くの場合、デバッグのためにほとんどの人が希望するスタートアッププロジェクト(ウェブサイトなど)である可能性非常に高いプロジェクトがあり、クラスライブラリをスタートアッププロジェクトにしたくありません。MSがグローバルなデフォルトのスタートアッププロジェクトを設定して。必要に応じて、suoでオーバーライドします。
Jez

27
言い方をすると…デフォルトのスタートアッププロジェクトとして設定したいプロジェクトをslnファイルの最初のプロジェクトに移動します。suoファイルを削除し、ソリューションを再度開いて、最初のプロジェクトがスタートアップになるはずです。これに寄与する他の要因があるかもしれませんが、ソース管理からクリーンなプロジェクトをチェックアウトしたときに、ある特定のプロジェクトがデフォルトのままであることに気付いたときに、それを見つけました。
ミステライダン2012

2
これは、正しい起動プロジェクトを設定するためにsuoをバージョン管理にチェックインする必要があり、suoをバージョン管理にチェックインすることは悪い考えであるため、ビルドサーバーを使用する場合の問題です。
マークシャンコック2015

2
@markshancock:ビルドサーバーがスタートアッププロジェクトを気にするのはなぜですか?私はそれを問題として見たことがありません。
Jon Skeet

18
ジョン、申し訳ありませんが、ここでは-1を指定します。私は、開発者がコードをダウンロードしてF5を押す能力を備えているべきだと信じています。最も一般的な開発セットアップが構築されて開始されることを期待しています。もちろん、個人的な状況に合わせてスタートアップを調整する機能が必要ですが、上記のように、ほとんどのユーザーのデフォルトを設定できるはずです。Oliverの答えはそれを行うための何らかの方法になっているようですが、複数のスタートアッププロジェクトがソース管理にチェックインすることが依然として不可能であるように見えるのは残念です。
Stephen Holt

376

ジョンがすでに述べたように、誰もが自分のスタートアッププロジェクトを自分で定義できることが絶対に必要です。しかし、専用のデフォルトを用意することは素晴らしいことであり、私が知ることができるように、それは可能です!

ソリューションディレクトリに.suoファイルがない場合、Visual Studioは.slnファイルの最初のプロジェクトをデフォルトのスタートアッププロジェクトとして選択します。

  1. Visual Studioを閉じ、.slnファイルをお気に入りのテキストエディターで開きます。4行目から、すべてのプロジェクトがProjectEndProject行でカプセル化されているのがわかります。

  2. 目的のデフォルトのスタートアッププロジェクトを最上部にカットアンドペーストします。

  3. .suoファイルを削除します。

  4. Visual Studioでソリューションを開きます。ターダー!

ジョンが知らないことを知っていれば、特別な賞はありますか?;-)


1
やっと!これは長い間私を悩ませてきましたが、それ以上ではありません!Tkanks :)
mdonatas 2010年

4
ソリューションフォルダーにない場合にのみ機能するようです。このトリックは、私の持っているいくつかのソリューションでの経験から、ルートプロジェクトで機能することを意味します。
jdehaan 2012年

25
うわー!あなたはジョンをスキートしました!:))
AndreiRînea2012年

3
デフォルトのプロジェクトが2つある場合はどうなりますか?デフォルトで両方を開始するにはどうすればよいですか?
エイミーB

6
@Oliver:右クリックソリューション->スタートアッププロジェクトの設定...->複数のスタートアッププロジェクト。ワンクリックで複数スタート。
アントン

46

ほとんどの場合、それはありません。この上のデフォルトを持っている意味をなします。

デフォルトのスタートアッププロジェクトに対応し、これを.slnファイルに格納する方がはるかに優れていますが、開発者は.suoファイルでオーバーライドできます。起動設定が.suoファイルにない場合、.slnのデフォルトの起動プロジェクトが使用されます。

実際、これはVisual StudioのUserVoiceで提案されています。


リンクされたUserVoiceは「投票のため閉鎖されています」が、理由についてのコメントはありません。
yzorg

これは間違いなく、受け入れられた回答よりも良いスタンスです。これをユーザーごとに設定することの利点を検討したチーム内で働いたことはありません。これ等の新鮮なクローン、上の余分なセットアップにちょうどリード
トレバー・リード

3

slnStartupProjectスタートアッププロジェクトを自動的に設定するために呼び出されるWindows用の小さなコマンドラインユーティリティを作成しました。

slnStartupProject slnFilename projectName

私は個人的にそれを使用して、常にダミープロジェクトをソリューションの最初のプロジェクトとして設定するcmakeでソリューションを生成した後、スタートアッププロジェクトを設定ALL_BUILDします。

ソースは GitHubの上にあります。フォークとフィードバックは大歓迎です。


これをありがとう!私はcmakeでこの問題を正確に抱えていましたが、あなたのユーティリティはうまく機能します!
sippa 14

1
どういたしまして!私がそれを完全に解決することを決定する前に何年も私を悩ませてきたので、それは幸せに役立ちます。これがほとんどの場合明らかに有用であるのに、なぜ人々がこれについて哲学的な争いを持っているのか本当に理解しないでください。
michaK 2014

あなた..待って...何ですか?-.slnファイルを手動で生成しますか?...これはどんな魔術ですか?
BrainSlugs83 2015年

3

GITを使用している場合は、デフォルトのSUOファイルをコミットして、変更せずにマークすることができます。

git update-index --assume-unchanged YourSolution.suo

デフォルトの開始グループに複数のプロジェクトを含める場合にも機能します。私が知っている唯一の欠点は、SUOファイルをコミットしたくないすべての人がこのコマンドを実行する必要があることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.