首页 > 解决方案 > NuGet 包本地化对抗

问题描述

我不确定我是否遗漏了一些明显的东西,或者我只是没有获得 NuGet 资源策略。根据https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package ,资源 (.resource.dll) 在创建包时默认被排除:

事实上,资源是一个特例。将包安装到项目中时,NuGet 会自动将程序集引用添加到包的 DLL 中,不包括那些名为 .resources.dll 的引用,因为它们被假定为本地化附属程序集(请参阅创建本地化包)。因此,请避免将 .resources.dll 用于包含基本包代码的文件。

但是,上面代码片段 ( https://docs.microsoft.com/en-us/nuget/create-packages/creating-localized-packages ) 中引用的文档说明了创建本地化 NuGet 包的两种方法:

有两种方法可以创建库的本地化版本:

  1. 将所有本地化资源程序集包含在一个包中。
  2. 按照一组严格的约定创建单独的本地化卫星包。

两种方法都有其优点和缺点,如以下部分所述。

虽然我了解了这两种方法的优点和缺点,但我不明白为什么在从 .csproj 项目创建 NuGet 包时没有选项可以简单地包含资源文件(即使用选项 1。)。

我的目标是能够做到:

对我来说,这听起来像是一个普遍的要求,我很难想象这是不可能的。我错过了什么?

标签: localizationnuget

解决方案


推荐阅读