3

Visual Studio 2003 で生成された Setup .vdproj ファイル内のさまざまな設定を更新できる NAnt 拡張タスクを作成しようとしています。

具体的には、RegEx 式を使用して検索し、見つかった場合は、ProductName 値に割り当てられた値文字列値を新しい文字列値に完全に置き換えたいと考えています。

探している文字列が "ProductName" = "8" で始まり、1 つ以上の文字があり、 "マーク。次のことを試してみましたが、役に立ちませんでした:

次のコード フラグメントを実行する前に、.vdproj ファイルの ProductName は次のようになります。

"ProductName" = "8:My Simple .NET Application"

... および C# のコード フラグメント:

string _theProductName = "My Other Native Application";

Regex productNameExpression = new Regex( @"(?:\""ProductName\"" = \""8:*)" );

_theProjectFileContents = 
productNameExpression.Replace(_theProjectFileContents, 
                              "\"ProductName\" = \"8:" + _theProductName + "\"" );

bool updatedProductName = 
(_theProjectFileContents.IndexOf(_theProductName) >= 0);

上記のコード フラグメントを実行すると、.vdproj ファイルの ProductName は次のようになります。

"ProductName" = "8:My Simple .NET Application"My Other Native Application"

閉じますが、「My Other Native Application」が「My Simple .NET Application」に置き換わり、追加されないことを期待していました。

洞察と助けをいただければ幸いです。

4

1 に答える 1

2

あなたはもうすぐそこにいます-1つだけ欠けています。
このように正規表現を変更すると、幸福が続くはずです...

Regex productNameExpression = new Regex(@"(?:\""ProductName\"" = \""8:.*)"); 

に注意してください。8時以降:

于 2009-11-29T23:33:04.710 に答える