Можно ли встроить файл в исполняемый файл. NET Core и прочитать его во время выполнения? - PullRequest
1 голос
/ 26 января 2020

У меня есть несколько JSON файлов в той же папке, что и мой проект, которые я могу читать с диска с помощью моего приложения C# (. NET Core 3.1), и я хотел бы прочитать их во время выполнения, но пока скомпилировать все решение в один исполняемый файл.

Я полагаю, что нечто подобное было возможно с Embedded Resources in. NET Framework, но я могу добиться этого с помощью приложения. NET Core, разработанного в VS для Ma c * * 1003

Ответы [ 2 ]

1 голос
/ 26 января 2020

Решение похоже на этот ответ, только немного отличается для VS Ma c и. NET Core 3.1.

Я добился того, что искал, добавив файлы в мой C# проект, затем установив их действие по сборке 'Embedded Resource'. Это здесь в VS для Ма c 2019:

EmbeddedResource in VS Mac

Чтобы прочитать их, синтаксис (если вы находитесь в классе в одном проекте в виде файлов):

var assembly = typeof(MyClass).Assembly;
Stream myFile = assembly.GetManifestResourceStream("MyProject.MyFolder.MyFile.json");

// To get the text as a string
var sR = new StreamReader(myFile);
var myFilesText = sR.ReadToEnd();
sR.Close();

Если вы не уверены, каковы их имена, вы можете перечислить ресурсы с помощью:

string[] names = assembly.GetManifestResourceNames();
0 голосов
/ 26 января 2020

Да, щелкните правой кнопкой мыши файл в обозревателе решений и выберите «Копировать в выходной каталог»: enter image description here

Это позволит скопировать файл в каталог dll, и вы получите возможность получить к нему доступ.

...