5

在 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 和部署设置路径之间的区别?我是否使用正确的方法来做到这一点?

4

1 回答 1

4

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

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

于 2014-10-29T02:47:01.980 回答