2017-08-28 153 views
0

一个NuGet包发布了很多很多程序集。不需要在Visual Studio中的*.csproj中引用NuGet程序包中的所有程序集。 Visual Studio如何确定要引用哪个程序集?这是在nuget.exe中的逻辑还是在一些NuGet API中?visual studio如何知道NuGet包中的哪些程序集可供参考?

+0

你是什么意思“不需要引用”?你指的是计算传递依赖的新的csproj格式吗? –

+0

@MartinUllrich为了清晰起见,我编辑了这个问题。 – rasx

回答

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}] 

然后,我们将使用的NuGet API在Visual Studio安装程序包到项目,它试图比赛程序集框架名称与项目目标框架

此外,Visual Studio的NuGet包管理器是nuget.exe和nuget API的组合实例,因此Visual Studio知道NuGet包中的哪些程序集可供引用。

有关更多详细信息,请参阅NuGet文档Supporting multiple .NET framework versions

+0

如果你想要“更正确”,那么当你不希望'lib /'中的所有东西被引用或诱饵和开关包时'ref /'文件夹。 –

+0

你的答案有指示我在这里:https://github.com/NuGet/Home/issues/3062 – rasx

+0

scriptcs人写道这没有Visual Studio的担忧:https://github.com/scriptcs/scriptcs/blob/76ec57b642be836eaa7fd2a9ffa10fb1f9a60eae/src/ScriptCs。主机/封装/ NugetInstallationProvider.cs – rasx

相关问题