2015-08-16 92 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文件? –