.NET 用户设置 - DEBUG 和 RELEASE 模式不同
.NET User Settings - Different for DEBUG and RELEASE Modes
我希望我的应用程序设置问题有解决方案。每次升级此应用程序(WPF 桌面应用程序)时,我都希望保留我的用户设置。为此,我在 Application_Startup
事件中使用了以下代码;
If My.Settings.CallUpgrade = True Then
My.Settings.Upgrade()
My.Settings.CallUpgrade = False
My.Settings.Save()
End If
这非常有效,可以将用户设置保存到新版本中,并导致用户设置保存到目录结构中,如下所示;
C:\Users\Aaron\AppData\Local\Assistant\Assistant.exe_Url_1rohxsl103zsiltndvz23vqujpaafv4w
...0.0.0
...0.2.0
但是,我的问题是程序集的基本文件夹因使用的构建配置而异。即:如果 Build Configuration 是 "DEBUG" 那么用于保存用户设置的目录如下;
调试模式
C:\Users\Aaron\AppData\Local\Assistant\Assistant.exe_Url_1rohxsl103zsiltndvz23vqujpaafv4w
发布模式下如下;
释放模式
C:\Users\Aaron\AppData\Local\AssistantAssistant.exe_Url_od13shq40yxnxmu3xwepbkqf1bjqc34j
完全不同的目录。版本 1.0.0.0 留在 DEBUG 文件夹中,版本 1.0.2.0 放在 Release 文件夹中。自然;调用 My.Settings.Upgrade()
未找到任何要升级的先前设置,因为它们位于不同的文件夹中。
根据建筑配置,应用程序本质上被视为两个不同的组件。
我能理解什么时候这可能是可取的,但我有一种情况,我想分发一个 "DEBUG" 版本,以便我可以附加到一个远程 运行 进程等。在一点之后我希望及时分发应用程序的 "RELEASE" 版本。
然而,问题是用户设置对这两个版本并不通用,这基本上会导致用户设置丢失。
是否有任何解决方案可以在程序集的两个构建 Configurations/Versions 中统一用户设置的持久性和检索,而无需使用我自己的应用程序设置功能版本?
不,这不是真正的问题。它只发生在你的机器上,而不是用户的机器上。
哈希目录名称受 EXE 的几个属性影响,其中之一是安装 EXE 的目录的名称。在您的计算机上,您有不同的目录,bin\Debug 和 bin\Release。用户的机器只有一台,哪里安装过程序。
您可以更改项目设置,使它们相同。项目+属性,构建选项卡,输出路径设置。对调试配置执行此操作,将其更改为 bin\Release。足以测试和验证它是否有效,您可能想在感觉良好后将其更改回来:)
我希望我的应用程序设置问题有解决方案。每次升级此应用程序(WPF 桌面应用程序)时,我都希望保留我的用户设置。为此,我在 Application_Startup
事件中使用了以下代码;
If My.Settings.CallUpgrade = True Then
My.Settings.Upgrade()
My.Settings.CallUpgrade = False
My.Settings.Save()
End If
这非常有效,可以将用户设置保存到新版本中,并导致用户设置保存到目录结构中,如下所示;
C:\Users\Aaron\AppData\Local\Assistant\Assistant.exe_Url_1rohxsl103zsiltndvz23vqujpaafv4w
...0.0.0
...0.2.0
但是,我的问题是程序集的基本文件夹因使用的构建配置而异。即:如果 Build Configuration 是 "DEBUG" 那么用于保存用户设置的目录如下;
调试模式
C:\Users\Aaron\AppData\Local\Assistant\Assistant.exe_Url_1rohxsl103zsiltndvz23vqujpaafv4w
发布模式下如下;
释放模式
C:\Users\Aaron\AppData\Local\AssistantAssistant.exe_Url_od13shq40yxnxmu3xwepbkqf1bjqc34j
完全不同的目录。版本 1.0.0.0 留在 DEBUG 文件夹中,版本 1.0.2.0 放在 Release 文件夹中。自然;调用 My.Settings.Upgrade()
未找到任何要升级的先前设置,因为它们位于不同的文件夹中。
根据建筑配置,应用程序本质上被视为两个不同的组件。
我能理解什么时候这可能是可取的,但我有一种情况,我想分发一个 "DEBUG" 版本,以便我可以附加到一个远程 运行 进程等。在一点之后我希望及时分发应用程序的 "RELEASE" 版本。
然而,问题是用户设置对这两个版本并不通用,这基本上会导致用户设置丢失。
是否有任何解决方案可以在程序集的两个构建 Configurations/Versions 中统一用户设置的持久性和检索,而无需使用我自己的应用程序设置功能版本?
不,这不是真正的问题。它只发生在你的机器上,而不是用户的机器上。
哈希目录名称受 EXE 的几个属性影响,其中之一是安装 EXE 的目录的名称。在您的计算机上,您有不同的目录,bin\Debug 和 bin\Release。用户的机器只有一台,哪里安装过程序。
您可以更改项目设置,使它们相同。项目+属性,构建选项卡,输出路径设置。对调试配置执行此操作,将其更改为 bin\Release。足以测试和验证它是否有效,您可能想在感觉良好后将其更改回来:)