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

Vb.net 在已部署的应用程序中自动创建user.config文件,vb.net,clickonce,my.settings,user.config,autocreate,Vb.net,Clickonce,My.settings,User.config,Autocreate,我正在为outlook编写一个VB.Net加载项(因此它的VBA带有.Net)。它是对标准日历项目屏幕的一个添加。一切都很好。但我有第三个表单,它有两个文本框,显示运行程序集的文件路径和user.config路径,其中有两个按钮“在资源管理器中打开…” 但是: user.config文件开头不存在。当我在第二个表单中更改设置并第一次保存它时,就会创建父目录及其本身 我试图用my.Settings.save()将usersettings保存在主窗体的form\u初始化方法上,但它不会生成user.

我正在为outlook编写一个VB.Net加载项(因此它的
VBA
带有
.Net
)。它是对标准日历项目屏幕的一个添加。一切都很好。但我有第三个表单,它有两个文本框,显示运行程序集的
文件路径和
user.config
路径,其中有两个按钮
“在资源管理器中打开…”

但是: user.config文件开头不存在。当我在第二个表单中更改设置并第一次保存它时,就会创建父目录及其本身

我试图用
my.Settings.save()
将usersettings保存在主窗体的form\u初始化方法上,但它不会生成
user.config
文件,这是一个奇怪的文件。这应该和我在第二张表格上做的一样

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

生成user.config文件的代码:

Private Sub BtnSaveSettings_单击(发送者作为对象,e作为事件参数)
如果是(CmbxDebugOption.Text“”)和(cmbxonbootsactive.Text“”),则
'保存活动启动选项
如果CmbxOnBootActive.SelectedItem.ToString.ToLower=“ja”,则
My.Settings.ActiveOnStart=True
ElseIf cmbxonbootsactive.SelectedItem.ToString.ToLower=“不”然后
My.Settings.ActiveOnStart=False
如果结束
'保存调试选项
如果CmbxDebugOption.SelectedItem.ToString.ToLower=“deaktiviert”,则
My.Settings.AlwaysDebug=错误
My.Settings.OnetimeDebug=False
ElseIf CmbxDebugOption.SelectedItem.ToString.ToLower=“nur einmal”然后
My.Settings.AlwaysDebug=错误
My.Settings.OnetimeDebug=True
ElseIf CmbxDebugOption.SelectedItem.ToString.ToLower=“immer aktiv”然后
My.Settings.AlwaysDebug=True
My.Settings.OnetimeDebug=False
如果结束
My.Settings.Save()
如果结束
"封闭式",
我
端接头

我为自己找到了一个解决方案。我在
My.Settings
中创建了一个名为
FirstRunAfterInstall
的变量,在mainform的第一次运行时,我将该变量设置为
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()
是最重要的部分!它会刷新一些缓存。如果忘记了这一部分,更改将不会写入文件

来自德国的问候

基督教徒哈斯

    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