You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在第二个解决方案中加载第一个解决方案的My.Settings?

根据你的需求,要把第一个解决方案里的My.Settings加载到第二个项目中,这里有几个实用的方案,从最推荐的长期维护方案到快速临时解决方法都有:

方案1:将设置封装为共享类库(最推荐)

这是最规范、最便于后续维护的做法——把设置相关的逻辑和配置都抽成独立的类库,让两个项目共同引用它。

步骤如下:

  1. 创建一个新的Class Library项目(比如命名为SharedSettings)
  2. 在这个类库中添加一个设置文件:右键项目 → 添加 → 新建项 → 选择「设置文件」,然后把第一个项目里的format、theme等设置项迁移过来
  3. 把你原有的Helper类移到这个共享类库中,修改代码引用共享的设置:
Public Class format
    Public NotInheritable Class Helper
        Private Sub New()
        End Sub

        Public Shared Function getAppSetting() As String
            Dim returnValue As Object = SharedSettings.My.Settings.format
            Return If(returnValue Is Nothing, String.Empty, returnValue.ToString())
        End Function

        Public Shared Function getAppSettingTheme() As String
            Dim returnValue_theme As Object = SharedSettings.My.Settings.theme
            Return If(returnValue_theme Is Nothing, String.Empty, returnValue_theme.ToString())
        End Function
    End Class
End Class
  1. 让第一个项目和第二个项目都引用这个SharedSettings类库,这样两个项目就能共用同一套设置和Helper类了。
方案2:手动读取第一个项目的配置文件

如果不想重构项目结构,也可以让第二个项目直接读取第一个项目编译后的配置文件。

假设第一个项目编译后生成的配置文件路径是C:\Path\To\FirstProject\bin\Debug\FirstProject.exe.config,可以写一个辅助类来读取:

Imports System.Configuration

Public Class ExternalSettingsHelper
    Public Shared Function GetFirstProjectSetting(settingKey As String) As String
        ' 替换成第一个项目配置文件的实际路径
        Dim configPath As String = "C:\Path\To\FirstProject\bin\Debug\FirstProject.exe.config"
        Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(configPath)
        Dim settingValue As String = config.AppSettings.Settings(settingKey)?.Value
        Return If(String.IsNullOrEmpty(settingValue), String.Empty, settingValue)
    End Function
End Class

然后在第二个项目里调用:

Dim formatSetting As String = ExternalSettingsHelper.GetFirstProjectSetting("format")
Dim themeSetting As String = ExternalSettingsHelper.GetFirstProjectSetting("theme")

⚠️ 注意:这种方法要确保配置文件路径正确,部署时也要保证第二个项目能访问到这个配置文件;如果第一个项目的配置更新,第二个项目读取的内容会同步变化。

方案3:自定义SettingsProvider(进阶场景)

如果需要多个项目集中管理设置(比如存在注册表、共享文件夹),可以自定义一个SettingsProvider,让所有项目都通过这个提供者读取设置。不过这个方法相对复杂,适合有特殊配置存储需求的场景。

补充说明

你的原代码里getAppSettingTheme的内容没写完,我默认按照getAppSetting的逻辑补全了,如果实际业务逻辑不同,你可以根据需求调整代码。另外从代码风格看你用的是.NET Framework的My.Settings,如果是.NET Core/.NET 5+项目,推荐改用IConfiguration读取共享的appsettings.json配置文件。

内容的提问来源于stack exchange,提问作者user8267799

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:56:56