将dll添加到GAC时应用程序失败,否则正常

时间:2011-01-14 20:26:13

标签: .net dll gac

我有一个引用某些.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

1 个答案:

答案 0 :(得分:0)

问题是由于尝试使用

实例化对象

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

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

“AssemblyName,Version = 1.0.0.0,Culture = Neutral,PublicKeyToken = abcdef1234567890”