Поскольку я хочу использовать матрицы в своей программе, я добавил библиотеку Math.NET через NuGet в Visual Studio 2015. Однако, хотя я вижу файлы библиотеки в папке Project References, VS, похоже, не распознает ни одну из ссылок. к этому. Автозаполнение не предложит MathNet при написании команды using, и, конечно же, не распознает ни один из классов из этого пространства имен. Есть ли еще шаги, которые я пропустил?
Почему я не могу получить доступ к пространству имен, добавленному через NuGet?
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, она отлично работает на моей машине, я напишу здесь подробные шаги, чтобы вы могли проверить разницу, а затем найти помощь.
Подробные шаги:
- Создайте новый пустой проект библиотеки классов С#.
- Добавьте пакет
MathNet.Numerics
в проект с помощью NuGet. - Откройте файл .cs, добавьте
using MathNet.Numerics
и создайте экземпляр класса "Permutation" (большинство классов являются статическими классами).
person
Leo Liu-MSFT
schedule
03.08.2017
Заметив, что класс Permutation работает нормально, я понял, что IDE распознает классы Vector и Matrix, если я писал с использованием MathNet.Numerics.LinearAlgebra. Разве компилятор не включает всю подпапку при импорте библиотеки?
- person König Nickerchen; 04.08.2017
@KönigNickerchen, теперь вы можете получить доступ к пространству имен, добавленному через NuGet? Если приведенный выше ответ разрешает ваш вопрос, вы можете пометить его как ответ, чтобы он мог помочь другим членам сообщества, у которых возникают те же проблемы. Если нет, дайте мне знать ваш вопрос. Спасибо.
- person Leo Liu-MSFT; 04.08.2017