【发布时间】:2018-07-27 01:23:47
【问题描述】:
我有一个问题,以便更好地理解NuGet 包、packages.config 和.csproj 文件。
据我了解,默认包管理格式的 NuGet 包管理器 >> 常规中的设置决定了您的项目是使用 packages.config 还是 .csproj 文件来解析和恢复包。
在我的项目中,我们选择了 Packages.config。
编译和运行没问题。因此,我决定测试它是否会在没有 dll 引用的情况下运行 .csproj 文件,因为我的理解是它不需要或不需要它。这是一个不正确的假设,就好像包在 packages.config 文件中一样,当我删除 .csproj 文件中的引用时,我的项目中出现错误,项目无法编译。
我还注意到,如果 dll 不在 Solution Explorer 的引用中,它也无法编译(我假设这些是 .csproj 引用)。
所以我不清楚.csproj 文件对于Packages.config 管理格式NuGet 包的作用以及Solution Explorer 中的引用。
【问题讨论】:
-
100% 明确:您是在谈论 .NET Framework 还是 .NET Standard/Core?
-
当您向项目添加 Nuget 包引用时,Packages.config 被修改以显示更新项目正在使用的 Nuget 包列表,并修改 .csproj 文件以添加库的路径属于包。因此,如果您手动修改 .csproj 文件并删除 DLL 引用,它将彻底中断,因为在 packages.config 中具有条目与将引用添加到 .csproj 文件中是不同的。 Nuget 包有多个针对不同 .NET 框架的库,因此当您添加包时,.csproj 文件将引用适当的库。
-
@john 是.Net Framework
-
所以我的下一个问题是为什么 Nuget 在我恢复包时不会在 .csproj 文件的引用中添加条目?这只是偶尔发生的小故障吗?
-
我刚刚将最后一条评论编辑为 *not
标签: c# .net nuget packages.config