Функция Azure в VSCode выдает ссылочные ошибки

0

Вопрос

Я настроил локальный проект функций Azure в VSCode в соответствии с приведенными здесь инструкциями https://docs.microsoft.com/en-us/azure/azure-functions/create-first-function-vs-code-csharp?tabs=in-process

Созданная шаблонная функция по умолчанию работает, когда я запускаю ее в VSCode, но я вижу ошибки ссылок в редакторе VSCode в соответствии с снимком экрана.

Например, когда я перехожу к определению класса HttpRequest, я не вижу метода запроса.

Как я могу это исправить?

Я выбрал следующие параметры: C#, .NET 6, HTTP-триггер, Анонимный, Добавить в рабочую область

Я установил .NET 6 SDK, инструменты функций Azure, расширение C#, расширение функций Azure.

Спасибо

enter image description here

Изменить: Точное сообщение, которое я получаю при наведении курсора мыши на одну из ссылочных ошибок, таково The type 'Attribute' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13 ...

azure-functions c# visual-studio-code
2021-11-23 22:21:08
2
0

Я попытался воспроизвести проблему:

  1. Во-первых, я выбрал папку своего рабочего пространства из VSCode, enter image description here

  2. Создал проект функции с помощью func init команда в терминале VS Code. enter image description here

  3. Создайте функцию с помощью func new команда в терминале, выбранная Http Trigger из выпадающего списка триггеров и с указанием имени функции как Hello.

enter image description here

  1. Нажмите на Hello.cs файл, затем вы получите боковое диалоговое окно в нижней части того же окна VS Code.

enter image description here

Нажмите на кнопку Восстановить.

или

enter image description here

Если вы получите два диалоговых окна, нажмите "Восстановить" и "Да", чтобы восстановить зависимости пакетов и функций NuGet, необходимые для этой среды. Вы также можете увидеть, что выходной терминал открывается сразу после нажатия кнопки "Восстановить".: enter image description here

После их добавления вы получите чистый безошибочный пользовательский интерфейс, как показано ниже:

enter image description here

Примечание:

  1. Если вы написали класс/функцию вручную в коде, пожалуйста, убедитесь, что вы переименовали имя класса функции как в коде, так и в проводнике файлов, например:

enter image description here

Обновленный Ответ:

В соответствии с вашими изменениями и комментариями я также установил .Net SDK версии 6 и проверил проект в VS Code, и я снова получил диалоговое окно восстановления с красными волнистыми линиями. После нажатия на опцию восстановления все красные волнистые линии исчезли, и это является доказательством концепции:

enter image description here

2021-11-24 06:24:28

спасибо за это подробное объяснение. Я повторил создание проекта точно так, как вы описали ( ранее я использовал боковую панель функций Azure в VSCode). Все выглядело точно так, как вы показываете, за исключением того, что в тот момент, когда я нажимаю кнопку "Восстановить", почти весь экран заполнен красными подчеркиваниями, и после того, как я нажму "Восстановить" (у меня есть только один диалог восстановления), Я остаюсь с тем, что показано на моем оригинальном снимке экрана.
Thed

После нажатия на кнопку Восстановить, вы должны избавиться от этой красной волнистой линии. Пожалуйста, проверьте каждый шаг один раз.
HariKrishnaRajoli-MT

Основываясь на способе создания функций azure в коде VS, вы получите либо только диалоговое окно восстановления пакетов nuget, либо как генератор расширений c#, так и диалоговое окно восстановления? Но если вы нажмете на восстановление в диалоговом окне, оно должно удалить красные волнистые линии, установив пакеты, ссылки и зависимости в этот проект.
HariKrishnaRajoli-MT

Нажатие кнопки Восстановить действительно решило многие проблемы, как я уже сказал, их могло быть больше, прежде чем я нажал Восстановить. Но это произошло как в первый раз, когда я создал проект, так и совсем недавно, когда я следовал вашим инструкциям
Thed

Вы установили последнюю версию основных средств функций Azure?
HariKrishnaRajoli-MT

Не могли бы вы подтвердить версию .net core, которую вы используете в проекте функций azure, например .Изолированное сетевое ядро 3 LTS или .Net 5?
HariKrishnaRajoli-MT

Я создал функцию двумя различными способами. В первый раз я создал функцию с помощью функций Azure на боковой панели VSCode и смог выбрать .NET 6, который я только что установил. Когда я критиковал, используя func init команда, как вы описали выше, единственными опциями, которые у меня были, были .NET 5, .NET 5 isolate и .NET 3.1 Core. Я выбрал .NET 5. В любом случае, я решил эту проблему. Я опубликую подробности в ответе. Спасибо за вашу помощь.
Thed
0

Я действительно решил эту проблему, хотя и не знаю точно, как/ почему, поэтому я просто опубликую то, что я сделал, на случай, если это поможет кому-то другому.

Во-первых, я удалил расширение Microsoft C# и переустановил его. Я не думаю, что это имело какой-либо эффект, и, похоже, это не решило проблему, я просто упоминаю об этом, поскольку я упомяну все, что я сделал.

Когда я погуглил ошибку, которая есть в моем редактировании выше The type 'Attribute' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13 Я нашел некоторые ссылки на средство/ библиотеку сборки MS, поставляемую с Visual Studio (не VS Code), в отношении .NET 6 и того, как для .NET 6 требуется определенная версия утилиты сборки.

Рекомендация состояла в том, чтобы обновить Visual Studio (не VSCode), которую я уже установил и которая обновила бы сборку MS.

Я на самом деле не совсем понял из того, что прочитал, но я обновил свою установку Visual Studio Community 2019 в надежде, что она обновит сборку MS, и, похоже, это сработало.

Я ожидаю, что есть другой способ сделать это без Visual Studio, но я выбрал этот способ, так как он все равно был установлен.

И последнее, что я сделал, это лег в постель и поспал, а утром проверил еще раз.

Не могу точно сказать, какая из трех вещей сработала :)

2021-11-24 03:12:50

Вы пробовали использовать VS-код без установки Visual Studio? Он будет работать в коде VS, но для этого потребуется несколько предварительных условий, таких как расширение функций Azure, основные инструменты функций Azure, расширение C#, установки для конкретных языков, такие как .Net Core, Python, фреймворки Node Js и т.д.
HariKrishnaRajoli-MT

Если мой ответ был полезен, не могли бы вы, пожалуйста, принять его как ответ, чтобы другие, столкнувшиеся с той же проблемой, могли найти это решение и решить свою проблему.
HariKrishnaRajoli-MT

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................