发布了一个包含许多程序集的NuGet包。并非所有NuGet包中的程序集都需要在Visual Studio的*.csproj
中引用。 Visual Studio如何确定要引用的程序集?是nuget.exe中的逻辑还是在某些NuGet API中?
答案 0 :(得分:2)
Visual Studio如何确定要引用的程序集?是nuget.exe中的逻辑还是在某些NuGet API中?
此确定应该是Visual Studio中nuget.exe和NuGet API的组合。 Visual Studio使用NuGet.exe下载软件包,然后使用NuGet API in Visual Studio将相应的程序集安装到项目中。
首先,当使用基于约定的工作目录时,NuGet支持将同一个库的多个版本放在一个包中。因此,我们将使用不同的区分大小写的框架名称来专门针对包含lib
下的子文件夹的多个框架:
lib\{framework name}[{version}]
然后我们将在Visual Studio中使用NuGet API将软件包安装到项目中,它会尝试将程序集的框架名称与项目的目标框架相匹配。
此外,Visual Studio的NuGet包管理器是nuget.exe和nuget API组合的实例,因此Visual Studio知道NuGet包中的哪些程序集要引用。
您可以参考NuGet文档Supporting multiple .NET framework versions了解更多详细信息。