.sln はソース管理にコミットされるべきですか?
質問
.sln ファイルをソース管理にコミットするのがベスト プラクティスですか?そうするのが適切または不適切なのはどのような場合ですか?
アップデート回答にはいくつかの良い点がありました。ご回答ありがとうございました!
解決
他の回答から、ソリューションファイルが有用であり、公式のビルドに使用されていなくてもコミットする必要があることは明らかだと思います。 Go To Definition / DeclarationなどのVisual Studio機能を使用している人にとっては便利です。
デフォルトでは、絶対パスやその他のマシン固有のアーティファクトは含まれていません。 (残念ながら、AMD CodeAnalystなど、一部のアドインツールはこのプロパティを適切に維持しません。)プロジェクトファイル(C ++とC#の両方)で相対パスを使用する場合は、マシンに依存しません。
おそらく、より便利な質問は、どのファイルを除外すべきかということです。 VS 2008プロジェクト用の.gitignoreファイルの内容は次のとおりです。
*.suo
*.user
*.ncb
Debug/
Release/
CodeAnalyst/
(最後のエントリは、AMD CodeAnalystプロファイラー用です。)
VS 2010の場合、以下も除外する必要があります。
ipch/
*.sdf
*.opensdf
他のヒント
はい-常に適切だと思います。ユーザー固有の設定は他のファイルにあります。
はい、これを行う必要があります。ソリューションファイルには、ソリューションの全体的な構造に関する情報のみが含まれています。情報はソリューション全体に適用され、プロジェクトのすべての開発者に共通する可能性があります。
ユーザー固有の設定は含まれていません。
間違いなく持っているはずです。他の人が言及した理由に加えて、プロジェクト全体のワンステップビルドを可能にする必要があります。
一般に、ソリューションファイルをチェックインすることに同意しますが、私が働いている会社では別のことを行っています。かなり大きなリポジトリがあり、開発者は時々システムのさまざまな部分で作業します。作業方法をサポートするには、1つの大きなソリューションファイルまたはいくつかの小さなソリューションファイルを用意します。どちらにもいくつかの欠点があり、開発者側で手作業が必要です。これを回避するために、すべてを処理するプラグインを作成しました。
プラグインを使用すると、各開発者は、リポジトリから関連プロジェクトを選択するだけで、ソースツリーのサブセットをチェックアウトして作業できます。プラグインはソリューションファイルを生成し、指定されたソリューションのプロジェクトファイルをその場で変更します。また、参照も処理します。言い換えれば、開発者がしなければならないことは、適切なプロジェクトを選択するだけで、その後、必要なファイルが生成/変更されます。これにより、他のさまざまな設定をカスタマイズして、会社の標準を確保することもできます。
さらに、さまざまなチェックインポリシーをサポートするためにプラグインを使用します。これにより、一般的に、ユーザーが欠陥のある/準拠していないコードをリポジトリに送信できなくなります。
はい、コミットすべきことは次のとおりです:
- ソリューション(* .sln)、
- プロジェクトファイル
- すべてのソースファイル
- アプリ構成ファイル
- ビルドスクリプト
コミットする必要があるしないとは:
- ソリューションユーザーオプション(.suo)ファイル、
- 生成されたファイルをビルドする(ビルドスクリプトを使用するなど) [編集:] -必要なすべてのビルドスクリプトとツールがバージョン管理下で利用可能な場合のみ(ビルドがcvs履歴で確実に信頼できるようにするため)
他の自動生成されたファイルについては、別のスレッド。
はい、ソース管理の一部である必要があります。 アプリケーションからプロジェクトを追加/削除するたびに、.slnが更新され、ソース管理下に置くとよいでしょう。アプリケーションコード2のバージョンを引き出して、ビルドを直接実行できます(必要な場合)。
はい、常に.slnファイルを含める必要があります。これには、ソリューションに含まれるすべてのプロジェクトへのリンクが含まれます。
ほとんどの状況では、.slnファイルをソース管理にコミットすることをお勧めします。
.slnファイルが別のツール(CMakeなど)によって生成された場合、それらをソース管理に入れることはおそらく不適切です。
すべての同期を保つためです。必要なプロジェクトはすべて一緒に配置されており、プロジェクトが見つからないことを心配する必要はありません。ビルドサーバー(Ant Hill Pro)もslnを使用して、リリース用にビルドするプロジェクトを計算します。
通常、ソリューションファイルはすべてソリューションディレクトリに配置します。この方法で、ソリューションをコードから少し分離し、作業する必要があるプロジェクトを選択するのが簡単になります。
ソース管理に保存しないと考える唯一のケースは、ソース管理にある多くのプロジェクトで大きなソリューションがあり、メインのプロジェクトのいくつかで小さなソリューションを作成したい場合ですプライベートな一時的な要件の解決策。
はい-製品の生成に使用されるものはすべてソース管理にある必要があります。
ソリューション ファイルは TFS バージョン コントロールに保管されます。ただし、メイン ソリューションは非常に大きいため、ほとんどの開発者は、必要なものだけを含む個人用ソリューションを持っています。メイン ソリューション ファイルは主にビルド サーバーによって使用されます。
.slnsは、tfsで問題がなかった唯一のものです!
1)VSで新しいプロジェクトを作成する
2)ソリューションエクスプローラーでソリューションを右クリックし、[ソース管理に追加]を選択します
slnはソース管理に追加されていますか?それがあなたの答えです。