属性。“ dotnet发布”之后的资源不会返回文本文件内容

时间:2019-08-05 05:48:17

标签: c# .net-core resources

我有一个project on github设置要通过appveyor构建。在构建脚本中,我使用dotnet publish打包所有依赖项。 NET Core项目“ prcScript”出现了问题,我在其中通过Visual Studio(2019)添加了Resources.resx文件以包含一些文本文件(例如Help.txt中的应用程序帮助文本)。在dotnet publish的构建中,Properties.Resources。[资源名称]返回的是资源信息,而不是文件内容。

在我自己的Visual Studio构建中,不会发生此问题(我使用Community 2019)。据我所知,这也与文件的Build Action无关(但是,如果我需要的话,我可能会尝试通过反射依赖于Embedded Resource来处理此问题)。设置为Release或Debug的配置,而Platform设置为AnyCPU的行为相同。

将任何文本文件添加到Resources.resx后,由于我只是打印到控制台,因此产生的问题很简单。在命令行中,使用dotnet prcScript.dll -h,然后在运行此代码时...:

case "-h":
case "-help":
    Console.WriteLine(Properties.Resources.Help);
    break;

它在..\Help.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8的内部版本上打印dotnet publish。在Visual Studio构建中,它可以正确打印文件的内容:

prcScript: edit params through lua
required: [script file] (allows multiple files)
optional:
  -h = print help text
       (alias: -help)
  -a = print lua api
       (alias: -api)
  -l = load label file [path]
  -s = sandbox lua environment (prevents running unsafe code)
       (alias: -safe | -sandbox)

编辑:这个问题仍然存在,但是我已经更新了我的仓库以使用“嵌入式资源+反射”方法。如果您碰巧要在项目上进行测试,只需先结帐fe3838819145346d55b4ed19887783442a76e088

0 个答案:

没有答案