2016-03-23 33 views
0

我想在Visual Studio 2015 Update 1中創建一個類庫(包)項目,該項目在我的本地機器上成功生成,但構建失敗MyGet構建服務MyGet feed從github回購項目中提取項目並嘗試構建它)。通過MyGet構建類庫(包)時出現錯誤

project.json文件看起來像這樣:

{ 
    "version": "1.0.0-*", 
    "description": "TestMyGet Class Library", 
    "authors": [ "Test" ], 
    "tags": [ "" ], 
    "projectUrl": "", 
    "licenseUrl": "", 

    "frameworks": { 
    "net451": { }, 
    "dotnet5.4": { 
     "dependencies": { 
     "Microsoft.CSharp": "4.0.1-beta-23516", 
     "System.Collections": "4.0.11-beta-23516", 
     "System.Data.SqlClient": "4.0.0-beta-23516", 
     "System.Linq": "4.0.1-beta-23516", 
     "System.Runtime": "4.0.21-beta-23516", 
     "System.Threading": "4.0.11-beta-23516" 
     } 
    } 
    }, 
    "dependencies": { 
    "WindowsAzure.Storage": "6.2.2-preview" 
    } 
} 

構建日誌如下:

2016-03-23 18:58:46 [Information] Sources at revision 2e055ab76bb167d728924383fa842961389e1200 
. 
2016-03-23 18:58:46 [Information] Finished fetching sources. 
2016-03-23 18:58:46 [Information] Searching for projects to build... 
2016-03-23 18:58:46 [Information] Searching for MyGet.bat, MyGet.cmd or MyGet.ps1... 
2016-03-23 18:58:46 [Warning] Could not find MyGet.bat, MyGet.cmd or MyGet.ps1. 
2016-03-23 18:58:46 [Information] Searching for build.bat, build.cmd or build.ps1... 
2016-03-23 18:58:46 [Warning] Could not find build.bat, build.cmd or build.ps1. 
2016-03-23 18:58:46 [Information] Searching for MyGet.sln... 
2016-03-23 18:58:46 [Warning] Could not find MyGet.sln. 
2016-03-23 18:58:46 [Information] Searching for other *.sln files... 
2016-03-23 18:58:46 [Information] Registering NuGet package sources... 
2016-03-23 18:58:46 [Information] Creating new NuGet.config file in which to register package sources. 
Package Source with Name: feratur-public added successfully. 
2016-03-23 18:58:49 [Information] Finished registering package sources. 
2016-03-23 18:58:49 [Information] Running Package Restore... 
2016-03-23 18:58:49 [Information] Found NuGet.config file that will be used during package restore. 
2016-03-23 18:58:49 [Information] Start running package restore for D:\temp\656b00b\TestMyGet.sln... 

MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'. 
2016-03-23 18:58:51 [Information] Finished running package restore for D:\temp\656b00b\TestMyGet.sln (restored 0 packages). 
2016-03-23 18:58:51 [Information] Finished Package Restore. 
2016-03-23 18:58:51 [Information] Searching for restored NuGet packages... 
2016-03-23 18:58:51 [Information] Found no restored packages. 
2016-03-23 18:58:51 [Information] Start building project(s)... 
2016-03-23 18:58:51 [Information] Start building project D:\temp\656b00b\TestMyGet.sln... 

    C:\Users\Wonka\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\dnx.exe --appbase "D:\temp\656b00b\src\TestMyGet" "C:\Users\Wonka\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\lib\Microsoft.Dnx.Tooling\Microsoft.Dnx.Tooling.dll" pack "D:\temp\656b00b\src\TestMyGet" --configuration Release --out "..\..\artifacts\bin\TestMyGet" 
    Microsoft .NET Development Utility Clr-x86-1.0.0-rc1-16231 
    Building TestMyGet for .NETFramework,Version=v4.5.1 
    Using Project dependency TestMyGet 1.0.0 
     Source: D:\temp\656b00b\src\TestMyGet\project.json 
    Unable to resolve dependency WindowsAzure.Storage 6.2.2-preview 
    Using Assembly dependency fx/mscorlib 4.0.0 
     Source: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\mscorlib.dll 
    Using Assembly dependency fx/System 4.0.0 
     Source: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.dll 
    Using Assembly dependency fx/System.Core 4.0.0 
     Source: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Core.dll 
    Using Assembly dependency fx/Microsoft.CSharp 4.0.0 

和:

Building TestMyGet for .NETPlatform,Version=v5.3 
    Using Project dependency TestMyGet 1.0.0 
     Source: D:\temp\7ca98d3\src\TestMyGet\project.json 
    Unable to resolve dependency WindowsAzure.Storage 6.2.2-preview 
    Unable to resolve dependency Microsoft.CSharp 4.0.1-beta-23516 
    Unable to resolve dependency System.Collections 4.0.11-beta-23516 
    Unable to resolve dependency System.Data.SqlClient 4.0.0-beta-23516 
    Unable to resolve dependency System.Linq 4.0.1-beta-23516 
    Unable to resolve dependency System.Runtime 4.0.21-beta-23516 
    Unable to resolve dependency System.Runtime.InteropServices 4.0.21-beta-23516 
    Unable to resolve dependency System.Threading 4.0.11-beta-23516 

對於我來說,它看起來像MyGet建設服務無法找到並拉取構建所需的NuGet包。你有什麼想法可以在這裏出錯嗎?

+0

我不MyGet這樣做,但我已經做了它與其他構建系統,如TFS和TeamCity。通常,您必須將nuget.config文件添加到包含包含這些包的源回購庫的元素的解決方案中。請參閱:http://docs.nuget.org/Consume/NuGet-Config-File – CodingGorilla

+0

@CodingGorilla默認的NuGet軟件包源在我的MyGet源相應菜單設置中的「軟件包源」中指定,並且有一個註釋:「By默認情況下,我們會將所有在當前訂閱源上定義的包源添加到我們的生成機器上的NuGet.config文件中。「但我會嘗試明確地添加nuget.config文件 –

+0

是的,對不起,我還沒有使用MyGet,所以我猜測是基於我以前使用外部構建系統和定製nuget回購的經驗。這就是爲什麼我沒有把它作爲答案。 :) – CodingGorilla

回答

0

可能聽起來很明顯,但只是想確保這不是問題:請確保您沒有檢查project.lock.json文件。

此外,你需要一個構建腳本(把MyGet.ps1溶液中的根目錄)需要照顧的幾件事情:

# 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 
} 

# run msbuild on the solution file 
Get-ChildItem -Path $PSScriptRoot -Filter *.sln -Recurse | ForEach-Object 
{ 
    & "$env:msbuildexe" $_.FullName /p:Configuration=$env:Configuration /m /v:M /fl /flp:LogFile="msbuild.log;Verbosity=Normal" /nr:false 2>1 
} 
+0

project.lock.json文件沒有簽入,但構建腳本做了伎倆,現在一切正常,非常感謝! –