C# COM 组件在加载到非托管 C++ 应用程序时无法读取配置

标签 c# com configuration configuration-files

我有一个用 C# 编写的 COM 组件,它调用 ConfigurationManager.AppSettings.Get(...)。该组件在非托管 C++ 应用程序中实例化。

ConfigurationManager.AppSettings 每次都无法读取配置文件。

可能有两个问题。

1) 应用程序运行时应该调用什么 app.config(即以 .config 结尾的 C++ exe 的名称,或以 .config 结尾的我的 C# 类库的名称)。

2) 配置文件应该放在哪里(即在与 C# COM 组件相同的文件夹中,或在与 C++ exe 相同的文件夹中

我尝试了对 ConfigurationManager.OpenExecConfiguration 的各种调用;都失败了。

理想情况下,我想要的是它无需更改代码即可正常工作。如果失败,明智地调用 OpenExeConfiguration 以便我仍然可以使用 ConfigurationManager.AppSettings.Get(...)

这可能只是冰山一角,因为我想在使用自定义配置部分的 C# COM 组件中使用 log4net。

虽然我不介意更改我自己的代码以通过配置对象使用访问设置,但我无法更改 log4net 代码。

之前还有其他人打过这个吗?有什么想法吗?

最佳答案

如果您在应用运行时运行 procmon ( http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx),您能看到它正在寻找的 *.config 文件吗?

关于C# COM 组件在加载到非托管 C++ 应用程序时无法读取配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2404988/

相关文章:

php - 如何有条件地在 .htaccess 中或通过其他方式为特定请求设置 php ini 值

configuration - 通过 IoC 将依赖项提供给工厂类?

c# - 为什么 GetEntryAssembly 返回 null?

c# - 访问 COM 组件时出错

c# - SideBySide Registration-Free COM 在加载时失败

c# - WCF 服务中的 COM 对象

configuration - Gradle:如何复制文件但保持相同的构建调用?

c# - 将 Json.Net JValue 转换为 int

c# - 如何使用带有 C# 的 Selenium 获取文本输入的值?

c# - C# 弱引用实际上是软引用吗?