.Net Core:使用指令而不添加包?
.Net Core: Using Directive Without Adding Package?
例如,当我在 Startup.cs 文件中添加配置 (IConfigurationRoot) 时,这发生在我身上,以便能够访问具有连接字符串的 appsettings.json 文件。
所以我第一次写IConfigurationRoot时明显标记为无法识别,所以我将鼠标放在它上面并展开灯泡的Visual Studio建议,它们是:
- 使用 Microsoft.Extension.Configuration:
- Microsoft.Extension.Configuration.IConfigurationRoot
- 生成类型
- 添加包 Microsoft.Extension.Configuration.Abstractions 1.1.0
因此,如果我选择 "using Microsoft.Extensions.Configuration",则会在我的文件顶部添加一个 using 指令,并且 VS 会识别 IConfigurationRoot,一切正常。但是查看我项目中的References,并没有添加这个库:
No Reference Added
所以如果我没有选择 using 指令,而是选择 "Add package Microsoft.Extensions.Configuration.Abstractions 1.1.0",Visual Studio 也添加了 using 指令,但另外它添加了一个新的参考:
Reference Added
我不明白为什么会这样,为什么添加 using 指令(第一个建议)工作正常,是因为引用已经包含在另一个库中了吗?如果是这样,我为什么要单独添加包? .单独添加它更好吗?,如果我这样做会发生什么,我是否添加了对同一个库的引用两次?
提前致谢。
...是因为引用已经包含在另一个库中了吗?
是的,在 Microsoft.Extensions.Configuration.FileExtensions 或 Microsoft.Extensions.Configuration.Json 下查看,您最终会找到抽象包。
如果是这样,为什么要单独添加包?
没有必要。灯泡工具可能跟不上整个包依赖项的速度。
是不是单独添加比较好?
不一定,但是如果您删除了其中一些基础包,然后从 Nuget 中单独添加它会确保它会保留。
如果我这样做会发生什么,我是否添加了对同一个库的引用两次?
以间接的方式,是的,但没有坏处。依赖关系树视图深入到每一层的依赖关系。如果开始扩展这些节点,您会看到很多 "duplicates"。
例如,当我在 Startup.cs 文件中添加配置 (IConfigurationRoot) 时,这发生在我身上,以便能够访问具有连接字符串的 appsettings.json 文件。
所以我第一次写IConfigurationRoot时明显标记为无法识别,所以我将鼠标放在它上面并展开灯泡的Visual Studio建议,它们是:
- 使用 Microsoft.Extension.Configuration:
- Microsoft.Extension.Configuration.IConfigurationRoot
- 生成类型
- 添加包 Microsoft.Extension.Configuration.Abstractions 1.1.0
因此,如果我选择 "using Microsoft.Extensions.Configuration",则会在我的文件顶部添加一个 using 指令,并且 VS 会识别 IConfigurationRoot,一切正常。但是查看我项目中的References,并没有添加这个库:
No Reference Added
所以如果我没有选择 using 指令,而是选择 "Add package Microsoft.Extensions.Configuration.Abstractions 1.1.0",Visual Studio 也添加了 using 指令,但另外它添加了一个新的参考:
Reference Added
我不明白为什么会这样,为什么添加 using 指令(第一个建议)工作正常,是因为引用已经包含在另一个库中了吗?如果是这样,我为什么要单独添加包? .单独添加它更好吗?,如果我这样做会发生什么,我是否添加了对同一个库的引用两次?
提前致谢。
...是因为引用已经包含在另一个库中了吗?
是的,在 Microsoft.Extensions.Configuration.FileExtensions 或 Microsoft.Extensions.Configuration.Json 下查看,您最终会找到抽象包。
如果是这样,为什么要单独添加包?
没有必要。灯泡工具可能跟不上整个包依赖项的速度。
是不是单独添加比较好?
不一定,但是如果您删除了其中一些基础包,然后从 Nuget 中单独添加它会确保它会保留。
如果我这样做会发生什么,我是否添加了对同一个库的引用两次?
以间接的方式,是的,但没有坏处。依赖关系树视图深入到每一层的依赖关系。如果开始扩展这些节点,您会看到很多 "duplicates"。