我想构建一个VS2008项目(ASP.NET Web应用程序),然后使用Microsoft.Build.Engine.发布
到目前为止,我已经成功地完成了这个项目。
但我无法将其发布到指定的目录。
我的构建方法是:
private void BuildProject()
{
Engine engine = new Engine();
FileLogger logger = new FileLogger();
logger.Parameters = @"logfile=C:tempbuild.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:tempbuild.log for details");
engine.UnloadAllProjects();
engine.UnregisterAllLoggers();
}
我的发布方法是:
private void PublishProject()
{
//no idea what goes here ... please help !!!
}
有什么想法吗???
private void PublishProject()
{
Engine engine = new Engine();
FileLogger logger = new FileLogger();
logger.Parameters = @"logfile=C:temppublish.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)MSDeployPackage.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:temppublish.log for details");
engine.UnloadAllProjects();
engine.UnregisterAllLoggers();
}
这些是我为发布我的项目而设置的属性。
DeployOnBuild=true;
DeployTarget=Package;
_PackageTempDir=$(PackagePath)