【问题标题】:How do I get the the expected output from a TFS 2015 build (to match my XAML build)?如何从 TFS 2015 构建中获得预期的输出(以匹配我的 XAML 构建)?
【发布时间】:2016-12-23 02:15:38
【问题描述】:

我们刚刚升级到 TFS2015(现场),我正在尝试建立一个与我的 xaml 构建执行相同操作的构建,但我似乎无法构建相同的文件。这是我用来发布站点的 xaml 输出目录的图片。为此,我导航到构建文件夹,然后深入到 _PublishedWebsites\BOTWSitecoreWeb 文件夹:

这是解决方案资源管理器的图片:

如您所见,BOTWSitecoreWeb 是我的启动项目,它构成了网站的基础。因此,要发布此网站,我只需将文件夹:_PublishedWebsites\BOTWSitecoreWeb 复制到我的 IIS 目录。下面是使用 xaml 构建的样子:

如果我深入到 Drops/Source/sc/Website 文件夹中的 TFS2015 构建输出文件夹,我会得到这个,它的文件和文件夹比我预期的要多:

所以我的问题是,我如何才能获得与当前从 TFS2015 构建的 xaml 构建获得的相同输出?

bin 文件夹具有相同数量的文件,所以这是一个好的开始。这是来自 xaml 构建的 bin 文件夹:

这是 TFS 2015 版本中的 bin 文件夹。请注意,它们都有 57 个文件,我认为这是一件好事!

提前感谢您提供的任何见解!

【问题讨论】:

    标签: msbuild tfsbuild tfs-2015


    【解决方案1】:

    vNext 构建和 XAML 构建,它是完全不同的技术。不会有任何自动化的转换方式。

    新版本基于不同的架构并在 完全不同的系统。

    所以您的情况是可以预测的,很难实现 100% 的转化。复制vNext中的文件夹默认会复制文件夹下的所有内容。似乎在复制期间或在您的 XAML 构建中发布了一些自定义,这将返回如上图所示的结果。

    如果您有大量自定义的 XAML 构建和自定义活动,您 可以继续使用这些构建,直到您准备好移植您的 业务逻辑到可以在新版本中运行的脚本中。

    你也可以看看这些系列文章how to upgrade from XAML to Build 2015 with minimal changes

    【讨论】:

    • 嗨帕特里克。感谢您的回复。所以没有办法从新的团队构建中获得一个简单的输出目录,其中包含我部署所需的一切? (即 /bin 文件夹和所有其他包含 aspx 文件、配置文件等的子文件夹?)这似乎是错误的!如果构建的输出还没有准备好部署,那么构建的意义何在!?
    • 嗯,在 vNext 构建中使用的典型方法是使用复制文件和发布构建工件步骤发布您的构建工件。尝试使用代理上的本地路径,任何工件在被推送到目的地之前都会复制到该路径。例如:c:\agent\_work\1\a。您可以按照 Eddie 的建议使用变量 Build.ArtifactStagingDirectory。更多变量请参考Use build variables
    • 谢谢帕特里克。我认为问题在于 c:\agent_work\1\a (这是 $(Build.ArtifactStagingDirectory) 在构建后指向的位置为空。为什么会这样?
    • 请同时回答下面的帖子问题stackoverflow.com/q/63059180/10846390
    【解决方案2】:

    将您的构建定义更新为以下内容:

    1. 在 Visual Studio 构建步骤中添加 /p:DeployOnBuild=true /p:OutDir="$(build.artifactstagingdirectory)\\" 参数:
    2. 将“发布构建工件”任务的“发布路径”更改为“$(build.artifactstagingdirectory)_PublishedWebsites\ProjectName”:

    保存构建定义并将构建排队,现在您应该会在放置文件夹中发布相同的文件,例如 XAML 构建。

    【讨论】:

    • 感谢 Eddie - 成功了!
    • 我有一个 .sln 项目,在它下面有 2 个项目,如 web 和 api,我的问题是我应该将这两个项目 bin 添加到源代码管理中,如果是的话,如果我做了一些改变在 dll 中,那个 TFS 构建工件没有生成最新的 web dll?
    • 在 $(build.artifactstagingdirectory)_PublishedWebsites\ProjectName\bin 下,没有生成构建自己的二进制文件?它是受源代码控制的旧版本
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 2019-05-06
    相关资源
    最近更新 更多