在部署的应用程序中自动创建 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 文件。
生成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()
是最重要的部分!它刷新一些缓存。如果您忘记这部分,更改将不会写入文件。
来自德国的问候,
克里斯蒂安·哈斯
我正在为 outlook 编写一个 VB.Net 加载项(因此它的 VBA
和 .NET
)。它是对标准日历项目屏幕的补充。一切顺利。但是我有带有两个文本框的第三种形式,显示 running assembly
的文件路径和带有两个按钮 "Open in Explorer..."
.
user.config
路径
但是: user.config 文件一开始不存在。当我更改第二种形式的设置并第一次保存时,会创建父目录及其本身。
我尝试使用 My.Settings.save()
在主窗体的 form_Initialization 方法中保存用户设置,但它不会生成 user.config
文件,这很奇怪。这应该和我在第二种形式上做的一样。
你能帮帮我吗?我需要第三个表格开头的 user.config 文件。
生成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()
是最重要的部分!它刷新一些缓存。如果您忘记这部分,更改将不会写入文件。
来自德国的问候,
克里斯蒂安·哈斯