我有一个.net-core 2.0控制台应用程序。 此应用程序引用.net-standard-2.0库,其中包含一个资源文件SqlStatements.resx,其中包含多个sql文件。
文件配置: 嵌入资源; 不要抄袭; ResXFileCodeGenerator;
如果我在Visual Studio 2017中以调试或发布模式调用本地
var result = SqlStatements.somefileName;
我得到了文件的内容。 但是如果在服务器上启动代码,我会得到类似的东西:
resources\somefileName.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
我以这种方式启动应用程序:
dotnet MyApp.Console.dll
你知道它可能是什么原因吗?
更新: 代码是正确的: 我用dotpeek检查了dll。如果我运行脚本:
dotnet build SolutionName.sln --configuration -Release
然后resource.resx中的值看起来像
resources\somefileName.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
如果我在Visual Studio中进行构建,resx就可以了(我看到了sql文件的内容)。
答案 0 :(得分:0)
它在本地工作,因为Visual Studio使用MsBuild并且能够使用嵌入式资源。我把sqls移到了代码