0

さまざまな Visual Studio ソリューション ファイルのコンパイルを指定する nant ビルド スクリプトがあります。

<target name="compile.solution1" description="Compiles solution 1">
    <msbuild project="${src.dir}\Solution1.sln" verbosity="${build.verbosity}">
        <property name="Configuration" value="${build.config}" /> 
        <property name="OutputPath" value="${build.fullpath}/${prefix.sol1}" />
        <property name="ReferencePath" value="${assembly.dir}" />
    </msbuild>
</target>   

ターゲット compile.solution1、compile.solution2、compile.solution3...compile.solution7 で指定された複数のソリューションがあります。

一連のソリューション全体をコンパイルすることを指定する別のターゲットがあります。

<target name="compile" depends="compile.solution1, compile.solution2,
 compile.solution3, compile.solution4, compile.solution5, compile.solution6,
 compile.solution7" description="Compiles all targets" />

ターゲット「コンパイル」の実行にかかる時間を計り、それを個々の compile.solutionX ターゲットのそれぞれを実行するタスクの時間の合計と比較すると、「コンパイル」ターゲットは 30 秒長くかかることがわかります。

なぜそうなのか理解できませんか?私の考えでは、「コンパイル」ターゲットはforループとして機能する必要があり、それとそれぞれを個別に実行することの違いは最小限に抑える必要があります。

単一のターゲットで定義された複数のソリューションを処理するときに、Nant のバックグラウンドでさらに多くの処理が行われるかどうかを知っている人はいますか?

質問のひどいタイトルで申し訳ありません....私はそれをどのように表現するかを知りませんでした.

4

1 に答える 1

2

属性に複数のターゲットがリストされている場合、依存関係の評価に時間がかかりdepends、リストに追加された重要なターゲットごとにさらに時間がかかると思います。

于 2009-07-20T16:40:53.547 に答える