appelant composant c # géré à partir de code c ++ non géré, comment puis-je définir config

StackOverflow https://stackoverflow.com/questions/1020964

  •  06-07-2019
  •  | 
  •  

Question

Je souhaite appeler un composant C # à partir d'un service c ++ non géré. Je dois définir les éléments de configuration attendus par le composant C #. Quel nom doit être config et où doit-il être situé.

par exemple. dossier parent \ cplusplusservice.exe

un autre dossier \ csharp.dll

j'ai besoin de csharp.dll.config ou de son équivalent.

Merci,

Était-ce utile?

La solution

Le fichier .config doit porter le même nom que le nom de l'application. Lorsque le code non géré appelle pour la première fois le code géré, un objet AppDomain est créé. Ce dernier contrôle le fichier de configuration qui est chargé et son emplacement.

Vous devrez copier manuellement le fichier .config dans le répertoire de sortie et le nommer après le nom de l'application ou créer une post-génération à cet effet.

En gros, les mêmes règles qui s'appliquent aux endroits où les fichiers .config doivent s'appliquer aux applications gérées pures s'appliquent aux applications non gérées qui chargent du code managé.

Autres conseils

Cet article explique comment utiliser les fichiers de configuration avec c #:

http://www.devasp.net/net/articles/display /679.html

Cet article fournit une vue d'ensemble de l'appel du composant c # géré à partir d'un c ++ non géré et inversement, ainsi que de certaines classes d'assistance:

http://www.codeproject.com/KB/mcpp/unmanaged_to_managedman.aspx

Cela dépend de la manière dont est créé le domaine AppDomain hébergeant votre code managé.

Par exemple, si vous exposez le code managé en tant que COM, il sera chargé dans le répertoire AppDomain par défaut et le fichier de configuration se trouvera dans le même répertoire que l'exécutable (dossier_dossier \ cplusplusservice.exe.config dans votre cas). .

Si vous créez vous-même l'AppDomain, vous pouvez contrôler l'emplacement du fichier de configuration.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top