2010-12-19 3 views
2

私はMSbuildファイルパーサーを探しています。現在、私は完全ではない自分自身を書いた...しかし、私は確かにすでに存在する何かを構築する車輪を再発明しているように感じる。またmsbuildファイルパーサーはありますか?

+0

パーサーは、パーサーがどのような目標を達成したいかによって異なります。私は2つの異なるものを作成しました。一つはソリューション内のすべてのファイルのバックアップ用で、もう一つはwix-filesを作成するためのウィザーズになるものです。パーサで何をしたいですか? – k3b

+0

私のmsbuildファイルを分析し、自家製の "msbuild runner"アプリケーションでターゲットを視覚化したいと思います。 –

答えて

1

私がここに発見したいくつかの情報... http://social.msdn.microsoft.com/Forums/en/msbuild/thread/b3db4d7c-b7d1-4958-9145-bfd34cc75320

は、いくつかのハイレベルのサンプルと小さなプロジェクトがあります:microsoft.buildでhttp://code.msdn.microsoft.com/msbuildho

using Microsoft.Build.Construction; 
using Microsoft.Build.Evaluation; 
using System.Linq; 

class Program 
{ 
    static void Main(string[] args) 
    { 
     Project testProj = new Project(); 
     testProj.Xml.AddTarget("BuildProjects"); 
     foreach (ProjectTargetElement pti in testProj.Xml.Targets.Where(pti => pti.Name == "BuildProjects")) 
     { 
      pti.AddTask("MSBuild"); 
     } 
     testProj.Save(@"C:\testProj.proj"); 
    } 
} 
5

Microsoft.Build.Construction.XXX。 dll(バージョン4.0以降)は、MSBuildファイルの「生の」パーサーです。これは、強力かつ完全であり、XML DOMに類似しています。単一のファイルで動作し、評価を行わない。たとえば、プロジェクトツリー上でスクリプトを実行して、何らかの方法で編集したり、一般的なimport文を追加したりする場合に便利です。

Microsoft.Build.Evaluation.XXXは評価プロジェクト(評価されたすべてのプロパティ、取り込まれたファイルの読み込みなど)で動作します。これは開発環境で役に立ちます。プロジェクト内のファイルやプロパティを読み込んだり、新しいファイルを追加したりすることができます。 Visual Studioでは、この目的のために使用します。

4.0より前のバージョンでは、microsoft.build.engine.dllに完全に異なる、はるかに限定された、完全ではないオブジェクトモデルがありました。それでも4.0は出荷されていますが、4.0の構文を処理することはできません。これは推奨されていません。

私はこれらを設計して実装していますので、もしあればフィードバックに興味があります。

+0

これらの2つのURLが見つかりましたが、サンプルコードは含まれていないので、[1]はあなたが意味するものではないと思います。あなたは私にサンプルを教えてもらえますか?ありがとうございました! 1. [];公式MicrosoftダウンロードセンターからX.Download Log Parser 2.2; http://www.microsoft.com/en-us/download/details.aspx?id=24659; 2. []; X.Microsoft.Build.Construction名前空間();; https://msdn.microsoft.com/en-us/library/microsoft.build.construction(v=vs.121).aspx – AnneTheAgile