如果这不是提问的正确地点,我非常抱歉,但我希望有人能用简单的英语解释发生了什么。
我们是 A 公司,最近被 B 公司收购了。我们的应用程序以我们的公司命名,因此为了简单起见,我们编写了一个应用程序并将其构建为 CompanyA.exe
我们的应用程序创建一个文件夹 %localappdata%\CompanyA,我们在其中放置“我们的东西”
我们的应用程序是主要使用 VB.NET 为 .NET Framework 4.8 编写的 WPF 应用程序。我们的应用程序使用 .SNK 文件进行签名
当我们被收购时,我们将装配信息中的公司名称更改为 “CompanyA,CompanyB 解决方案”,但我们仍然将应用程序构建为 CompanyA.exe
现在奇怪的事情来了
我们开始注意到创建了一个文件夹 %localappdata%\CompanyA,_a_CompanyB_solution
在该文件夹中将以我们的一些可执行文件命名的子文件夹,后跟 Strongname 后跟一堆随机的字符,后跟版本文件夹名称
每个子文件夹中都有一个 user.config 文件
例如,我们可能会发现 %localappdata%\CompanyA,a_CompanyB_solution\CompanyA.exe_StrongName这里是胡言乱语.2.3.4\user.config 在我们构建应用程序 CompanyA.exe 的 1.2.3.4 版本之后
user.config 文件包含的内容非常少,删除任何这些文件,甚至整个 %localappdata%\CompanyA,_a_CompanyB_solution 文件夹,对于应用程序的可用性没有任何影响。无论有没有该文件夹,它都可以正常工作。
我的问题:
当您将
app.config
文件添加到 VB 项目并添加保存到该文件的设置时,就会创建这些文件夹和文件。这些设置需要在 PC 上保存每个用户,因此 .NET Framework 创建这些文件夹来存储特定用户版本的 user.config 文件,该文件是 app.config 文件的子集(用户可保存值) ).
我们开始注意到在 %localappdata%\CompanyA,_a_CompanyB_solution 处创建了一个文件夹
如果您转到项目属性并选择“程序集信息”,您会注意到该文件夹以
Company
值命名。
例如,在构建应用程序 CompanyA.exe 的 1.2.3.4 版本后,我们可能会在此处找到 %localappdata%\CompanyA,a_CompanyB_solution\CompanyA.exe_StrongNamegibberishhere .2.3.4\user.config
此文件夹以可执行文件名称命名,文件夹层次结构中的 user.config 文件用于存储用户保存的设置。
在项目属性中,您应该有一个“设置”选项卡,也可以从解决方案资源管理器中的“properties\settings.settings”访问。
这些设置可用于存储各种配置。设置有两个不同的范围:
尝试搜索
Settings.Default.Save()
,或仅搜索 Default.Save()
,因为这些是保存默认设置文件的调用。您也可以尝试搜索ConfigurationManager
。希望这能给您一些有关这些文件的使用地点和方式的提示。