【问题标题】:Application fails when dll added to GAC, okay otherwise将 dll 添加到 GAC 时应用程序失败,否则可以
【发布时间】:2011-01-14 20:26:12
【问题描述】:

我有一个引用一些 .Net dll 的应用程序,用于在不同格式之间转换文件。如果我添加对 .dll 文件的引用,我的应用程序将毫无问题地运行。

但是,如果我将 dll 添加到 GAC 并从那里引用它,由于解析错误,我的应用程序会在运行时失败。 dll的物理位置不变。

我有几个通过环境变量访问的配置文件,它们用于解析输入文件。

任何想法可能是什么问题?

    private static string FILE_CONFIGURATION = "configuration.xml";

    string configurationPath = "c:\\temp\\CDXMLViewerDist\\" + FILE_CONFIGURATION;
    System.Environment.SetEnvironmentVariable(translator.domains.XMLDomainConfiguration.FILE_CONFIGURATION_PATH, configurationPath);
    System.Environment.SetEnvironmentVariable(translator.domains.XMLDomainConfiguration.DOMAIN_CONFIGURATION_PROPERTY_KEY, typeof(XMLDomainConfiguration).FullName);


String strPath = "C:\\temp\\out.cdxml";


CDXMLReader reader = new CDXMLReader();
reader.Read(strPath);  // Runs fine if reference dll as file, throws exception if via GAC

【问题讨论】:

  • 您必须更好地描述“解析错误”。

标签: .net dll gac


【解决方案1】:

问题是由于尝试使用

实例化对象

object o = Activator.CreateInstance(assemblyName, fullyQualifiedTypeName);

通过 GAC 访问时,我需要使用完全限定的程序集名称,而不仅仅是程序集名称,例如

"AssemblyName, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=abcdef1234567890"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多