私はいくつかのバッチコードを持っています:
Path=C:\Windows\Microsoft.NET\Framework64\v4.0.30319
ECHO Trying TFS build...
msbuild D:\WORK\project\project.sln /p:Config="Debug" /p:Platform="Any CPU" /flp1:logfile=BuildLogProject.txt
それは正しく機能しています。そして、C# アプリケーションで MSBuild を使用したいと考えています。
Microsoft.Build.Engine 参照を追加し、Engine クラスを使用しています。私はいくつかのコードを書きました。しかし、それは機能していません。
Visual Studio またはバッチ プログラムでプロジェクトをビルドすると、「ビルドが成功しました」。自分のプログラムでプロジェクトをビルドすると、プロジェクトにないエラーと警告が見つかります。
Engine engine = new Engine();
engine.BinPath = @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319";
FileLogger logger = new FileLogger();
logger.Parameters = @"logfile=D:\WORK\project\BuildLogProject.txt";
engine.RegisterLogger(logger);
string projectPath = @"D:\WORK\project\project.sln";
try
{
bool success = engine.BuildProjectFile(projectPath);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
finally
{
engine.UnregisterAllLoggers();
engine.UnloadAllProjects();
}