查找有关 user.config 文件的信息以及导致 .NET Framework 应用程序创建这些文件的原因

问题描述 投票:0回答:2

如果这不是提问的正确地点,我非常抱歉,但我希望有人能用简单的英语解释发生了什么。

我们是 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 文件夹,对于应用程序的可用性没有任何影响。无论有没有该文件夹,它都可以正常工作。

我的问题:

  1. 是什么原因导致这个的产生?我们不知道我们故意更改了应用程序中的任何内容来告诉它创建这些。
  2. 这些文件有什么用途?
  3. 如果它们看起来并不重要(至少对于我们的应用程序而言),那么我们可以在应用程序的配置中更改任何内容来阻止它执行此操作吗?
c# .net vb.net user-config
2个回答
0
投票

当您将

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 文件用于存储用户保存的设置。


0
投票

在项目属性中,您应该有一个“设置”选项卡,也可以从解决方案资源管理器中的“properties\settings.settings”访问。

这些设置可用于存储各种配置。设置有两个不同的范围:

  1. 应用程序:这些存储在程序目录中的“yourprojectName.exe.config”中,并且无法从应用程序本身内部进行更改。
  2. 用户:这些存储在%LocalAppdata%文件夹中,并且可能是您所看到的内容的原因。我不确定它到底如何选择子文件夹名称,请参阅 Properties.Settings.Default 存储在哪里? 了解更多信息。这些设置可以在应用程序内更改。

尝试搜索

Settings.Default.Save()
,或仅搜索
Default.Save()
,因为这些是保存默认设置文件的调用。您也可以尝试搜索
ConfigurationManager
。希望这能给您一些有关这些文件的使用地点和方式的提示。

© www.soinside.com 2019 - 2024. All rights reserved.