【问题标题】:How do I specify language and architecture when installing a NuGet package?安装 NuGet 包时如何指定语言和体系结构?
【发布时间】:2017-08-13 04:27:42
【问题描述】:

当我将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 只获取我需要的语言资源和我需要的架构?

【问题讨论】:

    标签: .net visual-studio-2015 nuget packages nuget-package


    【解决方案1】:

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

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

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

    【讨论】:

    • 下次在Visual Studio中打开项目时,删除的文件会被下载恢复吗?
    • @sharptooth,否,NuGet 根据 package.config/project.json 中的包 ID、Version 和 targetFramework 还原包,而不是检查包的全部内容。所以当前项目不需要的那些文件将不会被恢复。
    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多