Сбой приложения при добавлении dll в GAC, иначе - PullRequest
0 голосов
/ 14 января 2011

У меня есть приложение, которое ссылается на некоторые библиотеки .Net и используется для преобразования файла между различными форматами. Если я добавлю ссылку на файл .dll, мое приложение будет работать без проблем.

Тем не менее, если я добавлю dll в GAC и сослаюсь на нее, мое приложение не будет работать во время выполнения из-за ошибки синтаксического анализа. Физическое местоположение библиотек не изменилось.

У меня есть несколько файлов конфигурации, доступ к которым осуществляется через переменные среды, и они используются для анализа входных файлов.

Есть идеи, в чем может быть проблема?

    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 голосов
/ 18 января 2011

Проблема была связана с попыткой создания объекта с использованием

object o = Activator.CreateInstance (assemblyName, полностьюQualifiedTypeName);

При доступе через GAC мне нужно было использоватьполное имя сборки, а не просто имя сборки, например

"AssemblyName, версия = 1.0.0.0, Culture = Neutral, PublicKeyToken = abcdef1234567890"

...