【问题标题】:Is it possible to include the site name as query parameter to MSDeploy within MSBuild是否可以将站点名称作为查询参数包含在 MSBuild 中的 MSDeploy 中
【发布时间】:2013-06-15 02:11:47
【问题描述】:

我正在尝试使用 Team Build 和 VS2012 设置 CI 流程。我已设置 Web 服务器以接受 Web 部署。我已经安装了 Web Deploy 3.0、IIS 管理服务并配置了网站目录的权限。

我有一个 msbuild 项目,它使用 MSDeploy 编译、打包然后部署站点,但我遇到了一个似乎发生在许多人身上的问题,但我无法找到明确的答案。

问题源于需要将站点名称传递给 MSDeploy,以便运行构建服务器的用户可以发布。像这样:

https://computername:8172/msdeploy.axd?site={websitenameonly}

我尝试了各种方法将其包含在 MSBuild 文件中,但都以失败告终。 '=' 似乎破坏了字符串并导致 {websitenameonly} 被视为另一个参数。

有没有人能够通过 MSBuild 成功传递站点名称?

【问题讨论】:

    标签: msbuild msdeploy


    【解决方案1】:

    MSBuild 脚本会为您附加?site,因此您无需自己动手。

    确保您在pubxml 中设置了以下内容:

    • MSDeployPublishMethodWMSVC
    • MsDeployServiceUrl 的格式为 https://computername:8172/msdeploy.axd
    • DeployIisAppPath 设置为您的 IIS 站点名称
    • 没有NormalizePublishSettings 设置为false(我怀疑你有,但值得检查)

    【讨论】:

    • 我创建了一个 publish.proj 文件,如asp.net/web-forms/tutorials/deployment/… 中所述,通过使用 msbuild 运行此 proj 文件,它不会自动附加 ?site 参数。显然,这仅在您使用 VS 而不是通过自定义构建脚本进行网络部署时才有效
    • 文章中描述的方式msbuild会输出webpackage。然后发布脚本的一部分是在通过包生成的 cmd 文件上调用 msdeploy.exe。这就是我认为问题所在。想法?
    猜你喜欢
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2020-01-27
    • 1970-01-01
    相关资源
    最近更新 更多