Как можно создать flurl в Visual Studio 2017?
Я пытаюсь собрать библиотеку FLURL, найденную здесь на github: Flurl, библиотеку расширений HTTP, на моем компьютере с версией Visual Studio 2017 Enterprise. Я выбрал все параметры Xamarin, все параметры C#, но ни один из параметров C++ (что ни в коем случае не должно иметь значения, это библиотека C#). Я сталкивался с многочисленными сбоями NuGet при обновлении определенных библиотек, особенно тех, что принадлежат самой MS. Если это поможет, я могу опубликовать их позже, но не хочу загромождать вопрос в данный момент.
Мне нужно обновить библиотеку, потому что я участвую в граничном состоянии с использованием библиотеки Flurl с T4 - я вызываю скрипт T4 с использованием Flurl (не говоря уже о том, почему, это не важно). Проблема, с которой я сталкиваюсь, заключается в том, что остальная часть моей библиотеки (значительная часть кода сама по себе) использует Newtonsoft Json v 10. Flurl ограничен версией 9.x. Хотя.NET может обрабатывать различия и загружать библиотеки по мере необходимости, T4 не может. Он может загружать только одну версию за раз, и поэтому я получаю либо не найденную ошибку при попытке загрузить v10, либо ошибку отсутствующего метода при попытке загрузить обе версии по разным путям. T4 требует, чтобы кто-то специально загружал пакеты с помощью внутренней команды, и нет условий для загрузки нескольких версий одной и той же библиотеки.
Так что... пока не появилось "официальное" обновление, которое использует последние и самые лучшие из библиотек MS и Newtonsoft, идея заключалась в том, чтобы создать локальный вариант, поместить его в мой локальный репозиторий NuGet-сервера и использовать его, пока не вышло официальное обновление из. Только я не могу из-за вышеупомянутых ошибок. Так что, если кто-то может помочь в создании библиотеки flurl, потому что у них уже есть и знают, что такое хитрости, я был бы признателен. Моя текущая среда была создана специально для этого (должен любить VMWare), поэтому у меня есть создатель Win 10, VS2017 со всеми последними обновлениями.
Как я могу заставить flurl строить?
Обновление: автор очень любезно уведомил меня об обновлении кода, однако я все еще не могу собрать его после (ожидаемого) процесса компиляции простого клонирования исходного кода в.zip, открытия.zip, копирования flurl дерево исходников, открывая файл flurl.sln в VS2017 и нажимая кнопку "перестроить". Все ошибки находятся в одном файле PackageTester.Shared.Tester.cs. Мой VS горько жалуется на отсутствие ссылки на сам "флерл". И действительно, список ссылок действительно показывает, что flurl и flurl.http "отсутствуют". Я полагаю, что я мог бы "исправить" это, перейдя в NuGet и загрузив последнюю версию flurl, однако меня поразила классическая проблема "курица и яйцо" в том, что мне нужна flurl для компиляции flurl? Пока я сижу здесь и смеюсь, мне интересно, как мне решить эту последнюю небольшую проблему, чтобы успешно создать flurl и продолжить использовать эту замечательную библиотеку. Чтобы избежать любой потенциальной интерпретации сарказма, я достаточно серьезен - мне действительно нравится flurl, и мне было больно писать обходной путь к моей проблеме T4. Я сделал это, но я бы предпочел использовать эту превосходную библиотеку и не беспокоиться о таких вещах. Так что... если бы автор любезно предложил исправить эту последнюю причуду, я был бы счастливым парнем!
Обновленное обновление: после изучения источника пакета и проверки его установки на api.nuget.org, а не на "все", я изменил настройку, восстановил пакеты и теперь все в порядке. Библиотека успешно строится. Было бы неплохо знать, как создавать flurl без flurl, но сейчас это второстепенно, так как у меня есть сборка библиотеки, которая выполнит эту работу и, что более важно, использует ту же версию Newtonsoft.Json, которую использует моя библиотека и, таким образом, мою среду T4 Теперь проблема должна быть решена.
1 ответ
Были некоторые причуды, связанные с PCL, которые мешали нам перейти на 2017 год, но они, наконец, были решены, поэтому последняя версия (только что выпущенная сегодня) является решением VS2017.