ASP.NET 5: kpm can't locate EntityFramework.Sqlite and Microsoft.Data.Sqlite packages

172 views Asked by At

I'm trying to use SQLite in an ASP.NET 5 website, but I'm having trouble with EntityFramework.Sqlite and Microsoft.Data.Sqlite packages. The kpm restore command is giving me:

C:\Users\jerom\Documents\Visual Studio 2015\Projects\TongyiFapiao\src\TongyiFapiao>kpm restore
Restoring packages for C:\Users\jerom\Documents\Visual Studio 2015\Projects\TongyiFapiao\src\TongyiFapiao\project.json
GET https://api.nuget.org/v3/index.json/FindPackagesById()?Id='EntityFramework.Sqlite'.
GET https://api.nuget.org/v3/index.json/FindPackagesById()?Id='Microsoft.Data.Sqlite'.
OK https://api.nuget.org/v3/index.json/FindPackagesById()?Id='Microsoft.Data.Sqlite' 1228ms
OK https://api.nuget.org/v3/index.json/FindPackagesById()?Id='EntityFramework.Sqlite' 1262ms
The XML file C:\Users\jerom\AppData\Local\kpm\cache\ca78217dc80ed627f4567234a39c90ac05cda559$s_api.nuget.org_v3_index.json_\list_Microsoft.Data.Sqlite_page1.dat is corrupt
Warning: FindPackagesById: Microsoft.Data.Sqlite
Data at the root level is invalid. Line 1, position 1.
GET https://api.nuget.org/v3/index.json/FindPackagesById()?Id='Microsoft.Data.Sqlite'.
The XML file C:\Users\jerom\AppData\Local\kpm\cache\ca78217dc80ed627f4567234a39c90ac05cda559$s_api.nuget.org_v3_index.json_\list_EntityFramework.Sqlite_page1.dat is corrupt
Warning: FindPackagesById: EntityFramework.Sqlite
Data at the root level is invalid. Line 1, position 1.
GET https://api.nuget.org/v3/index.json/FindPackagesById()?Id='EntityFramework.Sqlite'.
OK https://api.nuget.org/v3/index.json/FindPackagesById()?Id='Microsoft.Data.Sqlite' 50ms
The XML file C:\Users\jerom\AppData\Local\Temp\tmpC325.tmp is corrupt
Warning: FindPackagesById: Microsoft.Data.Sqlite
Data at the root level is invalid. Line 1, position 1.
GET https://api.nuget.org/v3/index.json/FindPackagesById()?Id='Microsoft.Data.Sqlite'.
OK https://api.nuget.org/v3/index.json/FindPackagesById()?Id='EntityFramework.Sqlite' 50ms
The XML file C:\Users\jerom\AppData\Local\Temp\tmpC347.tmp is corrupt
Warning: FindPackagesById: EntityFramework.Sqlite
Data at the root level is invalid. Line 1, position 1.
GET https://api.nuget.org/v3/index.json/FindPackagesById()?Id='EntityFramework.Sqlite'.
OK https://api.nuget.org/v3/index.json/FindPackagesById()?Id='Microsoft.Data.Sqlite' 48ms
The XML file C:\Users\jerom\AppData\Local\Temp\tmpC368.tmp is corrupt
Error: FindPackagesById: Microsoft.Data.Sqlite
Data at the root level is invalid. Line 1, position 1.
----------
OK https://api.nuget.org/v3/index.json/FindPackagesById()?Id='EntityFramework.Sqlite' 50ms
The XML file C:\Users\jerom\AppData\Local\Temp\tmpC37A.tmp is corrupt
System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
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 System.Xml.Linq.XDocument.Load(Stream stream)
at Microsoft.Framework.PackageManager.Restore.NuGet.NuGetv2Feed.<FindPackagesByIdAsyncCore>d__21.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.Framework.PackageManager.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.Framework.PackageManager.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.Framework.PackageManager.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.Framework.PackageManager.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.Framework.PackageManager.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.Framework.PackageManager.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.Framework.PackageManager.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.Framework.PackageManager.RestoreCommand.<RestoreForProject>d__62.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.Framework.PackageManager.RestoreCommand.<ExecuteCommand>d__61.MoveNext()
Error: FindPackagesById: EntityFramework.Sqlite
Data at the root level is invalid. Line 1, position 1.
----------
Restore failed
Data at the root level is invalid. Line 1, position 1.

and kpm build gives me also:

Unable to resolve dependency EntityFramework.Sqlite 7.0.0-rc1-final
Unable to resolve dependency Microsoft.Data.Sqlite 1.0.0-rc1-final

