Comment puis-je utiliser le Système.De données dans un .NET de Base RC2 application console (Linux, Debian 8)?
Je l'ai installé .NET de Base RC2 sur une Debian 8 système amd64 et voudrais tester si il est possible de faire des requêtes sur une instance de Microsoft SQL Server.
Donc je voudrais ajouter à mon projet d'une dépendance sur les System.Data.SqlClient
assemblée.
Actuellement mon projet de création de fichier en exécutant la dotnet new
CLI outil ressemble à ceci:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-rc2-3002702"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
À l'aide de cette réponse à une requête similaire, j'ai été en mesure d'ajouter une référence à System.Data.Common
la modification de la
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
fragment de
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50",
"dependencies": {
"System.Data.Common": "*"
}
}
}
qui fait dotnet restore
utiliser NuGet pour télécharger un tas de trucs.
J'ai ensuite essayé de changer ce fragment de lire
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50",
"dependencies": {
"System.Data.SqlClient": "*"
}
}
}
mais NuGet dit que c'est
Parvenez pas à résoudre le Système de la.Les données.SqlClient "pour".NETCoreApp,Version=v1.0'.
Si je change la chaîne de version lire "4.1.0-rc3-*" le message d'erreur devient de plus spécifique:
Parvenez pas à résoudre le Système de la.Les données.SqlClient (>= 4.1.0-rc3)' pour '.NETCoreApp,Version=v1.0'.
Ce que je suis perplexe, c'est que le package NuGet galerie qui lui est consacrée .NET de Base explicitement listes System.Data.SqlClient
disponibles.
Que pouvais-je faire pour ajouter une référence à System.Data.SqlClient
assemblée à mon projet et ont NuGet le télécharger?
Sur une note de côté, je suis en train de jouer autour de dans une plaine de la console avec seulement le dotnet
CLI outil. Est-il possible de gérer les dépendances d'un projet pour un .NET de Base du projet sans recourir à l'installation d'Ide?
- Pas exactement sûr de ce qui se passe là-bas, mais essayez la version
"4.1.0-*"
. Qui (dès à présent) pour une raison quelconque obtenir4.1.0-rc2-24027
qui fonctionne. - cela a marché, merci!
- Pour ceux à la recherche de ce post: je n'ai pas réussi à faire
System.Data.SqlClient
connecter à une instance de Microsoft SQL Server 2005 et déposé problème à propos de ce problème.
Vous devez vous connecter pour publier un commentaire.
Comme poke déjà annoté dans le commentaire est correct. Spécifier une version à
System.Data.SqlClient
fait de la restauration heureux 😉Pourquoi est-ce?
System.Data.SqlClient
existe dans le http://nuget.org galerie. Ne pas spécifier de version ("") n'est pas autorisée en dehors des limites d'un projet (comme un package nuget nourrir) et en spécifiant uniquement une star"*"
(vous ne devriez jamais faire cela, il permet de casser les changements) restaurer la meilleure version. Puisqu'il n'est pas stable, étoile ne sera pas trouver quoi que ce soit (il y a un peu de magie avec les tirets derrière). La version RC2 de cette bibliothèque est de le mentionné 4.1.0-rc2-24027 et quand vous demandez avec 4.1.0-rc2-* il aura le plus de la RC2 construit (mais il n'y a qu'un seul). En comparaisonSystem.Data.Common
a une sortie publique sur nuget.org pour l'Universel de la Plate-forme Windows et se trouve pour cette raison.La RC3 est la prochaine version, disponible uniquement sur le développeur de flux de de la .NET de Base et ASP.NET l'équipe de Base et non pas le public nuget nourrir. Vous ne devriez pas jouer avec eux.
"*"
) version de la dépendance sera toujours la dernière stable version d'un paquet. Donc, pourSystem.Data.Common
, vous obtenez4.0.0
; il n'y a pas un stableSystem.Data.SqlClient
bien que, de sorte que cela échoue. Vous pouvez confirmer que la version est en fait utilisé par la recherche à laproject.lock.json
après avoir faitdotnet restore
.System.Data.SqlClient
, NuGet sera en mesure de récupérer une autre version, trop, gardez-les dans l'endroit qu'elle les garde et le projet de construire des outils serez en mesure de choisir la liste version spécifique pour chaque projet? (Pas familier avec NuGet, désolé).dotnet restore
sera assurez-vous que les versions correctes sont disponibles pour chaque projet. Les paquets sont mis en cache localement dans%HOME%\.nuget\packages
, ou extraites comme nécessaire. Toute la beauté de l' .NET de Base est que vous ne dépend de ce que vous avez besoin au lieu de toujours en expédition avec le plein .NET Framework qui ne vient que dans quelques versions (et les mises à niveau affectant toutes les applications en cours d'exécution sur elle).si vous êtes dans le projet.fichier json, l'intellisense vous guider maintenant, si vous avez mis à jour de Visual studio avec les dernières outillage disponible..
J'ai ajouté ce qui suit dans les dépendances de l'élément et il fonctionne parfaitement..
"Du système.Les données.SqlClient": "4.1.0-rc2-24027",
Sur ma MENTHE 19 Tara, je n'utilise pas le Système.Les données.SqlClient mais la version la plus récente de Microsoft.Les données.SqlClient.
Vérifier nuget
Après la saisie de l' .NET-cli de commande, le colis a été téléchargé, et la référence a été ajouté au projet fichier csproj.
Dans le code, utiliser le nouvel espace de noms:
à l'aide de Microsoft.Les données.SqlClient;
La "régulière" code fonctionne: