gpt4 book ai didi

iis - 让 TFS 2010 构建服务器发布到同一文件夹并覆盖

转载 作者:行者123 更新时间:2023-12-01 05:37:21 25 4
gpt4 key购买 nike

我一直在寻找年龄,我很生气,因为我想做的事情理论上是如此简单!

我有一个 Web 项目,当我告诉我的 TFS 对新构建进行排队时,我希望我已发布的文件(或未发布的文件 - 我不在乎)最终位于静态文件夹中,例如“C:\inetpub\myproj\网络文件”。

我已经查看了这篇文章 TFS 2010 Build Publish via file system这导致我这篇文章Team Build: Publish locally using MSDeploy但我只是不明白,它似乎没有工作。

我的构建定义已全部设置好,它构建成功,甚至会构建到我指定的文件夹中,但是一旦构建完成,它就会出现大量子文件夹 - 其中一个附加了版本号,这意味着 IIS 不会无需重新配置即可自动获取我的最新版本。 (我确实删除了版本绑定(bind),但它不会用最新版本覆盖最后一个版本)

我目前正在处理这些 MSBuild Arguments 以尝试使其正常工作:

/p:DeployOnBuild=true;
DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;
_PackageTempDir="\\HomeServer\inetpub\SiteTest";
AutoParameterizationWebConfigConnectionStrings=false

但是有几点:
  • 'SiteTest' 文件夹从未创建过,
  • 当它是我想发布的 HomeServer 的本地文件系统时,它是通过共享位置访问的。

  • 我只需要自动将我的 web 文件放入我可以为 IIS 预先确定的文件夹中,请帮助!

    最佳答案

    我通过自定义我们的构建过程模板来实现这一点。复制您的 DefaultTemplate.xaml(例如 DefaultTemplateV2.xaml)并打开它。

    如果您不熟悉在工作流 xaml 编辑器中工作,我发现首先折叠所有内容会有所帮助。

    打开后,单击根序列并单击参数。添加三个参数:

  • DeployBuild (Boolean) 默认为 False
  • FromPath(字符串)
  • 安装路径(字符串)

  • 然后,在您的工作流程中打开这些部分:
  • 在代理上运行
  • 尝试编译、测试和...
  • 在尝试下打开序列

  • 在 Get Impacted Tests 之后的序列底部,.. 打开您的工具箱并拖入“If”工作流程项。将条件设置为 DeployBuild。

    在 If 的 Then 部分中拖动 CopyDirectory 工作流程项。将目标设置为 InstallPath,将源设置为
    String.Format("{0}\{1}", BinariesDirectory, FromPath).

    保存并 checkin 。您需要打开以前的构建并记下要部署的构建子文件夹。它会像 _PublishedWebsites\mywebsite\

    编辑您的构建定义(您可能必须先关闭并重新打开 VS)并转到 Process 选项卡。将构建过程模板更改为您的新版本。

    将 FromPath 设置为您刚刚记下的路径。将 InstallPath 设置为目标文件夹的 UNC 路径(您需要确保运行构建的任何服务帐户都可以访问该路径)并将 DeployBuild 设置为 True。

    保存、排队构建并测试您的部署。

    您还可以在工作流 XAML 中,转到参数并使用每个新参数编辑元数据参数。您可以设置可以查看它们的位置。因此,例如,您可以将 FromPath 和 InstallPath 设置为仅在编辑定义时查看,而在对构建进行排队时查看 DeployBuild。这样你就可以在排队时打开或关闭它。

    祝你好运。

    关于iis - 让 TFS 2010 构建服务器发布到同一文件夹并覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892099/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com