7

ソリューションファイルパス(.slnファイル)とビルドモード(デバッグ、リリース)を渡してソリューションをコンパイルしたいと思います。

devenv.exeやmsbuild.exeのようなコマンドラインプロセスを呼び出したくありません。代わりに、APIを使用して、コンパイルエラーが発生したかどうかを確認したいと思います。

出来ますか?

その方法を知っていると思われる場合は、サンプルを提供してください。

4

4 に答える 4

3

コンパイルを実行するには、ある時点でプロセスを起動する必要があるため、コンパイルを開始するプロセスを生成することもできます。APIで苦労するよりもはるかに簡単になります。

アンドリューはあなたがそれについてどうやって行くかについていくつかの良いアドバイスをします、しかし私はそれでもそれは間違いだと思います。

于 2009-11-11T04:53:32.583 に答える
2

itowlsonが指摘したように、BuildEngineAPIを使用することもできます

...MSDNから..。

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

バッチファイルなどのスクリプトからMSBuildを使用できます。そして、ErrorLevelで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]
Copyright(C)Microsoft Corporation
2005.無断複写・転載を禁じます。

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

..。

例:

    MSBuild MyApp.sln /t:Rebuild /p:Configuration=Release
    MSBuild MyApp.csproj /t:Clean /p:Configuration=Debug
于 2009-11-11T04:49:18.410 に答える
1

これは、C#コンパイラをプログラムで使用する方法について説明している記事です。SLNファイル形式について説明している記事があります。SLNファイルはXMLファイルであるため、非常に読みやすくなっています。

于 2009-11-11T04:53:25.110 に答える
0

また、MSBuildAPIを使用することをお勧めします。それはかなりうまくいくようです。ただし、.NET4およびVisualStudio2010では大幅に変更されています。

于 2010-08-18T10:18:08.750 に答える