C# 我可以在.NET核心可执行文件中嵌入一个文件并在运行时读取它吗?

C# 我可以在.NET核心可执行文件中嵌入一个文件并在运行时读取它吗?,c#,.net-core,visual-studio-mac,C#,.net Core,Visual Studio Mac,我的项目所在的文件夹中有一些JSON文件,我可以用我的C#(.NET Core 3.1)应用程序从磁盘读取这些文件,我希望在运行时读取它们,同时将整个解决方案编译为一个可执行文件 我相信.NET Framework中的嵌入式资源也可以实现类似的功能,但我能用VS for Mac中开发的.NET Core应用程序实现这一点吗?解决方案与答案类似,只是VS Mac和.NET Core 3.1略有不同 通过将文件添加到我的C#项目中,然后将它们的构建操作设置为“嵌入式资源”,我实现了我想要的目标。在M

我的项目所在的文件夹中有一些JSON文件,我可以用我的C#(.NET Core 3.1)应用程序从磁盘读取这些文件,我希望在运行时读取它们,同时将整个解决方案编译为一个可执行文件


我相信.NET Framework中的嵌入式资源也可以实现类似的功能,但我能用VS for Mac中开发的.NET Core应用程序实现这一点吗?

解决方案与答案类似,只是VS Mac和.NET Core 3.1略有不同

通过将文件添加到我的C#项目中,然后将它们的构建操作设置为“嵌入式资源”,我实现了我想要的目标。在Mac 2019的VS中:

要阅读它们,语法(假设您与文件位于同一项目中的类中)为:

var assembly=typeof(MyClass).assembly;
Stream myFile=assembly.GetManifestResourceStream(“MyProject.MyFolder.myFile.json”);
//以字符串形式获取文本的步骤
var sR=新的StreamReader(myFile);
var myFilesText=sR.ReadToEnd();
高级关闭();
如果您不确定这些资源的名称,可以列出以下资源:

string[]name=assembly.GetManifestResourceNames();

这是否回答了您的问题?这个答案似乎有用,谢谢。明天我将尝试它,如果它解决了问题,我将以重复的形式结束我的问题。您链接的答案几乎是正确的,尽管它与.NET Core 3.1略有不同,但属性名称等并不完全相同。是否可以在运行时写入它?是否可以在运行时写入嵌入式资源?我不确定,不过您可以尝试在myFile流上使用StreamWriter