2010-11-24 7 views
5

Chaque fois que je fais un ConfigurationManager.GetSection("registeredPlugIns") pour cette section personnalisée je reçois cette erreur:type personnalisé ConfigurationSection ne chargeant pas correctement

Une erreur est survenue la création du gestionnaire de section de configuration pour registeredPlugIns:

Could not load type 'Engine.PlugInArch.PlugInConfigurationSection' from assembly 'System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Pourquoi est-il essaie pour charger le type de System.Configuration et non l'assemblage que je lui demande?

Voici mon code Section:

namespace Engine.PlugInArch 
{ 
    public class PlugInConfigurationSection : ConfigurationSection 
    { 
     [ConfigurationProperty("plugIns", IsDefaultCollection = false), 
     ConfigurationCollection(typeof(PlugInCollection), AddItemName = "addPlugin")] 
     public PlugInCollection PlugIns 
     { 
      get { return this["plugIns"] as PlugInCollection; } 
     } 

    } 
} 

Et voici mon app.config

<configuration> 
    <configSections> 
    <section name="registeredPlugIns" type="Engine.PlugInArch.PlugInConfigurationSection, Engine"/> 
    </configSections> 
     ... 
    <registeredPlugIns> 
     <plugIns> 
      <addPlugIn DllName="ProcessorPlugin.dll"/> 
     </plugIns> 
    </registeredPlugIns> 

</configuration> 

Répondre

10

Votre dll appelé Engine.dll? Je ne pense pas et c'est là que le problème est.

OK, exécutez procmon à partir de sysinternals. Définissez le filtre sur votre nom de processus et filtrez aussi pour result = "NAME NOT FOUND". Vous verrez les entrées où il cherche Engine.dll ou Engine.exe. Voir où il cherche et il est probable que le fichier doit être copié dans le dossier en cours d'exécution.

+0

C'est en fait Engine.exe Cela aurait-il une importance? Ils tapent dans l'assembly qui référence ce fichier app.config. –

+0

Voir ma mise à jour .. – Aliostad

+0

Quand je l'ai placé pour rechercher seulement le moteur, il recherche Engine.dll (qui n'existe pas). Quand je le mets à Engine.exe, il cherche Engine.exe.dll. Pouah. Je suppose que je vais devoir déplacer ce type sur le .exe. –

Questions connexes