2015-08-19 112 views
2

我們有Visual Studio 2015企業RTM和一個MVC6 WebAPI預覽項目編譯對照beta 6 DNX SDK。問題建立Visual Studio 2015解決方案與TFS 2013

現在我們要在我們的TFS 2013服務器上構建這個項目。因爲(我們認爲)不幸構建失敗不被恢復公測6包:

無法解析依賴Microsoft.AspNet.Mvc 6.0.0-beta6
無法解析的依賴Microsoft.AspNet.Server。 IIS 1.0.0-beta6
無法解析依賴關係Microsoft.AspNet.Server.WebListener 1.0.0-beta6
無法解析依賴關係Microsoft.AspNet.StaticFiles 1.0.0-beta6
無法解析依賴關係System.IdentityModel。令牌5.0.0-beta6-207211625
無法解析依賴關係Microsoft.AspNet.Authentication.OAuthBearer 1.0.0-beta6

我們在NuGet包恢復中甚至都沒有看到任何生成日誌的企圖。

考慮以下步驟重現:

  • 我們安裝了Visual Studio 2015年企業RTM我們構建服務器(我們需要完全升上的Visual Studio,因爲我們在單元測試中使用假貨),身份登錄構建代理和配置的Visual Studio的TFS源代碼控制設置,確保自動NuGet恢復被檢查,確保安裝了Visual Studio beta 6 SDK工具並安裝beta 6 DNX(la'dnvm upgrade'命令)。

  • 接下來,我們在TFS創建一個新的構建使用TfvcTemplate.12.xaml模板,指定在高級 - >的MSBuild參數中的「/p:VisualStudioVersion=14.0」開關如this article指定。

  • 最後,當我們排隊構建構建失敗,此日誌:

Build started 8/19/2015 8:51:09 AM. 
    1>Project "C:\Builds\12\FunProjects\SPAFoundation\src\SPAFoundation.sln" on node 1 (default targets). 
    1>ValidateSolutionConfiguration: 
     Building solution configuration "Release|Any CPU". 
    1>Project "C:\Builds\12\FunProjects\SPAFoundation\src\SPAFoundation.sln" (1) is building "C:\Builds\12\FunProjects\SPAFoundation\src\src\API\API.xproj" (2) on node 1 (default targets). 
    2>PrepareForBuild: 
     Creating directory "..\..\artifacts\obj\API\Release\". 
     PreComputeCompileTypeScript: 
     C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.5\tsc.exe --noEmitOnError COMPUTE_PATHS_ONLY 
     CompileTypeScript: 
     C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.5\tsc.exe --noEmitOnError 
     CoreCompile: 
     C:\Users\svctfsserver\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta6\bin\dnx.exe --appbase "C:\Builds\12\FunProjects\SPAFoundation\src\src\API" "C:\Users\svctfsserver\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta6\bin\lib\Microsoft.Framework.PackageManager\Microsoft.Framework.PackageManager.dll" pack "C:\Builds\12\FunProjects\SPAFoundation\src\src\API" --configuration Release --out "C:\Builds\12\FunProjects\SPAFoundation\bin" 
     Microsoft .NET Development Utility CLR-x86-1.0.0-beta6-12256 
     Building API for DNX,Version=v4.5.1 
      Using Project dependency API 1.0.0 
      Source: C:\Builds\12\FunProjects\SPAFoundation\src\src\API\project.json 
      Unable to resolve dependency Microsoft.AspNet.Mvc 6.0.0-beta6 
      Unable to resolve dependency Microsoft.AspNet.Server.IIS 1.0.0-beta6 
      Unable to resolve dependency Microsoft.AspNet.Server.WebListener 1.0.0-beta6 
      Unable to resolve dependency Microsoft.AspNet.StaticFiles 1.0.0-beta6 
      Unable to resolve dependency System.IdentityModel.Tokens 5.0.0-beta6-207211625 
      Unable to resolve dependency Microsoft.AspNet.Authentication.OAuthBearer 1.0.0-beta6 
      Unable to resolve dependency Serilog.Framework.Logging 1.0.0-beta-43 
      Unable to resolve dependency Unity 3.5.1404 
. 
. 
. 
     C:\Builds\12\FunProjects\SPAFoundation\src\src\API\project.json(6,29): error : The dependency Microsoft.AspNet.Mvc >= 6.0.0-beta6 could not be resolved. [C:\Builds\12\FunProjects\SPAFoundation\src\src\API\API.xproj] 
     C:\Builds\12\FunProjects\SPAFoundation\src\src\API\project.json(7,36): error : The dependency Microsoft.AspNet.Server.IIS >= 1.0.0-beta6 could not be resolved. [C:\Builds\12\FunProjects\SPAFoundation\src\src\API\API.xproj] 
     C:\Builds\12\FunProjects\SPAFoundation\src\src\API\project.json(8,44): error : The dependency Microsoft.AspNet.Server.WebListener >= 1.0.0-beta6 could not be resolved. [C:\Builds\12\FunProjects\SPAFoundation\src\src\API\API.xproj] 
     C:\Builds\12\FunProjects\SPAFoundation\src\src\API\project.json(9,37): error : The dependency Microsoft.AspNet.StaticFiles >= 1.0.0-beta6 could not be resolved. [C:\Builds\12\FunProjects\SPAFoundation\src\src\API\API.xproj] 
     C:\Builds\12\FunProjects\SPAFoundation\src\src\API\project.json(10,36): error : The dependency System.IdentityModel.Tokens >= 5.0.0-beta6-207211625 could not be resolved. [C:\Builds\12\FunProjects\SPAFoundation\src\src\API\API.xproj] 
     C:\Builds\12\FunProjects\SPAFoundation\src\src\API\project.json(11,52): error : The dependency Microsoft.AspNet.Authentication.OAuthBearer >= 1.0.0-beta6 could not be resolved. [C:\Builds\12\FunProjects\SPAFoundation\src\src\API\API.xproj] 
  • 的最後一塊拼圖是我們可以遠程連接到使用生成代理證書的TFS服務器。在Visual Studio 2015 Enterprise RTM中打開項目並構建它毫無問題。顯然這與MSBuild和Visual Studio的分離有關,但我們不瞭解這個細微差別。

像往常一樣,我敢肯定我們錯過了祕密的關鍵一步,任何意見將不勝感激。

回答

2

原來有更多的祕密醬。 This article解釋了要做什麼 - 我們需要引導DNX環境並運行DNU來獲取軟件包。

總之,最後的步驟是:

  • 添加PowerShell腳本到項目中,我打電話給我InitializeDNXEnvironment。PS1,as described here
# 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 -Filter project.json -Recurse | ForEach-Object { & dnu restore $_.FullName 2>1 } 
  • 在TFS生成定義,這個腳本添加到Process..Advanced下的「預生成腳本路徑」 ...預構建腳本路徑,例如:
$/FunProjects/SPAFoundation/InitializeDNXEnvironment.ps1 
相關問題