1

多数の異なるソリューション ファイルを含むプロジェクトがあり、各ソリューションには多くのプロジェクトがあります。問題は、特定のソリューションのために構築する必要があるプロジェクトがあることです。各開発者は、大規模なソリューション (多くのプロジェクトを含むソリューション) を開くという苦痛を経験しなければなりません。問題は、特定のビルド順序に従う必要があるため、これらのソリューションが常にビルドされるとは限らないことです。

私の質問は、特定のディレクトリ内の各プロジェクトの依存関係を特定し、これらのプロジェクトをビルドする方法があるかどうかです。私たちが所有する他のプロジェクトに依存していないすべてのプロジェクト ファイルを見つけるようなものです。したがって、そのようなプロジェクトを最初にビルドしてから、依存関係が既にビルドされているプロジェクトをビルドします。

これを行うために F# または Fake を使用することを考えていましたが、どこから始めればよいのか、それが可能かどうかさえわかりません。

例や助けが得られる場所へのリンクを含む回答をいただければ幸いです。

よろしく、

ナシル

4

2 に答える 2

2

既製のものを使いたい場合。JetBrains の Resharper には、プロジェクトのビルドの依存関係を表示するための非常に優れたツールがあります。これは、正しいビルド順序でビルド スクリプトを作成するのに役立ちます。

http://www.jetbrains.com/resharper/webhelp/Architecture__Project_Dependencies_Exploration.html

于 2014-08-29T15:17:10.790 に答える
1

F# で分析を自分で実装することは、それほど複雑ではありません。

たとえば、2 つのフェーズで実行できます
。 1. ソリューション フォルダー構造を調べて、(プロジェクト ファイル名 -> ファイルの完全パス) のマップを作成します。
2. 見つかったすべてのファイルに目を通し、各ファイルについて、他のソリューション プロジェクトへの参照をグラフ構造に追加します。

次に、(まだビルドされていない) 参照を持たないプロジェクトを徐々にビルドします。

プロジェクト ファイルは XML であるため、解析が容易です。ソリューション プロジェクトは、相対パス参照で認識できます。

<ProjectReference Include="..\MyProjFolder\MyProjFile.csproj">
<!--                      --^                              -->
于 2014-08-29T15:44:13.687 に答える