nuget包中的嵌入资源

net*_*tty 5 c# resx nuget

我正在构建一个与 NuGet 一起打包的 C# 库。它在名为 的 Resources 目录中的 .resx 文件中包含一些错误代码翻译Errors.en.resx。该文件将“构建操作”设置为“嵌入式资源”(我已在 .csproj 文件中确认),但是当构建项目时,资源最终会出现在“en”文件夹中的单独 dll 中。

这按原样工作正常,但是当使用 NuGet 打包时,会丢失“en”文件夹,这意味着尝试用于ResourceManager获取消息会失败。

理想情况下,我希望将资源嵌入到主 .dll 中,但如果失败,我将决定将资源 dll 添加到 NuGet 包中。到目前为止,对设置的各种更改和 NuGet 规范更改尚未成功。

net*_*tty 6

最后,最简单的解决方案是在 NuGet Spec 中显式添加资源文件:

  <files>
    <file src="bin\$configuration$\en\*.dll" target="lib\net45\en" />
  </files>
Run Code Online (Sandbox Code Playgroud)

参考:指定要包含在包中的文件