我有一个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