使用Microsoft.Build.Engine使用c#生成和发布(ASP.NET Web应用程序)



我想构建一个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)

最新更新