将MSBuild参数传递给Cake Build Script以生成_PublishedWebsites

时间:2016-04-20 13:48:20

标签: c# asp.net asp.net-mvc msbuild cakebuild

我目前正在编写Cake构建脚本以构建许多ASP.NET MVC站点。

目前我无法看到将参数传递给MSBuild以生成_PublishedWebsites文件夹以进行部署的选项。

我相信我需要传递的论据是:

/p:OutDir=$(build.stagingDirectory)
/p:DeployOnBuild=true
/p:WebPublishMethod=Package
/p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true 

如果有另一种方法可以产生相同的输出内容,而不是在同一文件夹目录中就可以了。

2 个答案:

答案 0 :(得分:20)

以下示例应在从Cake构建网站解决方案时设置正确的MSBuild属性。

MSBuild("./src/Website.sln", new MSBuildSettings()
  .WithProperty("OutDir", "$(build.stagingDirectory)")
  .WithProperty("DeployOnBuild", "true")
  .WithProperty("WebPublishMethod", "Package")
  .WithProperty("PackageAsSingleFile", "true")
  .WithProperty("SkipInvalidConfigurations", "true"));

要设置网站的输出目录,只需将"$(build.stagingDirectory)"部分替换为您希望输出显示的目录的路径。

您可以在此处详细了解Cake中的MSBuild别名:http://cakebuild.net/api/cake.common.tools.msbuild/

答案 1 :(得分:1)

对于FileSystem发布,可以通过以下方式完成:

MSBuild(/**project path**/, settings =>
    settings.SetConfiguration(/**configuration**/)
    .WithProperty("DeployTarget", "WebPublish")
    .WithProperty("DeployOnBuild", /**boolean**/)
    .WithProperty("PackageAsSingleFile", /**boolean**/)
    .WithProperty("WebPublishMethod", "FileSystem")
    .WithProperty("PublishUrl", /**url**/)
);
相关问题