Team Foundation Server - 本地服务帐户缺少dnx - 构建失败?如何修复

时间:2016-04-07 00:26:52

标签: visual-studio tfs tfsbuild

尝试构建一个从Visual Studio 2015运行良好的简单Web项目(MVC 5),但是当我使用TFSBUILD(不使用xaml)从团队基础服务器2015构建它时失败... vs和tfs都在同一台机器,Windows 2012 Enterprise,VS 2015,使用TF的本地服务帐户。

似乎本地服务帐户缺少dnx资源,因此失败了 - 当我尝试通过脚本添加它们时(请参阅下面的脚本答案),它会在此过程中进一步发展,但会爆炸。

更新:似乎无法找到global.json文件,因此使用的是最新版本(update2)。

  

警告:无法找到global.json以确定使用' latest'确定最新版本' dnx-clr-win-x86.1.0.0-rc1-update2'是   已经安装好了   C:\的Windows \ ServiceProfiles \ LocalService.dnx \运行时\ DNX-CLR-双赢x86.1.0.0-RC1-UPDATE2

但它随后爆炸,因为它实际上正在寻找update1

  

找不到DNX运行时dnx-clr-win-x86.1.0.0-rc1- update1   文件夹:C:\ Windows \ ServiceProfiles \ LocalService.dnx \ runtimes

我更改了构建配置设置,在所有文件中替换了update1到update2的任何引用,但仍然需要update1。

所以我的问题是,我需要做些什么来重新配置TFS,或2.将资源放入本地系统帐户的路径。

在构建期间,我得到以下内容:

  

GetRuntimeToolingPathTarget:找不到DNX运行时   文件夹中的dnx-clr-win-x86.1.0.0-rc1-update1:   C:\ Windows \ ServiceProfiles \ LocalService.dnx \ runtime

     

C:\ Program Files   (86)\的MSBuild \微软\ VisualStudio的\ v14.0 \ DNX \ Microsoft.DNX.targets(126,5):   错误:需要安装Dnx Runtime包。见输出   窗口了解更多详情。

     

C:\ Program Files   (86)\的MSBuild \微软\ VisualStudio的\ v14.0 \ DNX \ Microsoft.DNX.targets(126,5):   错误:需要安装Dnx Runtime包。见输出   窗口了解更多详情。   [C:\ TfsData \代理\代理-DESKTOP-U7761A8_work \ 2 \ S \ MvcMovie \ SRC \ MvcMovie \ MvcMovie.xproj]

<小时/> 基本上它抱怨它无法在文件夹C:\ Windows \ ServiceProfiles \ LocalService.dnx \ runtime中找到dnx库。本地服务配置文件没有在C:\ Windows \ ServiceProfiles \ LocalService.dnx \ runtime中安装库。

我可以从命令行安装这些库,但它只会将那些库粘贴在我的本地用户帐户中,即使使用-global等也是如此。并且TFS中的构建仍然失败。

DMVM LIST的结果:

Active Version           Runtime Architecture OperatingSystem Alias
------ -------           ------- ------------ --------------- -----
       1.0.0-rc1-update1 clr     x64          win
       1.0.0-rc1-update1 clr     x86          win
       1.0.0-rc1-update1 coreclr x64          win
       1.0.0-rc1-update1 coreclr x86          win
  *    1.0.0-rc1-update2 clr     x86          win             default
       1.0.0-rc1-update2 coreclr x64          win
       1.0.0-rc1-update2 coreclr x86          win

我使用了一个powershell脚本,将这些库安装到本地服务帐户文件夹中,之后构建更进一步,然后被轰炸 - 似乎存在库冲突:

  

