Сборка и публикация (веб-приложение ASP.NET) с использованием Microsoft.Build.Engine с использованием C#
Я хочу создать проект VS2008 (веб-приложение ASP.NET), а затем опубликовать с помощью Microsoft.Build.Engine.
Мне до сих пор успешно удалось построить проект.
Но я не могу опубликовать его в указанном каталоге.
Мой метод сборки:
private void BuildProject()
{
Engine engine = new Engine();
FileLogger logger = new FileLogger();
logger.Parameters = @"logfile=C:\temp\build.log";
engine.RegisterLogger(logger);
BuildPropertyGroup bpg = new BuildPropertyGroup();
bpg.SetProperty("Configuration", "Debug");
bpg.SetProperty("Platform", "AnyCPU");
bool success = engine.BuildProjectFile(GetProjectFileName(), null, bpg);
if (success)
Console.WriteLine("Success!");
else
Console.WriteLine("Build failed - look at c:\temp\build.log for details");
engine.UnloadAllProjects();
engine.UnregisterAllLoggers();
}
И мой метод публикации:
private void PublishProject()
{
//no idea what goes here ... please help !!!
}
Есть идеи???
2 ответа
Решение
private void PublishProject()
{
Engine engine = new Engine();
FileLogger logger = new FileLogger();
logger.Parameters = @"logfile=C:\temp\publish.log";
engine.RegisterLogger(logger);
BuildPropertyGroup bpg = new BuildPropertyGroup();
bpg.SetProperty("OutDir", @"C:\outdir\");
bpg.SetProperty("Configuration", "Debug");
bpg.SetProperty("Platform", "AnyCPU");
bpg.SetProperty("DeployOnBuild", "true");
bpg.SetProperty("DeployTarget", "Package");
bpg.SetProperty("PackageLocation", @"$(OutDir)\MSDeploy\Package.zip");
bpg.SetProperty("_PackageTempDir", @"C:\temp\");
bool success = engine.BuildProjectFile(GetProjectFileName(), null, bpg);
if (success)
Console.WriteLine("Success!");
else
Console.WriteLine(@"Build failed - look at c:\temp\publish.log for details");
engine.UnloadAllProjects();
engine.UnregisterAllLoggers();
}
Это свойства, которые я установил для публикации моего проекта.
DeployOnBuild=true;
DeployTarget=Package;
_PackageTempDir=$(PackagePath)