3

对于持续部署,我似乎无法弄清楚如何让 Team Foundation Server 中的构建脚本(Build/Advanced/MSBuild Arguments)工作。

是的,我使用了 Azure API 应用程序(预览版)配置文件选项并登录到 azure 帐户 - 我可以从那里发布 OK。它似乎还使用了一个我不确定来自哪里的密码,因为在查看“连接”信息时,它是隐藏的,并且pubxml在您在解决方案中查看它时不可用。

我曾经为 Web 应用程序使用以下 MSBuild 参数,但现在如果我引用新的 Azure 发布文件,它就不起作用了。

我曾经使用过这样的东西:

/flp:verbosity="diagnostic" /p:DeployOnBuild=true /p:PublishProfile=xxx /p:AllowUntrustedCertificate=true /p:UserName="xxxx" /p:Password="xxxx" 

总体而言,API 应用程序没有可用的密码,因此在测试参数时我删除了/p信息。我还确保在 Team Foundation Server 构建机器上安装了适用于 VS 2013 的 Azure SDK,但这并没有解决任何问题。请注意,当此解决方案是 Web 应用程序时,CI 和 CD 工作正常。现在,如果我排除 CD,CI 对 API 应用程序运行良好。

详细日志给了我以下错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets (4350):PublishProfile 的值设置为 'xxx',预计会在 ' C:\Builds\4\Outcomes\yyy\src\zzz\zzz\Properties\PublishProfiles\xxx' 但找不到。

现在文件确实匹配并且文件位于那里 - 我检查了构建机器的构建文件夹。消息中的引用不引用文件扩展名,但它一定不需要该部分。

无论如何,我之前在 Web 应用程序部署中经历过这一切,而我最需要做的就是删除 Team Foundation Server 服务用户工作区。我还删除了构建机器上的所有构建文件夹,以确保它重新开始。虽然在这个问题上没有进展。

4

1 回答 1

0

我正在使用 VSO BuildVNext + MSBuild 来部署 API 应用程序,以下是 MSBuild 的参数:

msbuild.exe "[Solution_Name]" /p:DeployOnBuild=true /p:PublishProfile="[Publish_Profile_Name]" /p:UserName="[UserName]" /p:Password="[Password]" /p:platform="any cpu" /p:configuration="debug" /p:VisualStudioVersion="12.0"

我在 Azure 门户上发布期间收到的用户名和密码(您需要导航到 Api App Host 并下载发布设置)。

请注意,将密码存储在构建服务器上并不安全,因此,在发布用于 Api App 部署的 Azure Powershell 命令(可与订阅 ID 和证书一起使用)之前,应将其用作临时解决方案。

于 2015-07-16T14:47:41.013 回答