2

ビルドの出力ファイルをアップロードする MSBuild 用のカスタム ITask を作成しています。Web 展開プロジェクトを使用してアプリを公開し、AfterBuild ターゲットにフックしてカスタム作業を行っています。

Web アプリケーションにファイルを追加すると、初めてビルドを実行したときに、カスタム タスクが最近追加されたファイルを認識しません。そのファイルを ITaskItems の配列に表示するには、最初に「AfterBuild」ターゲットを削除してビルドを実行し、次に「AfterBuild」ターゲットを配置してビルドを再開する必要があります。

私のビルドファイルは次のようになります。

<ItemGroup>
    <PublishContent Include="$(OutputPath)\**" />
</ItemGroup>

<Target Name="AfterBuild">
    <UploadTask FilesToPublish="@(PublishContent)" />
</Target>

@(PublishContent) のリストは、ビルド プロセス自体によって行われた可能性のある変更を反映するのではなく、ビルドの開始時に初期化されるようです。

何か案は?

ありがとう

4

1 に答える 1

1

ItemGroup は、プロジェクト ファイルが最初に読み込まれたとき (Visual Studio を最初に開いたとき、またはソリューション エクスプローラーでプロジェクトを「アンロード」して「再読み込み」したとき) に評価されます。

おそらく必要なのは、「AfterBuild」ターゲットでタスクとして ItemGroup を作成することです。例:

<CreateItem Include="$(OutputPath)\**">
      <Output TaskParameter="Include" ItemName="OutputFiles"/>
</CreateItem>

に続く:

<Target Name="AfterBuild">
    <UploadTask FilesToPublish="@(OutputFiles)" />
</Target>
于 2008-11-23T21:40:07.200 に答える