【问题标题】:TFS 2015 - Visual Studio Build step - control folder name of publish locationTFS 2015 - Visual Studio 构建步骤 - 控制发布位置的文件夹名称
【发布时间】:2017-10-10 14:19:46
【问题描述】:

我正在尝试使用 web.config 转换在本地 Team Foundation Server 2015 上设置构建。根据我选择的构建配置,转换工作正常。我有 3 个构建配置:Debug、Release 和我创建的一个,称为“Staging”。我正在尝试通过在队列时间设置 $(BuildConfiguration) 变量来为不同的环境重新使用相同的构建。在我的 TFS 构建的“Visual Studio 构建”步骤中,当我将 $(BuildConfiguration) 设置为“调试”时,构建将输出到代理文件夹,如下所示: $(Build.SourcesDirectory)\projectFolder\obj\Debug\Package\PackageTmp .如果我将它设置为“发布”,那么它将转到 $(Build.SourcesDirectory)\projectFolder\obj\Release\Package\PackageTmp。在这两种情况下,Web.config 文件都会正确转换。

但是,如果我将构建配置设置为“Staging”,则文件仍放置在“debug”文件夹 $(Build.SourcesDirectory)\projectFolder\obj\Debug\Package\PackageTmp 而不是“Staging”文件夹中. (在这种情况下,转换也可以正常工作,并使用暂存值)

这会在我的“复制文件”步骤中产生问题。我在该步骤中将“源文件夹”值设置为 $(Build.SourcesDirectory)\projectFolder\obj\ $(BuildConfiguration) \Package\PackageTmp,但是在使用“Staging”时,它找不到源文件夹,因为 TFS 将构建文件放在“调试”文件夹中。

有没有办法强制 TFS 将构建的项目(基本上是我的 Web 应用程序文件)放置在与构建配置参数匹配的文件夹中,在本例中为“Staging”?

【问题讨论】:

    标签: tfs-2015 build-definition


    【解决方案1】:

    注意:最好不要使用 web.config 转换,而是构建一次并允许您的 web.config 在部署时进行转换(通过注入适当的值或使用 MSDeploy 参数)。

    也就是说,您可以使用/p:OutDir= MSBuild 参数控制输出文件夹。

    不过,我怀疑您只需要在 Visual Studio 中打开项目设置,转到 Build 选项卡,然后在那里设置一个适当命名的输出文件夹。

    【讨论】:

    • 为什么最好不要使用转换?它们似乎工作正常,并且很容易实现我的目的。尝试了 OutDir 或 OutputPath 参数,但它们对我不起作用。这是在 TFS 服务器上构建的,我希望根据构建配置设置输出位置,所以我不知道 VS 中的“构建”选项卡有什么帮助?
    猜你喜欢
    • 2016-11-27
    • 1970-01-01
    • 2018-05-12
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 2018-07-04
    相关资源
    最近更新 更多