在部署的应用程序中自动创建 user.config 文件

Autocreate user.config file in deployed app

我正在为 outlook 编写一个 VB.Net 加载项(因此它的 VBA.NET)。它是对标准日历项目屏幕的补充。一切顺利。但是我有带有两个文本框的第三种形式,显示 running assembly 的文件路径和带有两个按钮 "Open in Explorer...".

user.config 路径

但是: user.config 文件一开始不存在。当我更改第二种形式的设置并第一次保存时,会创建父目录及其本身。

我尝试使用 My.Settings.save() 在主窗体的 form_Initialization 方法中保存用户设置,但它不会生成 user.config 文件,这很奇怪。这应该和我在第二种形式上做的一样。

你能帮帮我吗?我需要第三个表格开头的 user.config 文件。

My Forms (Image)

生成user.config文件的代码:

Private Sub BtnSaveSettings_Click(sender As Object, e As EventArgs)
        If (CmbxDebugOption.Text <> "") And (CmbxOnBootActive.Text <> "") Then

            ' save active start option
            If CmbxOnBootActive.SelectedItem.ToString.ToLower = "ja" Then
                My.Settings.ActiveOnStart = True
            ElseIf CmbxOnBootActive.SelectedItem.ToString.ToLower = "nein" Then
                My.Settings.ActiveOnStart = False
            End If

            ' save debug option
            If CmbxDebugOption.SelectedItem.ToString.ToLower = "deaktiviert" Then
                My.Settings.AlwaysDebug = False
                My.Settings.OnetimeDebug = False
            ElseIf CmbxDebugOption.SelectedItem.ToString.ToLower = "nur einmal" Then
                My.Settings.AlwaysDebug = False
                My.Settings.OnetimeDebug = True
            ElseIf CmbxDebugOption.SelectedItem.ToString.ToLower = "immer aktiv" Then
                My.Settings.AlwaysDebug = True
                My.Settings.OnetimeDebug = False
            End If
            My.Settings.Save()
        End If

        ' Close Form
        Me.Close()
    End Sub

我找到了适合自己的解决方案。我在 My.Settings 中创建了一个名为 FirstRunAfterInstall 的变量,我在主窗体的第一个 运行 上将其设置为 False。我还将其他变量设置为一些默认值,然后保存整个混乱。然后该文件将写入您的硬盘。

看起来像这样:

    If My.Settings.FirstRunAfterInstall Then
        My.Settings.FirstRunAfterInstall = False
        My.Settings.ActiveOnStart = False
        My.Settings.OnetimeDebug = False
        My.Settings.AlwaysDebug = False
        My.Settings.Save()
    End If

My.Settings.Save()是最重要的部分!它刷新一些缓存。如果您忘记这部分,更改将不会写入文件。

来自德国的问候,

克里斯蒂安·哈斯