CI构建通过后,我正在使用Visual Studio Online连续部署我的项目。但是,我必须使用发布配置文件来构建生产web.config转换,以便已部署的网站将使用生产数据库而不是开发数据库。我遵循Scott Hanselman's blog post在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构建定义中,有一个参数称为:“部署设置的路径”。从this article,它说:

“网站的.pubxml文件的路径,相对于仓库的根文件夹。对于云服务,将被忽略。”

这正是我想要的。因此,我删除了MSBuild参数,通过在弹出窗口中选择pubxml文件来将路径设置为“部署设置”,然后再尝试一次。

但是,这种简单的好方法根本不起作用。即使它指向同一个pubxml文件,并且两种方式都构建了绿色CI,后一种似乎仍使用默认的web.config而不是部署后的转换后的方法。

因此,我很好奇是否有人知道MSBuild参数中的PublishProfile和“部署设置路径”之间的区别是什么?我是否使用正确的方法来执行此操作?

最佳答案

我有同样的问题。我发现“部署设置路径”设置了MSBuild参数“/p:PublishProfilePath”。您可以在内部版本的诊断日志中看到这一点。我不确定PublishProfilePath参数的作用。

但是我让变换以不同的方式工作。在“构建”部分,我将“配置”设置为使用发布配置。通过VSO构建发布似乎将转换应用于配置。

关于msbuild - 使用发布配置文件将Visual Studio Online连续部署到Azure网站,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26548222/

10-17 01:03