J'ai installé .NET Core RC2 sur un système Debian 8 AMD64 et j'aimerais vérifier s'il est possible d'interroger une instance de Microsoft SQL Server.
J'aimerais donc ajouter à mon projet une dépendance sur l'assembly System.Data.SqlClient
.
Actuellement, mon fichier de projet créé en exécutant l'outil CLI dotnet new
se présente comme suit:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-rc2-3002702"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
En utilisant cette réponse à une requête similaire, j’ai pu ajouter une référence à System.Data.Common
en changeant la
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
fragment à
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50",
"dependencies": {
"System.Data.Common": "*"
}
}
}
ce qui a fait dotnet restore
utiliser NuGet pour télécharger un tas de choses.
J'ai ensuite essayé de changer ce fragment pour le lire
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50",
"dependencies": {
"System.Data.SqlClient": "*"
}
}
}
mais NuGet dit que c'est
Impossible de résoudre 'System.Data.SqlClient' pour '.NETCoreApp, Version = v1.0'.
Si je change la chaîne de version pour lire "4.1.0-rc3- *", le message d'erreur devient plus précis:
Impossible de résoudre 'System.Data.SqlClient (> = 4.1.0-rc3)' pour '.NETCoreApp, Version = v1.0'.
Ce qui me laisse perplexe, c'est que la galerie de paquets NuGet dédiée à .NET Core répertorie explicitement System.Data.SqlClient
comme disponible.
Que puis-je faire pour ajouter une référence à System.Data.SqlClient
Assembly à mon projet et le faire télécharger par NuGet?
En passant, je joue actuellement dans une console ordinaire avec uniquement l'outil dotnet
de la CLI. Existe-t-il un moyen de gérer les dépendances de projet pour un projet .NET Core sans recourir à l'installation d'EDI?
Comme poke déjà annoté dans le commentaire est correct. Spécifier une version sur System.Data.SqlClient
rend votre restauration heureuse;)
Pourquoi donc? System.Data.SqlClient
existe dans http://nuget.org gallery. Ne pas spécifier de version ("") n'est pas autorisé en dehors des limites d'un projet (comme un paquet de flux de nuget) et spécifier uniquement un étoile "*"
(vous ne devez jamais le faire, cela permet de modifier les modifications) restaurez la version la plus élevée disponible. Comme il n'y a pas d'écurie, l'étoile ne trouvera rien (il y a de la magie avec les tirets derrière). La version RC2 de cette bibliothèque est la version 4.1.0-rc2-24027 mentionnée. Lorsque vous posez la question avec la version 4.1.0-rc2- *, elle utilise la version la plus élevée de la version RC2 (mais il n'y en a qu'une). En comparaison, System.Data.Common
a été publié sur nuget.org pour la plate-forme Windows universelle et est trouvé pour cette raison.
La RC3 est la prochaine version et n’est disponible que sur les flux de développement des développeurs .NET Core et ASP.NET Core, et non du flux de nuget public. Vous ne devriez pas jouer avec eux.
si vous êtes dans le fichier project.json, l’intellisense vous guidera maintenant si vous avez mis à jour le Visual studio avec les derniers outils disponibles.
J'ai ajouté ce qui suit dans l'élément dependencies et cela fonctionne parfaitement.
"System.Data.SqlClient": "4.1.0-rc2-24027",