我有一个引用某些.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
答案 0 :(得分:0)
问题是由于尝试使用
实例化对象object o = Activator.CreateInstance(assemblyName,fullyQualifiedTypeName);
通过GAC访问时,我需要使用完全限定的程序集名称而不仅仅是程序集名称,例如
“AssemblyName,Version = 1.0.0.0,Culture = Neutral,PublicKeyToken = abcdef1234567890”