使用Msbuild构建ASP核心(ASP 5)项目

时间:2016-02-27 08:11:30

标签: tfs msbuild asp.net-core tfsbuild msbuild-task

我是MSBuild和ASP Core的新手,我在使用ASP Core(ASP 5)配置MSBuild时遇到了问题。

我的上一个错误是:

  

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DNX\Microsoft.DNX.targets (126): The Dnx Runtime package needs to be installed.

但已安装Dnx。

我在网络研究中采取的主要步骤:

  1. 已安装最新版本的dnvm

  2. 安装了最新版本的dnx

  3. 我已将DNX_FEED环境变量添加到https://www.nuget.org/api/v2值为<{1}}的Windows用户变量

  4. 我已将Windows用户变量中的PATH环境变量修改为C:\Users\OAG\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin;C:\Program Files (x86)\MSBuild\14.0\Bin;C:\Users\OAG\.dnx\bin

  5. 顺便说一下,我的tfs版本是2013年的msbuild操作。

3 个答案:

答案 0 :(得分:1)

我的问题终于解决了

首先感谢答案指导我结果

我曾使用 Teamcity 而不是 TFS Msbuild ,但仍然存在与未安装dnx相同的错误。

对我来说有趣的是,我在几台计算机上检查过它,其中一些计算机正常工作,另一些错误仍然存​​在。

在某些情况下,我遇到了此错误,但在添加新代理以构建已解决的错误后。

毕竟使用此链接Specify that MSBuild v14 use CoreClr RC1 for build并将此行代码添加到命令行参数

  

/冗长:最小   /p:RuntimeToolingDirectory="C:\Users\Administrator.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1"

该错误消失,无法找到包错误运行 dnu restore ,这似乎很容易解决,但这并不容易,因为包已存在于我的dnx文件夹中错误提到包不存在(发生了什么?)。

在Patrick提及的Microsoft链接Build and Deploy your ASP.NET 5 Application to an Azure Web App的帮助下,我在主构建操作之前添加了PowerShell级别并添加了Prebuild.ps1文件(存在于链接中),这解决了dnu恢复问题,现在主编译操作中的命令行参数可以为空。

但是发生了什么?

我发现在构建操作中(在某些情况下我不知道)构建代理正在建立单独的区域来构建和使用自己的dnx项目,在我的情况下,构建代理在此文件夹中工作

  

C:\的Windows \ Syswow64资料\配置\ systemprofile \

它包含自己的运行时和包,最后我理解发生了什么, dnx运行时不存在错误是该区域中不存在运行时版本的原因并且 dnu恢复问题是因为它在自己的区域而不是用户dnx包。

顺便说一下,我的目标操作系统是Windows Server 2008 R2

答案 1 :(得分:0)

确保您已将 global.json 更新为指向较新的运行时。

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-rc1-xxxx",
    "runtime": "coreclr"
  }
}

以下是一个类似的问题:https://github.com/aspnet/Tooling/issues/71

此外,下面的文章介绍了您需要添加的powershell脚本以及如何配置构建。并检查链接中的以下步骤是否解决问题。 Build and Deploy your ASP.NET 5 Application to an Azure Web App

答案 2 :(得分:0)

对于您的问题,

  1. 请安装的DNX版本与您在项目中使用的版本相匹配。您可以通过&#34; dnvm list&#34;检查已安装的DNX版本。命令并通过&#34; dnvm使用&#34;更改版本命令。
  2. 当您从DNVM安装或使用DNX时,添加-g或-global参数以确保所有用户都可以使用DNX。
  3. 当您从dnvm安装dnx时,DNX bin已自动添加到用户PATH环境变量中。所以你不需要手动添加它。

    关于DNVM的说明:Version Manager