However it's working perfectly well when I build from Visual studio, taking the packages from my .dnx\packages directory:

Using Package dependency EntityFramework.Sqlite 7.0.0-rc1-final
Source: C:\Users\jerom\.dnx\packages\EntityFramework.Sqlite\7.0.0-rc1-final
File: lib\net451\EntityFramework.Sqlite.dll
Using Package dependency Microsoft.Data.Sqlite 1.0.0-rc1-final 3>     
Source: C:\Users\jerom\.dnx\packages\Microsoft.Data.Sqlite\1.0.0-rc1-final
File: lib\net451\Microsoft.Data.Sqlite.dll

If I use the --packages option with the kpm restore command it, seems to work:

kpm restore --packages C:\Users\jerom\.dnx\packages
Restoring packages for C:\Users\jerom\Documents\Visual Studio 2015\Projects\TongyiFapiao\src\TongyiFapiao\project.json
Resolving complete, 732ms elapsed
Restore complete, 738ms elapsed

But at the end, it fails when I execute

k ef migration add initial
k ef migration apply

Here is my project.json file:

{
    "version": "1.0.0-*",
    "compilationOptions": {
    "emitEntryPoint": true
},
"dependencies": {
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "TongyiFapiao.Models": "1.0.0-*",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
    "EntityFramework.Sqlite": "7.0.0-rc1-final",
    "EntityFramework.Relational": "7.0.0-rc1-final",
    "Microsoft.Data.Sqlite": "1.0.0-rc1-final",
    "EntityFramework.Commands": "7.0.0-rc1-final",
    "System.Data.SQLite": "1.0.99",
    "TongyiFapiao.DAL": "1.0.0-*",
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta8"
},
"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
},
"frameworks": {
    "dnx451": {
        "dependencies": {
        "TongyiFapiao.DAL": "1.0.0-*"
    }
 },
 "dnxcore50": {
 }
},
"exclude": [
  "wwwroot",
  "node_modules"
],
"publishExclude": [
   "**.user",
   "**.vspscc"
]
}

I've tried to modify the Nuget.config file to use different Nuget repositories but none of them are working. I also upgraded my KVM and DNVM and here are all the .NET versions installed:

C:\Users\jerom\Documents\Visual Studio 2015\Projects\TongyiFapiao\src\TongyiFapiao>dnvm list
WARNING: Found a KRE_HOME environment variable. This variable has been deprecated and should be removed, or it may interfere with DNVM and the .NET Execution environment
Active Version           Runtime Architecture OperatingSystem Alias
------ -------           ------- ------------ --------------- -----
   1.0.0-beta5       clr     x64          win
   1.0.0-beta5       clr     x86          win
   1.0.0-beta5       coreclr x64          win
   1.0.0-beta5       coreclr x86          win
   1.0.0-beta8-15736 clr     x86          win
   1.0.0-rc1-final   clr     x64          win
   1.0.0-rc1-final   clr     x86          win
   1.0.0-rc1-final   coreclr x64          win
   1.0.0-rc1-final   coreclr x86          win
   1.0.0-rc1-update1 clr     x64          win
  *1.0.0-rc1-update1 clr     x86          win             default
   1.0.0-rc1-update1 coreclr x64          win
   1.0.0-rc1-update1 coreclr x86          win

I've tried to change to the different versions of update 1 but still the same problem.

1

There are 1 answers

0
Jérôme MEVEL On BEST ANSWER

Soooo I finally found interesting things.

FIRST:

kpm and k commands were renamed to dnu and dnx respectively. I couldn't find any information about it except here

You can't use k/kre/kvm with the newest packages, it doesn't understand the DNX TFMs.

@jsacapdev You need to download the dnvm from the Home repository or stick to packages that existed before last friday.

Message written on Mar 11, 2015. Thanks for your huge communication about it guys...

So I just had to run the command dnx restore and then achieving my ultimate goal which was to create my Database from my DbContext. If like me you have a multi-projects solution where you split the website part from the data access layer part (DAL). The solution is here

dnx ef migrations add InitialMigration -c TongyiFapiao.DAL.TongyiFafiaoContext -p TongyiFapiao.DAL

dnx ef database update -c TongyiFapiao.DAL.TongyiFafiaoContext

BUT:

If you go to the dnx github page you can read

DNX (retired)

The DNX is being retired in favor of the new dotnet CLI command line tools. See:

http://dotnet.github.io/getting-started/

http://github.com/dotnet/cli

As a result, we're not accepting anymore changes to this project. Please file any new issues on http://github.com/dotnet/cli.

Great, I love name's changing every 6 months, that's much better for understanding and searching over internet. I promise I'll update this answer when the 4th new command will be out.