Почему я не могу получить доступ к пространству имен, добавленному через NuGet?

Поскольку я хочу использовать матрицы в своей программе, я добавил библиотеку Math.NET через NuGet в Visual Studio 2015. Однако, хотя я вижу файлы библиотеки в папке Project References, VS, похоже, не распознает ни одну из ссылок. к этому. Автозаполнение не предложит MathNet при написании команды using, и, конечно же, не распознает ни один из классов из этого пространства имен. Есть ли еще шаги, которые я пропустил?


person König Nickerchen    schedule 02.08.2017    source источник
comment
Проверьте ссылки — успешно ли добавлена ​​ссылка на Meth.NET и нет ли желтого восклицательного знака.   -  person Piotr    schedule 02.08.2017
comment
вы видите это в своих ссылках?   -  person Capn Jack    schedule 02.08.2017
comment
Вы установили пакет в правильный проект? возможно, у вас был выбран другой проект при установке пакета nuget   -  person DontThinkJustGo    schedule 02.08.2017
comment
И просто чтобы убедиться, что это ясно - хотя некоторые соглашения имеют тенденцию соблюдаться, имена пакетов NuGet, имена сборок и пространства имен, содержащиеся в любой конкретной сборке, являются тремя ортогональными понятиями. Вы не добавляете пространство имен через NuGet, вы добавляете пакет.   -  person Damien_The_Unbeliever    schedule 02.08.2017
comment
Насколько я могу судить, все вроде бы в порядке - он в правильном проекте, и я не вижу никаких предупреждений. Вот скриншот: ссылка   -  person König Nickerchen    schedule 02.08.2017
comment
@KönigNickerchen, какие-нибудь обновления по этой проблеме? Вы решили это? Если нет, пожалуйста, дайте мне знать последнюю информацию об этом.   -  person Leo Liu-MSFT    schedule 04.08.2017
comment
@Leo-MSFT Я понял, что использование явно не включает дочерние пространства имен, поэтому после использования MathNet.Numerics.LinearAlgebra вместо этого IDE распознала новые типы объектов.   -  person König Nickerchen    schedule 04.08.2017


Ответы (2)


Хотя я до сих пор не могу сказать, почему автозаполнение не предложило пространство имен (даже несмотря на то, что после попытки его создания оно все же появилось в предложениях), я могу подтвердить, что источником моей проблемы было то, что матрицы и векторы должны быть импортируется с помощью MathNet.Numerics.LinearAlgebra, а не MathNet.Numerics.

person König Nickerchen    schedule 04.08.2017

Почему я не могу получить доступ к пространству имен, добавленному через NuGet?

Возникает ли ошибка, когда вы добавляете команду using:using MathNet.Numerics;?

Не уверен, почему автозаполнение не предлагает MathNet, когда вы пишете команду using, она отлично работает на моей машине, я напишу здесь подробные шаги, чтобы вы могли проверить разницу, а затем найти помощь.

Подробные шаги:

  1. Создайте новый пустой проект библиотеки классов С#.
  2. Добавьте пакет MathNet.Numerics в проект с помощью NuGet.
  3. Откройте файл .cs, добавьте using MathNet.Numerics и создайте экземпляр класса "Permutation" (большинство классов являются статическими классами).

введите здесь описание изображения

person Leo Liu-MSFT    schedule 03.08.2017
comment
Заметив, что класс Permutation работает нормально, я понял, что IDE распознает классы Vector и Matrix, если я писал с использованием MathNet.Numerics.LinearAlgebra. Разве компилятор не включает всю подпапку при импорте библиотеки? - person König Nickerchen; 04.08.2017
comment
@KönigNickerchen, теперь вы можете получить доступ к пространству имен, добавленному через NuGet? Если приведенный выше ответ разрешает ваш вопрос, вы можете пометить его как ответ, чтобы он мог помочь другим членам сообщества, у которых возникают те же проблемы. Если нет, дайте мне знать ваш вопрос. Спасибо. - person Leo Liu-MSFT; 04.08.2017