2016-04-06T23:04:56.0966631Z构建WebApplication4 for   DNX,版本= v4.5.1 2016-04-06T23:04:56.5039430Z使用   项目依赖项WebApplication4 1.0.0 2016-04-06T23:04:56.5039430Z   资源:   C:\ TfsData \代理\代理-DESKTOP-U7761A8_work \ 3个\ S \ WebApplication4 \ SRC \ WebApplication4 \ project.json   2016-04-06T23:04:56.5039430Z无法解析依赖关系   EntityFramework.Commands 7.0.0-rc1-final 2016-04-06T23:04:56.5039430Z   无法解析依赖关系EntityFramework.MicrosoftSqlServer   7.0.0-rc1-final 2016-04-06T23:04:56.5039430Z无法解析依赖关系Microsoft.ApplicationInsights.AspNet 1.0.0-rc1   2016-04-06T23:04:56.5039430Z无法解析依赖关系   Microsoft.AspNet.Authentication.Cookies 1.0.0-rc1-final   2016-04-06T23:04:56.5039430Z无法解析依赖关系   Microsoft.AspNet.Diagnostics.Entity 7.0.0-rc1-final   2016-04-06T23:04:56.5039430Z无法解析依赖关系   Microsoft.AspNet.Identity.EntityFramework 3.0.0-rc1-final   2016-04-06T23:04:56.5039430Z无法解析依赖关系   Microsoft.AspNet.IISPlatformHandler 1.0.0-rc1-final   2016-04-06T23:04:56.5039430Z无法解析依赖关系   Microsoft.AspNet.Mvc 6.0.0-rc1-final 2016-04-06T23:04:56.5039430Z
  无法解析依赖Microsoft.AspNet.Mvc.TagHelpers   6.0.0-rc1-final 2016-04-06T23:04:56.5039430Z无法解析依赖关系Microsoft.AspNet.Server.Kestrel 1.0.0-rc1-final   2016-04-06T23:04:56.5039430Z无法解析依赖关系   Microsoft.AspNet.StaticFiles 1.0.0-rc1-final   2016-04-06T23:04:56.5039430Z无法解析依赖关系   Microsoft.AspNet.Tooling.Razor 1.0.0-rc1-final   2016-04-06T23:04:56.5039430Z无法解析依赖关系   Microsoft.Extensions.CodeGenerators.Mvc 1.0.0-rc1-final   2016-04-06T23:04:56.5498358Z无法解析依赖关系   Microsoft.Extensions.Configuration.FileProviderExtensions   1.0.0-rc1-final 2016-04-06T23:04:56.5654146Z无法解析依赖关系Microsoft.Extensions.Configuration.Json   1.0.0-rc1-final 2016-04-06T23:04:56.5654146Z无法解析依赖关系Microsoft.Extensions.Configuration.UserSecrets   1.0.0-rc1-final 2016-04-06T23:04:56.5966887Z无法解析依赖关系Microsoft.Extensions.Logging 1.0.0-rc1-final   2016-04-06T23:04:56.5966887Z无法解析依赖关系   Microsoft.Extensions.Logging.Console 1.0.0-rc1-final   2016-04-06T23:04:56.5966887Z无法解析依赖关系   Microsoft.Extensions.Logging.Debug 1.0.0-rc1-final   2016-04-06T23:04:56.6122983Z无法解析依赖关系   Microsoft.VisualStudio.Web.BrowserLink.Loader 14.0.0-rc1-final   2016-04-06T23:04:56.6122983Z使用程序集依赖性   fx / mscorlib 4.0.0 2016-04-06T23:04:56.6122983Z来源:   C:\ Program Files(x86)\ Reference   大会\微软\ Framework.NETFramework \ V4.5.1 \ mscorlib.dll中   2016-04-06T23:04:56.6122983Z使用程序集依赖性   fx / System 4.0.0 2016-04-06T23:04:56.6122983Z来源:   C:\ Program Files(x86)\ Reference   大会\微软\ Framework.NETFramework \ V4.5.1 \ System.dll中   2016-04-06T23:04:56.6122983Z使用程序集依赖性   fx / System.Core 4.0.0 2016-04-06T23:04:56.6122983Z来源:   C:\ Program Files(x86)\ Reference   大会\微软\ Framework.NETFramework \ V4.5.1 \ System.Core.dll   2016-04-06T23:04:56.6122983Z使用程序集依赖性   fx / Microsoft.CSharp 4.0.0 2016-04-06T23:04:56.6122983Z
  来源:C:\ Program Files(x86)\ Reference   大会\微软\ Framework.NETFramework \ V4.5.1 \ Microsoft.CSharp.dll   2016-04-06T23:04:56.8622811Z

     

[错误] C:\ TfsData \代理\代理-DESKTOP-U7761A8_work \ 3个\ S \ WebApplication4 \ SRC \ WebApplication4 \ project.lock.json(1,0):

     

错误NU1009:预期的锁定文件不存在。请运行&#34; dnu   恢复&#34;生成一个新的锁文件。 2016-04-06T23:04:56.8622811Z

1 个答案:

答案 0 :(得分:0)

对于你的问题:

<强> 1。重新配置TFS

您可以将构建服务配置为使用已安装dnx的帐户运行。我假设您正在使用XAML构建系统,您可以从这里更改它: enter image description here

<强> 2。将资源放入本地系统帐户的路径中。

根据在将dnx安装到本地服务帐户后得到的错误消息,在构建之前未恢复dun包。所以你需要在你的powershell脚本中添加一些代码来执行“project.json”文件的dun恢复以恢复dun包。

以下是Microsoft提供的用于安装dnx运行时和恢复dun包的powershell示例:

# bootstrap DNVM into this session.
&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}

# load up the global.json so we can find the DNX version
$globalJson = Get-Content -Path $PSScriptRoot\global.json -Raw -ErrorAction Ignore | ConvertFrom-Json -ErrorAction Ignore

if($globalJson)
{
    $dnxVersion = $globalJson.sdk.version
}
else
{
    Write-Warning "Unable to locate global.json to determine using 'latest'"
    $dnxVersion = "latest"
}

# install DNX
# only installs the default (x86, clr) runtime of the framework.
# If you need additional architectures or runtimes you should add additional calls
# ex: & $env:USERPROFILE\.dnx\bin\dnvm install $dnxVersion -r coreclr
& $env:USERPROFILE\.dnx\bin\dnvm install $dnxVersion -Persistent

 # run DNU restore on all project.json files in the src folder including 2>1 to redirect stderr to stdout for badly behaved tools
Get-ChildItem -Path $PSScriptRoot\src -Filter project.json -Recurse | ForEach-Object { & dnu restore $_.FullName 2>1 }