安装 NuGet 包时如何指定语言和体系结构?

How do I specify language and architecture when installing a NuGet package?

当我将 Install-Package 用于 Microsoft.Data.Service.Client 版本 5.6.4 时,我下载并添加了以下内容:

Microsoft.Data.Services.Client.5.6.4.nupkg
lib/net40/Microsoft.Data.Services.Client.dll
lib/net40/Microsoft.Data.Services.Client.xml
lib/net40/de/Microsoft.Data.Services.Client.resources.dll
lib/net40/es/Microsoft.Data.Services.Client.resources.dll
[THE SAME FOR MANY, MANY MORE LANGUAGES]
lib/portable-net45+wp8+win8+wpa/Microsoft.Data.Services.Client.dll
lib/portable-net45+wp8+win8+wpa/Microsoft.Data.Services.Client.xml
lib/portable-net45+wp8+win8+wpa/de/Microsoft.Data.Services.Client.resources.dll
lib/portable-net45+wp8+win8+wpa/es/Microsoft.Data.Services.Client.resources.dll
[THE SAME FOR MANY, MANY MORE LANGUAGES]
lib/sl4/Microsoft.Data.Services.Client.dll
lib/sl4/Microsoft.Data.Services.Client.xml
lib/sl4/de/Microsoft.Data.Services.Client.resources.dll
lib/sl4/es/Microsoft.Data.Services.Client.resources.dll
[THE SAME FOR MANY, MANY MORE LANGUAGES]

如您所见,当我只需要英语资源时我得到了大量的资源模块,而当我只需要一个(我猜是.NET4)时我得到了大量的体系结构。当许多包发生这种情况时,我会得到大约 200 兆字节的不需要的二进制文件。

是否可以告诉 NuGet 只获取我需要的语言资源和我需要的体系结构?

Is it possible to tell NuGet to just get the language resources I need and only the architectures I need?

答案是否定的。 NuGet 是 Microsoft 开发平台(包括 .NET)的包管理器。 Nuget只能对包进行整体管理,在安装包的时候不能分离包内部文件。也就是说,我们在安装包的时候不能按照语言和框架将包分离成单独的包。安装包。

解决这个问题,我们可以手动删除package文件夹中不需要的语言资源和architectures资源。