【问题标题】:Reading app.config of a VB6 project from a C# dll library从 C# dll 库中读取 VB6 项目的 app.config
【发布时间】:2023-03-03 09:21:23
【问题描述】:

我需要创建一个可以从配置文件中读取所有项目配置的 C# .NET DLL 库。

主项目是用 VB6 编写的,它调用我的 C# DLL 库。

我创建了一个返回有线字符串的测试方法,并且调用正常工作,因此 VB6 到 C# 的集成工作正常。

我的问题是我使用System.Configuration.ConfigurationManager 类来读取配置文件(App.config)。如果调用来自 C# 测试项目,它可以工作,但如果调用来自 VB6 项目,则它不起作用。

我认为问题是由于VB6没有将App.config文件读取为项目配置文件,我该怎么做?

【问题讨论】:

  • 配置文件是xml格式,我认为xmlreader会有所帮助
  • 配置文件属于 .NET exe 程序,而 VB6 应用程序没有。这不是你不能给它一个,把它命名为 yourvb6.exe.config 其中 yourvb6 是你的 VB6 exe 文件的名称。如果您尝试在 VB6 IDE 中调试它,则必须跳过额外的障碍。仍然很不清楚为什么当 VB6 代码本身不使用它时,这些会有用。

标签: c# .net vb6 configurationmanager


【解决方案1】:

问题解决了: 我试图在 myVB6AppName.exe.config 中重命名 App.config 但它不起作用。 解决方案是在 VB6 项目中包含 myVB6AppName.exe.config 文件作为文档。现在可以了!

【讨论】:

    【解决方案2】:

    如果您在调试模式下运行 VB6,请记住将您的 app.config 作为 VB6.exe.config 放在 VB6.exe 所在的文件夹中。

    【讨论】:

    • 没有,我编译生成了一个exe文件,和config文件在同一个路径
    • 所以 ConfigurationManager 在这种情况下应该可以正常工作。当然,您已将 app.config 重命名为 YourVB6ApplicationName.exe.config?
    • 考虑使用 Process Monitor technet.microsoft.com/en-us/sysinternals/processmonitor.aspx 计算出应用程序尝试使用的配置文件的实际路径。可以省去很多猜测
    猜你喜欢
    • 2012-04-09
    • 2014-12-11
    • 1970-01-01
    • 2014-03-23
    • 2018-12-27
    • 2012-09-05
    • 2013-07-06
    • 1970-01-01
    • 2011-07-30
    相关资源
    最近更新 更多