ResourceManager возвращает имя файла
У меня есть консольное приложение.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).
1 ответ
Он работал локально, потому что Visual Studio использует MsBuild и не может работать со встроенным ресурсом. Я переместил sqls в код