2015-08-16 91 views
3

我有一個名爲Boilerplate.Web.Mvc6的ASP.NET 5 NuGet包。我無法引用我的ASP.NET 5網站中的NuGet包。這是我參考"Boilerplate.Web.Mvc6": "1.0.11"的project.json文件。ASP.NET 5未能安裝ASP.NET 5 NuGet包

{ 
    // Omitted 

    "dependencies": { 
    "Microsoft.AspNet.Mvc": "6.0.0-beta6", 
    "Microsoft.AspNet.Mvc.TagHelpers": "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", 
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta6", 
    "Microsoft.Framework.Configuration.EnvironmentVariables": "1.0.0-beta6", 
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta6", 
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta6", 
    "Microsoft.Framework.Logging": "1.0.0-beta6", 
    "Microsoft.Framework.Logging.Console": "1.0.0-beta6", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta6", 
    "Newtonsoft.Json": "7.0.1", 
    "System.Runtime": "4.0.20-beta-23109", 
    "Boilerplate.Web.Mvc6": "1.0.11" 
    }, 

    // Omitted 
} 

當我添加上面的包,在項目中引用顯示了一個錯誤,我得到下面的打印輸出窗口:

PATH=.\node_modules\.bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External;%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\git 
C:\Users\Rehan Saeed\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta7-12364\bin\dnx.exe "C:\Users\Rehan Saeed\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta7-12364\bin\lib\Microsoft.Dnx.Tooling\Microsoft.Dnx.Tooling.dll" restore "C:\Temp\WebApplication2\WebApplication2" -f "C:\Program Files (x86)\Microsoft Web Tools\DNU" 
Microsoft .NET Development Utility CLR-x86-1.0.0-beta7-12364 
Restoring packages for C:\Temp\WebApplication2\WebApplication2\project.json 
    CACHE https://api.nuget.org/v3/index.json 
    CACHE http://MyGet.org/aspnetmaster/ 
    CACHE https://az320820.vo.msecnd.net/v3-flatcontainer/boilerplate.web.mvc6/index.json 
    GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' 
Warning: FindPackagesById: Boilerplate.Web.Mvc6 
    Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response. 
    GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' 
Warning: FindPackagesById: Boilerplate.Web.Mvc6 
    Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response. 
    GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' 
Error: FindPackagesById: Boilerplate.Web.Mvc6 
    Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response. 
---------- 
System.IO.InvalidDataException: Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response. ---> System.Xml.XmlException: 'doctype' is an unexpected token. The expected token is 'DOCTYPE'. Line 2, position 3. 
    at System.Xml.XmlTextReaderImpl.Throw(Exception e) 
    at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args) 
    at System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken(String expectedToken1, String expectedToken2) 
    at System.Xml.XmlTextReaderImpl.ParseDoctypeDecl() 
    at System.Xml.XmlTextReaderImpl.ParseDocumentContent() 
    at System.Xml.XmlTextReaderImpl.Read() 
    at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options) 
    at System.Xml.Linq.XDocument.Load(Stream stream, LoadOptions options) 
    at Microsoft.Dnx.Tooling.Restore.NuGet.NuGetv2Feed.EnsureValidFindPackagesResponse(Stream stream, String uri) 
    --- End of inner exception stack trace --- 
    at Microsoft.Dnx.Tooling.Restore.NuGet.NuGetv2Feed.EnsureValidFindPackagesResponse(Stream stream, String uri) 
    at Microsoft.Dnx.Tooling.Restore.NuGet.NuGetv2Feed.<>c__DisplayClass25_0.<FindPackagesByIdAsyncCore>b__0(Stream stream) 
    at Microsoft.Dnx.Tooling.Restore.NuGet.HttpSource.<GetAsync>d__9.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 
    at Microsoft.Dnx.Tooling.Restore.NuGet.NuGetv2Feed.<FindPackagesByIdAsyncCore>d__25.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Dnx.Tooling.RemoteWalkProvider.<FindLibrary>d__6.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Dnx.Tooling.RestoreOperations.<FindLibrary>d__9.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 
    at Microsoft.Dnx.Tooling.RestoreOperations.<FindLibraryByVersion>d__8.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 
    at Microsoft.Dnx.Tooling.RestoreOperations.<FindLibraryMatch>d__6.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Dnx.Tooling.RestoreOperations.<FindLibraryEntry>d__5.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Dnx.Tooling.RestoreOperations.<CreateGraphNode>d__2.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 
    at Microsoft.Dnx.Tooling.RestoreOperations.<CreateGraphNode>d__2.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Dnx.Tooling.RestoreCommand.<CreateGraphNode>d__71.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 
    at Microsoft.Dnx.Tooling.RestoreCommand.<RestoreForProject>d__70.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Dnx.Tooling.RestoreCommand.<>c__DisplayClass69_0.<<Execute>b__1>d.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Dnx.Tooling.RestoreCommand.<Execute>d__69.MoveNext() 
