113

.sln ファイルをソース管理にコミットすることはベスト プラクティスですか? そうすることが適切または不適切なのはいつですか?

更新 回答にはいくつかの良い点がありました。回答ありがとうございます。

4

15 に答える 15

74

他の回答から、公式ビルドに使用されていない場合でも、ソリューションファイルは有用であり、コミットする必要があることは明らかだと思います。Go To Definition/DeclarationなどのVisualStudio機能を使用している人にとっては便利です。

デフォルトでは、絶対パスやその他のマシン固有のアーティファクトは含まれていません。(残念ながら、AMD CodeAnalystなど、一部のアドインツールはこのプロパティを適切に維持しません。)プロジェクトファイル(C ++とC#の両方)で相対パスを慎重に使用すると、マシンに依存しなくなります。それも。

おそらくもっと役立つ質問は、どのファイルを除外する必要があるかということです。VS2008プロジェクトの.gitignoreファイルの内容は次のとおりです。

*.suo
*.user
*.ncb
Debug/
Release/
CodeAnalyst/

(最後のエントリは、AMD CodeAnalystプロファイラー専用です。)

VS 2010の場合、以下も除外する必要があります。

ipch/
*.sdf
*.opensdf
于 2009-06-23T19:23:15.690 に答える
59

はい、常に適切だと思います。ユーザー固有の設定は他のファイルにあります。

于 2009-06-23T16:50:25.370 に答える
20

はい、これを行う必要があります。ソリューション ファイルには、ソリューションの全体的な構造に関する情報のみが含まれています。この情報はソリューションに対してグローバルであり、プロジェクト内のすべての開発者に共通である可能性があります。

ユーザー固有の設定は含まれていません。

于 2009-06-23T16:52:32.653 に答える
13

必ず持っているはずです。他の人が言及した理由に加えて、プロジェクト全体のワンステップビルドを可能にする必要があります。

于 2009-06-23T16:54:59.450 に答える
8

はい、コミットする必要があるのは次のとおりです。

  • ソリューション (*.sln)、
  • プロジェクトファイル、
  • すべてのソース ファイル、
  • アプリ構成ファイル
  • ビルド スクリプト

コミットしてはいけないことは次のとおりです。

  • ソリューション ユーザー オプション (.suo) ファイル、
  • 生成されたファイルをビルドする (例: ビルド スクリプトを使用) [編集:] - 必要なすべてのビルド スクリプトとツールがバージョン管理下で利用可能な場合のみ (ビルドが cvs 履歴で本物であることを確認するため)

その他の自動生成ファイルについては、別スレッドがあります。

于 2009-06-23T16:59:33.470 に答える
8

ソリューション ファイルをチェックインする必要があるという点には概ね同意しますが、私が勤務する会社では、別のことを行っています。かなり大きなリポジトリがあり、開発者は時々システムのさまざまな部分に取り組んでいます。私たちの作業方法をサポートするために、1 つの大きなソリューション ファイルか、いくつかの小さなソリューション ファイルを用意します。どちらにもいくつかの欠点があり、開発者側で手作業が必要です。これを回避するために、すべてを処理するプラグインを作成しました。

このプラグインを使用すると、各開発者はリポジトリから関連するプロジェクトを選択するだけで、ソース ツリーのサブセットをチェックアウトして作業できます。次に、プラグインはソリューション ファイルを生成し、指定されたソリューションのプロジェクト ファイルをオンザフライで変更します。また、参照も処理します。つまり、開発者は適切なプロジェクトを選択するだけで、必要なファイルが生成/変更されます。これにより、他のさまざまな設定をカスタマイズして、会社の基準を確保することもできます。

さらに、プラグインを使用して、さまざまなチェックイン ポリシーをサポートします。これにより、一般的に、ユーザーが欠陥のあるコードや非準拠のコードをリポジトリに送信することが防止されます。

于 2009-06-23T17:26:11.097 に答える
5

はい、ソース管理の一部である必要があります。アプリケーションからプロジェクトを追加/削除するたびに、.sln が更新されるため、ソース管理下に置くことをお勧めします。これにより、アプリケーション コードを 2 バージョン前に引き出して、直接ビルドを実行できます (必要な場合)。

于 2009-06-23T16:54:31.090 に答える
4

はい、常に .sln ファイルを含める必要があります。これには、ソリューション内のすべてのプロジェクトへのリンクが含まれています。

于 2009-06-23T16:53:16.160 に答える
4

ほとんどの場合、.sln ファイルをソース管理にコミットすることをお勧めします。

.sln ファイルが別のツール (CMake など) によって生成された場合、それらをソース管理に入れるのはおそらく不適切です。

于 2011-04-06T00:40:44.570 に答える
2

通常、すべてのソリューションファイルをソリューションディレクトリに配置します。このようにして、ソリューションをコードから少し分離し、作業する必要のあるプロジェクトを簡単に選択できるようになります。

于 2009-06-23T19:17:29.227 に答える
2

すべてが同期されているためです。必要なすべてのプロジェクトが一緒に配置されているため、プロジェクトを見逃す心配はありません。私たちのビルド サーバー (Ant Hill Pro) も sln を使用して、リリース用にビルドするプロジェクトを決定します。

于 2009-06-23T16:53:30.263 に答える
1

ソース管理に保存しないことを検討する唯一のケースは、ソース管理にある多くのプロジェクトを含む大規模なソリューションがあり、いくつかのメイン ソリューションからいくつかのプロジェクトを含む小さなソリューションを作成したい場合です。私的な一時的な要件。

于 2009-06-23T17:03:47.350 に答える
1

はい - 製品の生成に使用されるものはすべてソース管理されている必要があります。

于 2009-06-23T17:18:03.917 に答える
1

TFS バージョン管理でファイルを保持または解決します。しかし、メイン ソリューションは非常に大きいため、ほとんどの開発者は必要なものだけを含む個人用ソリューションを持っています。メイン ソリューション ファイルは、主にビルド​​ サーバーによって使用されます。

于 2009-06-23T18:05:45.470 に答える
0

.slns は、 tfs で問題が発生していない唯一のものです!

于 2009-06-23T16:53:45.740 に答える