Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NuGet软件包如何知道其“using”指令?_C#_Visual Studio_.net Core_Nuget_Nuget Package Restore - Fatal编程技术网

C# NuGet软件包如何知道其“using”指令?

C# NuGet软件包如何知道其“using”指令?,c#,visual-studio,.net-core,nuget,nuget-package-restore,C#,Visual Studio,.net Core,Nuget,Nuget Package Restore,有点背景。我对NuGet软件包管理器系统比较陌生,但到目前为止,我已经安装了一些软件包 关于NuGet,我的问题是如何知道如何使用using指令引用已安装的包 我知道NuGet包在NuGet包管理器中有一个描述。但是,它们并不总是显示如何导入包。因此,我通常会在谷歌上搜索我安装的软件包的示例,看看是否有一个示例显示了使用指令导入该软件包的 最近我安装了Selenium.WebDriver.PhantomJS.Xplatform包,我很难在网上找到显示包所在位置以及如何导入包的示例。通常nuget

有点背景。我对NuGet软件包管理器系统比较陌生,但到目前为止,我已经安装了一些软件包

关于NuGet,我的问题是如何知道如何使用
using
指令引用已安装的包

我知道NuGet包在NuGet包管理器中有一个描述。但是,它们并不总是显示如何导入包。因此,我通常会在谷歌上搜索我安装的软件包的示例,看看是否有一个示例显示了使用指令导入该软件包的


最近我安装了Selenium.WebDriver.PhantomJS.Xplatform包,我很难在网上找到显示包所在位置以及如何导入包的示例。

通常nuget包有一个github存储库或一个网站。 有时您可以找到示例,有时您必须浏览源代码

我访问了他们的Github存储库,发现他们使用的名称空间之一是:
OpenQA.Selenium


您可以检查它们的源代码。

问题在于NuGet软件包可以包含零个或多个程序集,这些程序集可以作为对安装它的项目的引用添加。因此,包和程序集之间没有一对一的关系;名称空间和程序集之间不存在名称空间(一个程序集可以包含多个名称空间,或者同一名称空间可以由多个程序集使用),因此包名和其中程序集的名称之间也不存在名称空间

所以:你必须知道你在做什么。您选择安装Selenium.WebDriver.PhantomJS.Xplatform
是有原因的。一定是有人叫你这么做的,或者你一定是在什么地方读到你应该这么做的

当您听到或读到“您应该安装包
Foo
!”时,该源代码还应该为您提供如何使用这些包中包含的类型的示例。这就是您应该读取要导入哪些名称空间的地方

有些库也不需要任何代码来运行;它们像插件一样添加到其他库中,您应该已经准备好使用它们

当我输入using指令时,它告诉我类型或名称空间 名字

以上描述了如何使用指令了解
的详细信息,因此添加一些详细信息,以澄清nuget不负责的原因、VS中负责的内容以及智能感知(选项)可以为我们做些什么

NuGet软件包如何使用
指令了解其

VS中的Nuget只是一个
包管理器
,它不知道使用
指令的

对于大多数nuget包,它们至少包含一个程序集,当您使用该包时,实际上是从该包添加对程序集的引用。因此,相当于您有一些由某人开发的程序集,然后您在项目中本地引用它们(add=>reference=>browse)。因此,在这种情况下,Nuget将不知道如何使用
的程序集

(这里我们只讨论包中的程序集,nuget包从其install.ps1、build content中有更多的优势…)

在VS中为您实际做的是,它负责使用代码编辑器中的
语句识别您的
,并帮助提供快速信息建议。(使用名称空间添加,导入引用…)


您谈论的函数是
Intellisense
,而不是
Nuget
,Intellisense用于检查如果您的
using
指令正确,它将搜索您使用的命名空间是否存在于引用的程序集中,但它只会显示错误(如果找不到)或正确,它不会告诉您如何使用程序集以及在程序集中定义了什么名称空间!这是您需要浏览源代码或研究示例的内容,如VyacheslavCodeCaster回答。

当您使用Selenium.WebDriver.PhantomJS.Xplatform放置
时会发生什么在代码文件的顶部?为了清楚起见,您不需要使用“导入”任何内容。使用是唯一的简写,在使用特定类型时不必键入整个名称空间。如果您有一个使用NuGet包中的类型的代码,那么您已经知道它们在什么名称空间中了。如果您没有这样的代码,那么为什么还要导入NuGet包呢?我不会将此作为答案发布,但您可以尝试使用NuGet包资源管理器。这可能接近你需要的。嗨,朋友,CodeCaster的回答有助于解决这个问题吗?或者,您可以添加一个名称空间来共享您找到的有用信息和解决方法,只需提醒:)@LanceLi MSFT我无法引入名称空间的问题是。非常感谢大家,这里给出的所有答案都帮助了我,解决了我的问题。