.*proj ファイルを調査することの何が問題なのかわかりません。そのため、文字列リテラル全体を検索したくないだけだと思います。
プロジェクト ファイルは XML ベースなので、探しているものを見つけるための Linq to XML コード スニペットを次に示します。
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 つは、1 つの構成 (デバッグなど) でフラグがオンになっているプロジェクト ファイルがあるかもしれないが、それが他の構成に存在するかどうかさえわからないことです。
したがって、実際には、上記のコードを拡張してすべての構成を走査し、構成ごとにフラグを探すことができます。さらに、構成が存在しない場合、または「false」に設定されている場合は、XML ドキュメントを操作して、これらすべての問題をその場で挿入/修正できます。
HTH。