使用发布配置文件将Visual Studio Online实现对Azure网站的持续部署

5

我正在使用Visual Studio Online来在CI构建通过后持续部署我的项目。然而,我必须使用发布配置文件来构建生产环境的web.config转换,以便部署的网站将使用生产数据库而不是开发数据库。我已经遵循Scott Hanselman的博客文章中的步骤,在CI构建定义中添加了MSBuild参数。我的参数如下:

/p:DeployOnBuild=true /p:PublishProfile=[publish profile name] /p:AllowUntrustedCertificate=true /p:UserName=[credentials obtained from Azure Website portal] /p:Password=[from the portal as well]

看起来已经工作了,部署的网站现在正在使用生产数据库。
然后我注意到,在CI构建定义中的“部署”部分下,有一个参数称为:“路径到部署设置”。从这篇文章中可以看到:
“网站的.pubxml文件的路径,相对于存储库的根文件夹。云服务不支持。”
这正是我想要的。所以我删除了MSBuild参数,通过选择弹出窗口中的pubxml文件来设置部署设置的路径,并再次尝试。
然而,这种好又简单的方法根本不起作用。即使它指向同一个pubxml文件,并且两种方式都有绿色的CI构建,后一种方式似乎仍然使用默认的web.config而不是部署后转换的web.config。
所以我很好奇,是否有人知道MSBuild参数中的PublishProfile和“路径到部署设置”之间的区别?我是否正在正确地执行此操作?

我所知道的是,它在这里被描述为:“网站的.pubxml文件相对于存储库根文件夹的路径。云服务不适用。”(链接:http://azure.microsoft.com/en-us/documentation/articles/cloud-services-continuous-delivery-use-vso/) - Dave New
@davenewza 是的,那篇文章正是我问题中提到的那一篇。 :) 这也导致了我的困惑并引发了这个问题。 - bigbearzhu
1个回答

4

我曾遇到同样的问题。我发现“部署设置路径”会设置MSBuild参数“/p:PublishProfilePath”。你可以在构建的诊断日志中看到这一点。不过我不确定PublishProfilePath参数是用来干什么的。

但我通过另一种方式让转换起作用。在“构建”部分,我将“配置”设置为使用发布配置。通过VSO构建发布似乎会应用该配置文件的转换。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接