0

私が試してみました

public sealed class WriteMessage : CodeActivity
{
    protected override void Execute(CodeActivityContext context)
    {
        context.Track(new BuildInformationRecord<Foo>()
        {
            Value = FooInstance,
        });
    }
} 

次にcontext.Track、受け入れるオーバーロードが見つかりました<T>

context.Track(FooInstance);

Visual Studio のビルド ビューアーにはどちらも表示されません。

context.TrackBuildMessage(string data)確かにそうです。

例外は発生しません.tfsデータストアまたはファイルに保存されていますか? それとも黙って完全に失敗していますか?

これがどのように機能するか、またはコード側から機能する必要があるかを示すリソースの 1つへの参照

4

1 に答える 1

1

実際にデータストアに到達します。インスタンスは、そのプロパティのリフレクションによって Dictionnary<String,String> に変換され (必要に応じて Dictionnary<String,String> への型コンバーターを提供できます)、ビルド レコードとしてデータベースに格納されます。レコードはツリーとして論理的に構造化されています。この情報は、TFS API を介して取得できます。

「Foo」であるTFSの新しいタイプを使用しています。したがって、VS は情報を表現する方法を認識していないため、情報を Visual Studio のビルド レポートに表示することはまだできません。実際には、これをレンダリング用の WPF コントロールに変換できるカスタム アドインを使用して VS ビルド レポートを拡張する必要があります。

「BuildMessage」を追跡すると、これは VS でよく知られているタイプであり、ビルド ログに表示されます。

このデータを格納されたビルド レポートから TFS ウェアハウス ストア (および TFS キューブ) に移動するために、ウェアハウス アダプターを開発することもできます。

ビルドへのカスタム情報の追加について:

フランス語での私のブログの私の記事 (あなたの質問に正確に答えます、すみません、ええ... フランス語):

お役に立てれば。(私は新しいユーザーなので、現時点ではこれ以上のリンクを投稿することはできません。直接連絡してください。素敵な URL をお送りします。または、「ビルド情報の表示方法の変更」をググってください)

于 2011-10-02T18:50:17.437 に答える