为库项目安装的 nugets 是否也应该安装到
申请项目?
这取决于你。当然,将nuget包添加到主项目中并不麻烦,不会造成任何问题,简单方便,但是当您注意以下几点时,无需另外添加nuget包.
在所有这些之前,有两种方法可以引用 nuget 包:packages.config format 和 PackageReference format。
Packages.config 格式用于旧的 net framework 项目,而PackageReference 格式用于新的 sdk 样式项目(net core 和 net standard)。
不过 net framework项目也可以使用PackageReference(可以通过Tools-->Options-->Nuget Package Manager-->General-->Package Management切换),net core和net standard项目不能使用Packages.config格式。
建议
1) 如果库项目是Net framework,实际上,你应该使用将相同的nuget添加到主项目中,在某些情况下,这些dll可以复制到你的MyApp 项目的输出路径,
然而,如果你仍然想在代码编辑器中使用这些 dll,intellisense 不会列出它,在这种情况下,你应该在主项目中安装相同的 nuget 包。
进一步,只有这两个项目都使用PackageReference格式(Net Framework library project with PackageReference and MyApp Net Framework project with PackageReference)
2) 如果您的库项目是 Net Standard(PacakgesReference nuget 格式),并且您的 MyApp 项目是 Net Framework 和 packages.config,则 dll 将丢失在主项目中。解决方法是在 MyApp.csproj 文件中添加这些节点:
<PropertyGroup>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
</PropertyGroup>
然后你会在主项目中得到智能感知。
-----------------------------------
或者你的Myapp项目是带有PackageReference格式的网络框架,你不应该添加那个节点,你可以直接获得你想要的。
如果MyApp项目是Net Core(PackageReference),你就不用担心这个了。
=================================
结论
为了满足你的要求,你最好使用Net Standard库项目,而你的MyApp项目最好使用PackageReference nuget管理格式(Net Core或@ 987654343@ 带有 PackageReference 格式)。
另外,您应该将您的VS更新到最新版本以获得更好的体验,以防有一些重要的修复。另外还有a similar issue可以参考。