尝试构建一个从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
答案 0 :(得分:0)
对于你的问题:
<强> 1。重新配置TFS
您可以将构建服务配置为使用已安装dnx的帐户运行。我假设您正在使用XAML构建系统,您可以从这里更改它:
<强> 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 }