質問

私は、ソリューションファイルのパス(の.slnファイル)とビルドモード(デバッグ、リリース)を渡すことによって、ソリューションをコンパイルしたいと思います。 コンパイルエラーがあった場合、私はDEVENV.EXEかのMSBuild.exeのようなコマンドライン・プロセスを呼び出すにしたくない、代わりに私はAPIを使用して知っていると思います。

それは可能ですか? あなたはそれを行う方法を知っていると思う場合は、サンプルを提供してください。

役に立ちましたか?

解決

あなたは、あなたが同様にコンパイルをキックオフするプロセスを生成可能性がコンパイルを行うにはいくつかの点でプロセスを起動する必要があるとしています。 APIで苦労よりもはるかに簡単になるだろうされます。

編集アンドリューは、あなたがそれについて行くかもしれない方法についていくつかの良いアドバイスを与えますが、私はまだそれが間違いだと思います。

他のヒント

itowlsonが指摘したように、

あなたはまた、<のhref = "http://msdn.microsoft.com/en-us/library/microsoft.build.buildengine.engine.buildprojectfile.aspx" のrel = "nofollowをnoreferrerを使用することができます「>ビルド・エンジンのAPI の

... MSDNから...

// Build a project file
bool success = engine.BuildProjectFile(@"c:\temp\validate.proj");

あなたは、バッチ、スクリプトから MSBuildのに使用することができますファイル。そして、ちょうど0以外の何かのためにエラーレベルを確認...か、APIを使用して楽しみを持つことができます。

C:\ WINDOWS \ Microsoft.NET \ Frameworkの\ v2.0.50727の\からMSBuild.exe

..からMSBuild.exeから/? ...

  

のMicrosoft(R)エンジンのバージョンをビルドします   2.0.50727.4927 [Microsoft .NET Frameworkのバージョン2.0.50727.4927]   著作権(C)マイクロソフトコーポレーション   2005すべての著作権ます。

     

構文:からMSBuild.exe   [オプション]、[プロジェクトファイル]

     

...

     

例:

    MSBuild MyApp.sln /t:Rebuild /p:Configuration=Release
    MSBuild MyApp.csproj /t:Clean /p:Configuration=Debug

ここでは、プログラムC#コンパイラを使用して議論する 記事です。ここではSLNファイルを議論記事には、フォーマット。 SLNファイルはXMLファイルですので、それを読み、そのかなり簡単ます。

私はまた、MSBuildのAPIを使用してお勧めしたいです。かなりうまく動作するようです。しかし、それはかなり.NET4とVS2010のように変更しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top