2017-06-27 2 views
-2

J'essaye de construire la bibliothèque, FLURL, trouvée ici sur github: Flurl, an HTTP extension library, sur ma machine avec la version Visual Studio 2017 Enterprise. J'ai sélectionné toutes les options Xamarin, toutes les options C# mais aucune des options C++ (ce qui ne devrait pas avoir d'importance, c'est une bibliothèque C#). J'ai rencontré de nombreux échecs de NuGet pour mettre à jour certaines bibliothèques, en particulier celles de MS elle-même. Si cela peut vous aider, je peux les poster plus tard, mais je ne veux pas encombrer la question à ce moment-ci.Comment flurl peut-il être construit dans Visual Studio 2017?

Je dois mettre à jour la bibliothèque parce que je suis engagé dans une condition de bord en utilisant la bibliothèque Flurl avec T4 - J'appelle un script T4 en utilisant Flurl (peu importe pourquoi, ce n'est pas important). Le problème que je suis en train de faire est que le reste de ma bibliothèque (un morceau significatif de code dans son propre droit) utilise Newtonsoft Json v 10. Flurl est limité à 9.x. Alors que .NET peut gérer les différences et charger les bibliothèques au besoin, T4 ne le peut pas. Il ne peut charger qu'une seule version à la fois et j'obtiens donc une erreur non trouvée lorsque j'essaie de charger la v10 ou une erreur de méthode manquante lorsque je tente de charger les deux via des chemins séparés. T4 exige que l'on charge spécifiquement les paquets en utilisant une commande interne et il n'y a pas de disposition pour charger plusieurs versions de la même bibliothèque. Donc, jusqu'à ce qu'il y ait une mise à jour "officielle" qui utilise la dernière et la plus grande des bibliothèques MS et Newtonsoft, l'idée était de construire une variante locale, de la placer dans mon référentiel de serveurs NuGet local et de l'utiliser jusqu'à la mise à jour officielle est sorti. Seulement je ne peux pas à cause des erreurs susmentionnées. Donc, si quelqu'un peut aider à construire la bibliothèque flurl, parce qu'ils ont déjà et savent ce que sont les trucs, je l'apprécierais. Mon environnement actuel a été construit spécifiquement pour cela (je dois aimer VMWare) donc j'ai le créateur de Win 10, VS2017 avec toutes les dernières mises à jour.

Comment puis-je obtenir flurl pour construire?

Mise à jour: L'auteur m'a très gentiment averti d'une mise à jour du code, cependant, je ne suis toujours pas capable de le construire après le processus de compilation (attendu) de simplement cloner la source dans un fichier .zip. , en copiant l'arborescence des sources de flurl, en ouvrant le fichier flurl .sln dans VS2017 et en cliquant sur "rebuild". Toutes les erreurs sont dans un seul fichier, PackageTester.Shared.Tester.cs. Mon VS se plaint amèrement de l'absence d'une référence à "flurl" lui-même. Et, en effet, la liste de référence montre en effet que flurl et flurl.http sont "manquants". Je suppose que je pourrais "réparer" ceci en allant à NuGet et en récupérant la dernière flurl, cependant, je suis frappé par le problème classique de "poulet et oeuf" en ce sens que j'ai besoin de flurl pour compiler flurl? Alors que je m'assieds ici en rigolant, je me demande comment je devrais régler ce dernier petit problème pour réussir à développer cette fléau et continuer à utiliser cette merveilleuse bibliothèque. Pour éviter toute interprétation sarcastique potentielle, je suis assez sérieux - j'aime vraiment Flurl et c'était douloureux pour moi d'avoir à écrire une solution de contournement à mon problème T4. Je l'ai fait mais je préfère utiliser cette excellente bibliothèque et ne pas avoir à me soucier de telles choses. Alors ... si l'auteur voulait gentiment offrir une solution à cette dernière petite bizarrerie, je serais un gars heureux!

Mise à jour mise à jour: Après avoir examiné la source du paquet et vu qu'elle était configurée sur api.nuget.org et non sur "tout", j'ai changé le réglage, restauré les paquets et maintenant tout va bien. La bibliothèque réussit à générer. Il serait bon de savoir comment construire flurl sans flurl, mais c'est secondaire maintenant que j'ai une bibliothèque qui fera le travail et, plus important encore, utilise la même version de Newtonsoft.Json que ma bibliothèque utilise et donc mon environnement T4 le problème devrait maintenant être résolu.

+0

J'ai supprimé tous les commentaires car ils n'avaient rien à voir avec la question elle-même. – Oded

+0

Excuses pour le retard, je n'ai pas été informé du commentaire mis à jour jusqu'à hier et pas du tout de votre réponse fournie (et j'ai abandonné la vérification après deux semaines de silence). Cependant, la réponse est toujours non et voici pourquoi. Je viens d'aller chercher la source flurl, j'ai ouvert le fichier .sln dans VS2017 et j'ai tapé rebuild. Je suppose * (et nous savons tous ce que cela signifie) que c'est tout ce dont j'ai besoin. Cependant, j'ai reçu 8 erreurs, toutes provenant de PackageTester_461. Je vais essayer d'envoyer la capture d'écran ici quelque part. – Fred

+0

Si vous modifiez la source à vos propres fins, il suffit de se débarrasser de tout sous PackageTesters. Ils existent seulement pour vérifier (quelque peu manuellement) que les paquets NuGet téléchargent et installent correctement pour différentes plateformes. Ce n'est pas pertinent pour ce que vous faites, alors laissez tomber. (Bien que, à votre point, ils devraient probablement être exclus de la solution construite dans le rapport officiel.) –

Répondre

2

Certaines imperfections liées à PCL nous empêchaient d'effectuer la mise à niveau vers 2017, mais celles-ci ont finalement été résolues. La dernière version (qui vient d'être lancée aujourd'hui) est une solution VS2017.