.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。足以测试和验证它是否有效,您可能想在感觉良好后将其更改回来:)