【问题标题】:Assembly.GetExecutingAssembly() not looking in the correct pathAssembly.GetExecutingAssembly() 没有找到正确的路径
【发布时间】:2010-11-19 13:25:35
【问题描述】:

我正在使用

读取嵌入的 xml 文件

C#:

var AssemblyRef = Assembly.GetExecutingAssembly();
TextReader reader = new StreamReader(AssemblyRef.GetManifestResourceStream("Text.xml"));

它已经工作了一段时间,但开始抛出错误。我跟踪了它正在寻找的路径,它正在 bin 文件夹的根目录中寻找 dll,而不是在 Debug 或 release 文件夹中。

一旦发布就可以了,但是对于本地开发,我无法让我的一个功能发挥作用。

我在编译时将其设置为调试。任何帮助都会很棒。

【问题讨论】:

    标签: asp.net .net-3.5 c#-3.0


    【解决方案1】:

    你有:

    • 更改了程序集名称或
    • 更改命名空间或
    • 将资源移至项目中的文件夹

    【讨论】:

    • 什么更快:读取带有 IO 的 xml 文件或作为嵌入式资源?
    • 组装!因为它已经加载到内存中。那么问题出在哪一个呢?我的评论有帮助吗?
    • 我都检查过了。他们都没有改变。好像不是,它不是“已发布”源,也不是在 bin/debug 中查找。但有一次是。代码库没有改变。
    【解决方案2】:

    我把调用改成了这个,一切都很好。

    TextReader reader = new StreamReader(Assembly.GetExecutingAssembly().AssemblyRef.GetManifestResourceStream("Text.xml"));
    

    调用一个语句使其工作。我不知道为什么。

    【讨论】:

      猜你喜欢
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 2019-03-25
      • 2021-07-18
      相关资源
      最近更新 更多