localization - 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 包的两种方法:
有两种方法可以创建库的本地化版本:
- 将所有本地化资源程序集包含在一个包中。
- 按照一组严格的约定创建单独的本地化卫星包。
两种方法都有其优点和缺点,如以下部分所述。
虽然我了解了这两种方法的优点和缺点,但我不明白为什么在从 .csproj 项目创建 NuGet 包时没有选项可以简单地包含资源文件(即使用选项 1。)。
我的目标是能够做到:
- 使用本地化资源创建/更新/补充库项目
foo.csproj
并构建它 - 通过它创建一个 NuGet 包
nuget.exe pack foo.csproj <Maybe some Parameters>
- 将新创建的 NuGet 包添加/更新到另一个项目
bar.csproj
并foo.csproj
自动包含 的资源
对我来说,这听起来像是一个普遍的要求,我很难想象这是不可能的。我错过了什么?