【问题标题】:Embedding Text File in Resources C#在资源 C# 中嵌入文本文件
【发布时间】:2017-02-06 04:21:11
【问题描述】:

我正在尝试做两件事。我想在我的项目中嵌入一个文本文件,以便我可以使用它并修改它,但同时我不想在将项目发送给用户时打包它(IE包含在exe文件中)。

我环顾四周,已经有多个问题,但我似乎无法解决任何问题。这是我到目前为止所采取的步骤;

将文本文件添加到我的“资源文件夹”

对“内容”构建操作并将目录输出到“请勿复制”

然后我尝试在我的代码中访问该文件;

if (File.Exists(Properties.Resources.company_map_template))
{
    MessageBox.Show("Test");
    var objReader = new StreamReader(Properties.Resources.company_map_template);
    string line = "";
    line = objReader.ReadToEnd();
    objReader.Close();
    line = line.Replace("[latlong]", latitude + ", " + longitude);
    mapWebBrowser.NavigateToString(line);
}

MessageBox 从未出现,这对我来说意味着它无法找到该文件,并且不知何故我做错了什么。如何将文件添加到我的项目中,这样我就不需要使用 exe 进行分发,同时能够在代码中访问它?

【问题讨论】:

  • 我认为问题是当你有一个嵌入文件时它并不完全相同,所以你不能使用File.Exists检查它是否存在。如果您想读取嵌入文件,check this out。我不认为您将能够写入嵌入式文件,因为这实际上是在修改 EXE 文件。通常应该使用应用程序的 APP DATA 文件夹来处理这样的事情
  • @musefan 感谢您的建议,我会采纳的。

标签: c# wpf visual-studio embedded-resource


【解决方案1】:

我会使用以下内容:

BuildActionNone(不需要)

并将您的文件添加到文件下的Resources.resx(使用SolutionExplorer 中的DragAndDrop 来打开Resources.resx)

访问您的文本:

using YOURNAMESPACE.Configuration.Properties;

string fileContent = Resources.company_map_template;

那么你就完成了。无需通过StreamReader访问

【讨论】:

    猜你喜欢
    • 2012-06-26
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多