【问题标题】:How to create a build definition for ASP.NET 5 projects in TFS 2013 build server?如何在 TFS 2013 构建服务器中为 ASP.NET 5 项目创建构建定义?
【发布时间】:2015-10-14 14:32:25
【问题描述】:

我们知道您需要使用dnu 来构建ASP.NET 5 项目,但是TFS 2013 不知道如何使用dnu

是否存在允许TFS 2013 构建ASP.NET 5projects 的流程?

我们可以例如替换默认命令并在构建定义中提供我们自己的命令吗?如果是怎么办?

【问题讨论】:

    标签: asp.net-core-mvc build-definition dnu


    【解决方案1】:

    Sul,克服缺少的 Microsoft.DNX.Props 未找到问题: 您基本上需要在 tfs 服务器上安装 Visual Studio Community 版本。请参阅此链接:

    https://github.com/aspnet/dnx/issues/2373

    之后,您可以使用预构建脚本解决问题以使用 DNU。

    【讨论】:

      【解决方案2】:

      您可以在一个 PowerShell 脚本中包含 dnu 命令,然后在构建定义的预构建脚本中添加 PowerShell 脚本。

      所以,你需要
      1)。创建一个 PowerShell 脚本文件以包含到期命令,例如名为 PreBuild.ps1。 PowerShell 文件类似于以下内容(只是给您一个简单的示例,您需要根据您的场景进行一些更改),引用自 link
      Get-ChildItem -Path $PSScriptRoot\ src -Filter project.json -Recurse | ForEach-Object { & dnu restore $_.FullName 2>1 }

      2)。在构建定义中包含 PreBuild.ps1。

      【讨论】:

      • 感谢您的回答。那么在 Pre-Build 脚本运行之后,会发生什么?如果默认行为将启动并针对项目运行 MS Build,那么这会失败吗?我们需要忽略它吗?还有单元测试呢?如何在构建过程中运行它们?
      • 1)。 Pre-build 脚本路径中调用的脚本文件在构建开始之前运行,如果一切正常,构建将成功运行。 2)。要在构建过程中运行单元测试,请到 3.Tests -> 测试源 -msdn.microsoft.com/en-us/library/vstudio/…
      • 我想我在这里遗漏了一些东西。当您说构建将在预构建脚本之后运行时。正在使用什么命令?我需要关心还是因为我的预构建脚本已经恢复了所有 nuget 包,那么无论它使用什么命令,构建都会正常工作。我的理解是 MS Build 不会构建 ASP.NET 5 项目,因为您需要使用 dnu。不是这样吗?
      • 预构建脚本在TFS构建过程中被调用,它是构建定义的一部分,您不需要添加任何命令工具来运行它,只需按照我的回复中的步骤操作即可。您需要在脚本中安装 DNX。查看此 MSDN 文章中的 Prebuild.ps1 了解详细信息:msdn.microsoft.com/en-us/Library/vs/alm/Build/azure/…
      • 我收到此错误:找不到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\DNX\Microsoft.DNX.Props”。确认 声明中的路径正确,并且该文件存在于磁盘上。我需要在构建服务器上安装一些东西吗?
      猜你喜欢
      • 2015-11-14
      • 2014-11-12
      • 2016-12-21
      • 2017-04-16
      • 2018-02-24
      • 2018-03-11
      • 2016-04-18
      • 1970-01-01
      • 2012-04-21
      相关资源
      最近更新 更多