我想从非托管c ++服务调用C#组件。我需要设置C#组件所需的配置项。应该配置什么名称以及它应该位于何处。

例如。 parentfolder \ cplusplusservice.exe

anotherfolder \ csharp.dll

我需要csharp.dll.config或其等价物。

谢谢,

有帮助吗?

解决方案

.config文件的名称必须与应用程序的名称相同。当非托管代码首次调用托管代码时,会创建一个AppDomain,AppDomain控制加载哪个配置文件以及从哪里加载。

您需要手动将.config文件复制到输出目录并在应用程序名称后面命名,或者创建一个后期构建来执行此操作。

基本上适用于纯托管应用程序所需的.config文件的规则适用于加载托管代码的非托管应用程序。

其他提示

本文介绍如何使用c#:

配置文件

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

本文概述了从非托管c ++调用托管c#组件,反之亦然,以及一些帮助器类:

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

这取决于托管托管代码的AppDomain是如何创建的。

例如,如果您将托管代码公开为COM,它将被加载到默认的AppDomain中,配置文件将与可执行文件位于同一目录中(在您的情况下为parentfolder \ cplusplusservice.exe.config)

如果您自己创建AppDomain,则可以控制配置文件的位置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top