2011-01-14 10 views
0

いくつかの.Net dllを参照するアプリケーションがあり、さまざまな形式のファイルを変換するために使用されます。 .dllファイルへの参照を追加すると、問題なくアプリケーションが実行されます。dllがGACに追加されたときにアプリケーションが失敗する、それ以外の場合は

しかし、GACにdllを追加してそこから参照すると、解析エラーが原因で実行時にアプリケーションが失敗します。 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 
+6

あなたは "解析エラー" を記述するのより良い仕事をする必要があります。 –

答えて

0

問題が= Activator.CreateInstance O

オブジェクトを使用してオブジェクトをインスタンス化する試み(のAssemblyName、fullyQualifiedTypeName)によるものでした。

GAC経由でアクセスするとき、私はアセンブリ名ではなく完全修飾アセンブリ名を使用する必要がありました。

"のAssemblyName、バージョン= 1.0.0.0、文化=、なPublicKeyToken = abcdef1234567890ニュートラル"