2012-03-08 2 views
0

私はPSakeを通してすべてのビルドを自動化しており、TeamCityビルドをより強力にするためには本当に便利です。プロジェクトにエラーとしての警告があることを確認してください

私が紹介したいことの一つは、ソリューション内のすべてのプロジェクトにエラーがtrueに設定されているという警告があることを確認するステップです。私はこれを持っていないプロジェクトを見つけることはしばしばではありませんが、それほど普及していないレガシーコードベースにも取り組んでいます。

設定が有効であることをすばやく確認できるようにしたいと考えていました。 私は。* projのファイルに正しいテキスト(

<TreatWarningsAsErrors>true</TreatWarningsAsErrors> 

)をチェックすることによって道があるだろう推測していますが、私はきれいか、より効果的な方法があるかもしれない期待しました。

アイデア?

答えて

1

。* projファイルの調査で何が問題なのか分かりませんので、文字列リテラル全体を検索したくないと思います。

プロジェクトファイルはXMLベースなので、ここであなたが探しているものを見つけるようになるXMLコードスニペットにLINQのです:あなたの問題領域にビットをオフだ

void VerifyTreatWarningsAsErrorsIsOn(string projFilename) 
{ 
    XNamespace xmlns = "http://schemas.microsoft.com/developer/msbuild/2003"; 
    var twaeList = XDocument.Load(projFilename).Descendants(xmlns + "TreatWarningsAsErrors").ToList(); 

    if (twaeList.Count() > 0) 
    { 
     var falseValues = twaeList.Where(x => x.Value == "true"); 
     if (falseValues.Count() > 0) 
     { 
       // Not good.. 
     } 
    } 
    else 
    { 
     // None exist.. not good either.. 
    } 
} 

ことの一つは、あなたということです1つの設定(例えばデバッグ)のためにフラグがオンになっているプロジェクトファイルがあるかもしれませんが、それが他の設定に存在するかどうかは分かりません。

実際には、上記のコードを拡張してすべての設定をトラバースし、設定ごとにフラグを探すことができます。さらに、設定が存在しない場合、または「false」に設定されている場合は、XMLドキュメントを操作して、これらの問題をすべて挿入して修正することができます。

HTH。

+0

コードのおかげで、それは良いアプローチかもしれないようです。私はツールや何かを介して既知のテクニックがあることを望んでいたと思います。おそらくここであなたのコードを使用して自分自身を作成すると思います。あなたのさまざまな設定ポイントに応じて、私はすべての設定セクションで設定をチェックし、それがどこにもないことを確認できると推測していました。 – ArtificialGold

関連する問題