在 CI 构建通过后,我正在使用 Visual Studio Online 连续部署我的项目。但是,我必须使用发布配置文件来构建生产 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,而不是部署后转换的方式。
所以我很好奇是否有人知道 MSBuild 参数中的 PublishProfile 和部署设置路径之间的区别?我是否使用正确的方法来做到这一点?