我目前正在编写Cake构建脚本以构建许多ASP.NET MVC站点。
目前我无法看到将参数传递给MSBuild以生成_PublishedWebsites文件夹以进行部署的选项。
我相信我需要传递的论据是:
/p:OutDir=$(build.stagingDirectory)
/p:DeployOnBuild=true
/p:WebPublishMethod=Package
/p:PackageAsSingleFile=true
/p:SkipInvalidConfigurations=true
如果有另一种方法可以产生相同的输出内容,而不是在同一文件夹目录中就可以了。
答案 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**/)
);