如果我将我编译的应用程序重命名为例如myapp.exe
,app.exe
那么当我运行重命名的可执行文件时,将在此路径中生成一个新的用户设置文件夹:
C:\Users\{User}\AppData\Local\{CompanyName}\{ExecutableName}_Url_{SystemGUID or something strange}
Run Code Online (Sandbox Code Playgroud)
所以我放弃了所有保存的设置.
那么我如何解决在VBNET
WinForms
我自己的位置定义存储user.config
文件或使用应用程序设置基础结构的任何其他解决方案的问题?(不保存注册表或其他内容的设置)
PS:我已经阅读了这篇SO帖子,这是一个有点不同的问题,但无论如何我没有理解所谓的解决方案我可以控制.NET用户设置的位置,以避免丢失应用程序升级的设置吗?
我的程序内置了一些设置,其中都有一个用户范围.但是,当程序启动时,它只会创建包含设置的AppName.exe.config文件.
在运行时期间稍后保存设置时,它会在AppData/Local/AppName/location中创建user.config文件(以前不存在),但该文件仅包含已保存的设置.
为什么会这样?为什么不创建user.config或在启动时使用它?
我有一个从用户设置文件读取的应用程序,该文件通常存储在Users / {username} / AppData / Local / {publisher} / {app} / {version} /user.config中。我想测试直接对文件进行更改,而不是通过Visual Studio属性编辑器进行更改。
我找到了另一个问题的答案,该问题指向应用程序应该从何处加载文件,但是当我在Visual Studio中的调试会话期间进行检查时,似乎不存在该问题。
例如,当我在断点处停止时在“立即”窗口中运行以下命令时,它找不到文件。
System.IO.File.Exists(System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath) //returns false
Run Code Online (Sandbox Code Playgroud)
我想在调试过程中找到此文件的原因是,我收到了有关配置文件已损坏并使生产中的应用程序崩溃的报告。我确定可以将文件恢复为默认状态,但实际上我想在调试环境中重现该问题。
如何找到Visual Studio加载的设置文件?
我有一种情况,我正在运行我的WPF应用程序的多个实例.我希望实例共享相同的user.config文件.目前,无论哪个实例写入user.config文件最后获胜.我希望所有实例都能看到user.config文件,并在其他实例更改时重新加载设置.user.config文件当前位于此处:
C:\ Documents and Settings\username\Local Settings\Application Data\company name\ExeName .exe_StrongName_ hash\1.0.0.0
例如,C:\ Documents and Settings\usename\Local Settings\Application Data\Company\5kAdCon.exe_StrongName_gxh0g12uyafipnfrslaggvy4vvk01fko\1.0.0.0
有没有办法让我获得这个完整的路径(包括哈希),所以我可以添加文件观察器到user.config文件?
如果是这样,我想在文件更改时重新加载设置.它是否像调用此方法一样简单?
Properties.Settings.Default.Reload();
Run Code Online (Sandbox Code Playgroud) 当前,我的应用程序的用户设置存储在此默认目录中:
C:\Users\{User Name}\AppData\Roaming\{Company Name}\{Assembly Name}.vshos_Url_{Hash}\{Assembly Version}
Run Code Online (Sandbox Code Playgroud)
我知道默认Microsoft命名规则的含义,我的问题是:如何在执行时更改defaut文件夹或通过修改appconfig文件?
我的意图是只能处理将应用程序的用户设置保存到的目录,例如,我想将用户设置文件保存在以下目录中:
C:\Users\{User Name}\AppData\Roaming\{Assembly Name}
Run Code Online (Sandbox Code Playgroud)
我知道这是可以实现的,因为我已经看到很多.NET应用程序可以将其userconfig文件存储在自定义漫游文件夹中,该文件夹不遵循Microsoft默认规则以及未处理的哈希和其他令人讨厌的命名规则。