【问题标题】:Cannot load resource no matter what I try无论我尝试什么都无法加载资源
【发布时间】:2013-05-29 01:36:39
【问题描述】:

我正在尝试加载已添加到项目中的资源,它告诉我:

路径中有非法字符。

现在,资源的名称是:ShortcutList.txt。我看不出有什么违法的地方。我使用的代码是:

    public void InitShortcuts()
    {
        try
        {
            string s = File.ReadAllText(Properties.Resources.ShortcutList);
            if (!String.IsNullOrEmpty(s))
            {
                MessageBox.Show(s);
            }
        }
        catch (Exception exception)
        {
            MessageBox.Show(exception.Message);
        }
    }

但正如我上面所说,它只是告诉我路径中有非法字符。如何?这不像是我在搞砸路径或其他任何事情。

我已将 ShortcutList.txt 设置为嵌入式资源并“如果较新则复制”(我还尝试了该列表中的所有其他选项!)。

任何想法我可能做错了什么?

【问题讨论】:

  • ShortcutList 是否包含任何非字母数字字符?
  • 如果在调试器下查看Properties.Resources.ShortcutList的值,它是什么意思?
  • 资源不是在安装或执行时刷新到客户端系统的文件,因此资源不会变成指向物理文件系统上资源的路径。这将是资源本身,所以加载到 MemoryStream 然后 FileStream 等等。
  • 查看这个stackoverflow.com/questions/3314140/… 堆栈溢出答案。我之前在读取嵌入式资源时遇到问题时使用它。
  • 文件内容包含字母、数字和符号,如[, ], ?和 &。它还将包括其他普通符号。

标签: c# .net winforms


【解决方案1】:

只要做这样的事情:

List<string> list = Resources.ShortcutList.Split(new[] { Environment.NewLine }, StringSplitOptions.None).ToList();

您可以将构建操作设置为“资源”,并将复制到输出设置为“不复制”。它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-20
    • 2020-10-31
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 2011-06-30
    • 2017-10-27
    • 2020-08-11
    相关资源
    最近更新 更多