.vdproj ファイル (Visual 2010 Studio セットアップおよび展開プロジェクト) を解析できる c# サンプル コードまたはツールを探しています。
5 に答える
VDPROJ ファイルを XML 構造に変換する単純なコンソール アプリケーションを作成しました。これにより、ビルド プロセスでプログラムの追加/削除アイコンを設定するなどの作業がはるかに簡単になりました。
このファイルを解析するには、C# と LINQ を使用することをお勧めします。この vdproj sampleで行きましょう。残念ながら、これは XML ベースではなく、むしろJSONに似ていますが、正確ではありません。
行を反復することを提案します。表示されたタブの数と、解析したいセクション見出しの行番号に基づいて、現在の場所を判断します。
string[] allLines = System.IO.File.ReadAllLines(@"C:\foo.vdproj");
// iterate, and determine where the Configuration heading is....
if (line == "\t\"Configurations\"")
私のサンプル コードは大きすぎてここに貼り付けられません。http://pastebin.com/DAiTCUtDでコードを参照してください。
複雑さは、ファイルから抽出する必要があるデータの量にまで及びます。
お役に立てれば。ビルド済みのツールを探していたように聞こえますが、おそらく、このコードを使用して .vdproj ファイルの解析を開始できます。
$_ = join('', <>);
s/[=](.+)/:$1,/g;
s/[{]/: {/sg;
s/}/},/g;
s/[,](?:\s+)?[}]/}/sg;
s/[,](?:\s+)?$//s;
print "{$_}";
^-- この perl スニペットは、[my] vdproj を json に変換します。
InstallShield は VDPROJ を ISM に変換できます。これにより、MSI データベースが作成され、WiX に照会したり、Darked したりすることができます。
ここで何かを手に入れました。これであることを願っています
更新:D'oh!VCProjectBindingParser.cs や VBProjectBindingParser.cs などのツールが多数あり、.vdproj には何もありません。わかりません。おそらく、独自のパーサーを作成する必要があります。
ああ (大きくため息をついて) 時間を節約したかっただけです。