J'ai un composant COM écrit en C# qui effectue des appels à ConfigurationManager.AppSettings.Get (...). Ce composant est instancié dans une application C++ non gérée.Le composant C# COM ne parvient pas à lire la configuration lorsqu'il est chargé dans une application C++ non gérée
À chaque fois, ConfigurationManager.AppSettings ne parvient pas à lire le fichier de configuration.
Il peut y avoir deux problèmes. 1) Que devrait appeler app.config lorsque l'application est en cours d'exécution (c'est-à-dire le nom de l'exe C++ avec .config à la fin ou le nom de ma bibliothèque de classe C# avec .config à la fin).
2) Où la vivre fichier de configuration (dans le même dossier que le composant C# COM, ou dans le même dossier que le C++ exe
J'ai essayé plusieurs appels à ConfigurationManager.OpenExecConfiguration, tout a échoué .
Ce que je veux idéalement, est pour que cela fonctionne seulement avec aucune modification de code. a défaut, un appel judicieux de OpenExeConfiguration afin que je puisse encore utiliser ConfigurationManager.AppSettings.Get (...)
Cette pourrait être la pointe de l'iceberg parce que je voudrais utiliser log4net dans le composant C# COM qui utilise une conf ig section.
Même si cela ne me dérange pas de changer mon propre code pour utiliser les paramètres d'accès via un objet de configuration, je ne peux pas changer le code de log4net.
Quelqu'un d'autre a déjà frappé ça? Des idées?
Avoir du mal à faire fonctionner le filtrage. Juste remarqué qu'un dossier "Debug" est apparu sous la solution, contenant le ClientConsole.exe, et il n'y a pas de .config dans ce dossier. En outre, le composant C#, Bridge.dll n'est pas dans ce dossier, donc je suppose que grâce à son enregistrement dans le Registre COM est capable de localiser et le charger. – IanT8
En dehors de Visual Studio, il nécessite un fichier ClientConsole.exe.config. J'étudie toujours ... – IanT8
RE: Filtrage pas sûr si c'est le problème que vous avez ou si c'est juste moi mais j'ai oublié à plusieurs reprises avec procmon que je dois cliquer sur "Ajouter" puis "OK" dans la boîte de dialogue Filtre plutôt que "D'ACCORD"! –