これは、.NET/git とビルド システムを使用したプロジェクト構造に関する質問なので、簡潔にまとめます。
設定:
- .NET (C# および VB.NET)
- git (以前は svn、externals は使用しませんでした)
私が試した次のプロジェクト構造:
- [アプリ名]
- 。ギット
- [NameOfApp - 直下のソリューションファイル]
- 【プロジェクト1】
- 【プロジェクト2】
- 【構成】
- [標準]: 開発者向けの標準構成 (
リポジトリを最初に初期化するときにコピーされますが、変更することができます) - [スクリプト]: 一部のスクリプト、ビルド システムのスクリプト
- [依存関係]
- [依存関係 1]: サブモジュールです
- 【メインフォルダ】
- [ソリューションファイル]
- 【プロジェクト】
- [ソリューションファイル]
- [依存関係]
- [従属1]
- 【従属2】
- [依存関係 2]: 別のサブモジュール
- [別の解決策]: サブモジュールでは、ビルド プロセス中のいくつかの問題に対して、ほとんどヘルパーがいないことがあります。ビルド スクリプトによって呼び出されます。
- 【メインフォルダ】
- [依存関係 1]: サブモジュールです
すべてのプロジェクトに適した構造を探しています。上記の構造は、これまで 1 つのプロジェクトでのみ使用されています。
だから私の質問:
- これはあなたにとって有効な設定のように見えますか? これが難しい質問であることは承知していますが、同様のセットアップをお持ちですか、または同様のセットアップで問題がありましたか?
- gitサブモジュールをまったく使用しますか、それとももっと良いものがありますか? 彼らは悪であり、問題を引き起こす可能性があると言う人もいます。参考までに、私のサブモジュールは、多くのプロジェクトで使用されるプロジェクトです。依存関係にはソリューション ファイルが含まれている場合があるため、その下にプロジェクト フォルダーがあります。その中のプロジェクトは、私の mainapp で参照されます。サブツリーが適切かどうかわかりません。レポ (Android 用) についても聞いたことがあります。おそらくこれが解決策でしょうか? または、依存関係を管理するための他のツールはありますか?
- 私の依存関係にも依存関係がある場合があります。したがって、再帰的なクローンを作成すると、サブ依存関係を持つやや奇妙な構造が得られます (上記の構造を参照)。メインアプリにサブ依存関係を追加する必要がある場合があります。これは、そこで何かを変更したいため、依存関係の再構築が必要になるためです。では、サブディペンデンシーまたはサブサブディペンデンシーをどのように維持するのでしょうか?
- オープンソースの依存関係がある場合 (たとえば github から)、dll を直接使用しますか? それともフォークして git サブモジュールを追加しますか?
- すべてのプロジェクトを projectreference として追加しますか、それとも dll を直接参照しますか?
- どのビルドシステムが好きですか?
これらは「正解」が 1 つだけの質問ではないことは承知していますが、少しお役に立てて、考えを共有していただけないでしょうか。
ありがとう、サイバー1000