正在使用的ExecutingAssembly不正确

时间:2017-03-07 10:46:02

标签: c# resources

我有一个实用程序库(dll),它包含用于处理嵌入式资源的类(如下所示)。在Visual Studio 2013中,它按预期工作,并从调用实用程序库中的函数的程序集中加载资源。

在Visual Studio 2015中,当我调用这些函数时,代码会尝试从实用程序库而不是调用库加载资源。它们是单独的组件。

请帮助我理解为什么会这样,以及如何让它在Visual Studio 2015中运行? 提前谢谢。

public static class EmbeddedResources
{
    public static string[] GetAllResourceNames()
    {
        Assembly _assembly = Assembly.GetExecutingAssembly();
        return _assembly.GetManifestResourceNames();
    }

    public static string ReadQueryResource(string resourceName)
    {
        Assembly _assembly;
        StreamReader _textStreamReader;
        try
        {
            _assembly = Assembly.GetExecutingAssembly();
            _textStreamReader = new StreamReader(_assembly.GetManifestResourceStream(resourceName));
            if (_textStreamReader.Peek() != -1)
                return _textStreamReader.ReadToEnd();
        }
        catch
        {
            //MessageBox.Show("Error accessing resources!");
        }
        return null;
    }
}

1 个答案:

答案 0 :(得分:1)

Assembly.GetExecutingAssembly()

  

获取包含当前正在执行的代码的程序集。

Assembly.GetCallingAssembly()

  

返回调用当前正在执行的方法的方法的程序集。