---------- 
Restore failed 
Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response. 
NuGet Config files used: 
    C:\Users\Rehan Saeed\AppData\Roaming\NuGet\NuGet.Config 
Feeds used: 
    https://az320820.vo.msecnd.net/v3-flatcontainer/ 
    http://MyGet.org/aspnetmaster/ 
    C:\Program Files (x86)\Microsoft Web Tools\DNU 

什麼錯?

UPDATE

這些都是我的NuGet包提要:

  1. nuget.org - https://api.nuget.org/v3/index.json
  2. 我的獲取 - http://MyGet.org/aspnetmaster
  3. 微軟.NET - https://www.nuget.org/api/v2/curated-feeds/microsoftdotnet/

更新2

我跑dnu restore --ignore-failed-sources並得到了以下輸出,仍然無法找到我的NuGet包。奇怪的是,我可以從ASP.NET 5項目引用相同包的1.0.10,但不能從ASP.NET 5類庫引用。

Restoring packages for C:\Temp\WebApplication2\WebApplication2\project.json 
    GET https://api.nuget.org/v3/index.json 
    OK https://api.nuget.org/v3/index.json 130ms 
    GET http://MyGet.org/aspnetmaster/ 
    OK http://MyGet.org/aspnetmaster/ 142ms 
    GET https://az320820.vo.msecnd.net/v3-flatcontainer/boilerplate.web.mvc6/index.json 
    GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' 
Warning: FindPackagesById: Boilerplate.Web.Mvc6 
    Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response. 
    GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' 
    OK https://az320820.vo.msecnd.net/v3-flatcontainer/boilerplate.web.mvc6/index.json 103ms 
Warning: FindPackagesById: Boilerplate.Web.Mvc6 
    Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response. 
    GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' 
Warning: FindPackagesById: Boilerplate.Web.Mvc6 
    Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response. 
Unable to locate Boilerplate.Web.Mvc6 >= 1.0.11 
Writing lock file C:\Temp\WebApplication2\WebApplication2\project.lock.json 
Restore complete, 1210ms elapsed 

Errors in C:\Temp\WebApplication2\WebApplication2\project.json 
    Unable to locate Boilerplate.Web.Mvc6 >= 1.0.11 

NuGet Config files used: 
    C:\Users\Rehan Saeed\AppData\Roaming\NuGet\NuGet.Config 

Feeds used: 
    https://az320820.vo.msecnd.net/v3-flatcontainer/ 
    http://MyGet.org/aspnetmaster/ 
+1

你可以發佈你正在使用的所有nuget飼料嗎?你可以在工具 - >選項 - >軟件包管理器下找到它 – ojf

+1

我在我的手機上,所以我不能檢查,但試着取消選擇除了樣板包以外的所有提要,然後運行Update-Package -reinstall Boilerplate.Web.Mvc6在包控制檯中。 – ojf

+1

供稿網址錯誤。它應該是https://www.myget.org/F/aspnetmaster/api/v2 – davidfowl

回答

2

我已經嘗試刪除project.lock.json文件並重新打開Visual Studio,它通常爲我解決了這個問題。

我已經重試安裝版本1.0.11的包,它神奇地工作。由於以前的版本正在工作,並且我沒有對該項目或我的安裝進行任何更改,我懷疑這是NuGet軟件包入門問題。 NuGet花了三天的時間註冊新版本的軟件包。

+0

刪除project.lock.json解決了這裏的問題。 – Tony

+0

它也適用於我,非常感謝! –

3

這可能是一個myget錯誤。無論如何,我在dnu上打開了一個bug(請參見here),並且還會攻擊myget人。

問題是http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6'在沒有找到包的情況下返回200 OK和HTML,我們嘗試將其解析爲XML。

你可以通過--ignore-failed-sources去dnu恢復來解除自己的阻止。

+0

這似乎沒有工作。看到我更新的問題。它應該去NuGet,而不是我的包的MyGet,但它不能從那裏得到它。 –

+1

它看起來在所有提要上,因爲其中一個正在返回不正確的東西,它失敗。 Feed應該包含一個/ F:myget.org/F/aspnetmaster/api/v2。就像這裏的飼料:https://github.com/aspnet/MusicStore/blob/master/NuGet.Config#L6 –

+0

即使使用''--ignore-failed-sources'''選項?我會嘗試添加v2飼料今晚。我可以在VS選項中添加它嗎?還是我需要有一個NuGet.config文件? –