我有一个第 3 方应用程序,Remove Empty Directories aka RED,可以在这里下载:
http://sourceforge.net/projects/rem-empty-dir/files/?source=navbar
应用程序的用户设置遵循标准的 .Net 设置基础结构,它将其设置保存在如下目录中:
...\AppData\Local\RED2\RED2.ex_Url_ilre4odeu2sx2xsqyulyx2jybty45cd5\2.2.0.0
我的问题是,当我将应用程序文件夹移动到另一台 PC 时,我将ignore_directories
在user.config文件中保持设置,我的意思是当我将应用程序和设置文件移动到时,我将保留源 PC 的用户设置目标PC,但当然我不能只复制存储user.config文件的文件夹,因为user.config设置将自动存储在一个新文件夹中,新文件夹的新哈希与源PC完全不同,所以老用户目标 PC 中的.config文件将被忽略...无法识别。
这是user.config文件的默认内容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="RED2.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<RED2.Properties.Settings>
<setting name="last_used_directory" serializeAs="String">
<value>C:\Users\Administrador\AppData\Local\RED2\RED2.ex_Url_ilre4odeu2sx2xsqyulyx2jybty45cd5\</value>
</setting>
<setting name="infinite_loop_detection_count" serializeAs="String">
<value>10</value>
</setting>
<setting name="pause_between" serializeAs="String">
<value>80</value>
</setting>
<setting name="max_depth" serializeAs="String">
<value>-1</value>
</setting>
<setting name="ignore_directories" serializeAs="String">
<value>System Volume Information
RECYCLER
Papierkorb
Recycled
NtUninstall
$RECYCLE.BIN
GAC_MSIL</value>
</setting>
</RED2.Properties.Settings>
</userSettings>
</configuration>
这是我将持久化/可移植的内容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="RED2.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<RED2.Properties.Settings>
<setting name="last_used_directory" serializeAs="String">
<value>C:\</value>
</setting>
<setting name="infinite_loop_detection_count" serializeAs="String">
<value>10</value>
</setting>
<setting name="ignore_0kb_files" serializeAs="String">
<value>False</value>
</setting>
<setting name="pause_between" serializeAs="String">
<value>80</value>
</setting>
<setting name="max_depth" serializeAs="String">
<value>-1</value>
</setting>
<setting name="keep_system_folders" serializeAs="String">
<value>False</value>
</setting>
<setting name="ignore_directories" serializeAs="String">
<value>$RECYCLE.BIN
C:\Program Files\WindowsApps\Microsoft.WinJS.2.0_1.0.9600.16384_neutral__8wekyb3d8bbwe\microsoft.system.package.metadata
C:\ProgramData\Microsoft\Crypto
C:\ProgramData\Microsoft\Device Stage
C:\ProgramData\Microsoft\DRM
C:\ProgramData\Microsoft\IdentityCRL
C:\ProgramData\Microsoft\RAC\Temp
C:\ProgramData\Microsoft\Windows\DRM
C:\ProgramData\Microsoft\Windows\Sqm
C:\ProgramData\Microsoft\Windows\Start Menu
C:\Users\Administrador\AppData\Local\Microsoft\CLR_v2.0
C:\Users\Administrador\AppData\Local\Microsoft\Feeds Cache
C:\Users\Administrador\AppData\Local\Microsoft\Windows\AppCache
C:\Users\Administrador\AppData\Local\Microsoft\Windows\Application Shortcuts
C:\Users\Administrador\AppData\Local\Microsoft\Windows\Burn
C:\Users\Administrador\AppData\Local\Microsoft\Windows\Explorer\ThumbCacheToDelete
C:\Users\Administrador\AppData\Local\Microsoft\Windows\INetCache\IE
C:\Users\Administrador\AppData\Local\Microsoft\Windows\Notifications
C:\Users\Administrador\AppData\Roaming\Microsoft\Crypto
C:\Users\Administrador\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
C:\Users\Administrador\AppData\Roaming\Microsoft\SystemCertificates
C:\Users\Administrador\AppData\Roaming\Microsoft\Windows\AccountPictures
C:\Users\Administrador\AppData\Roaming\Microsoft\Windows\Network Shortcuts
C:\Users\Administrador\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
C:\Users\Administrador\AppData\Roaming\Microsoft\Windows\Recent
C:\Users\Administrador\AppData\Roaming\Microsoft\Windows\Start Menu
C:\Users\Default\AppData\Local\Microsoft\Windows
C:\Users\Default\AppData\Roaming\Microsoft\Windows
C:\Users\Public
C:\Windows\assembly
C:\Windows\Downloaded Program Files
C:\Windows\Help
C:\Windows\ImmersiveControlPanel
C:\Windows\Installer
C:\Windows\Logs
C:\Windows\Microsoft.NET\assembly
C:\Windows\Offline Web Pages
C:\Windows\Resources\Themes\aero
C:\Windows\ServiceProfiles
C:\Windows\servicing
C:\Windows\System32\catroot
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\CLR_v4.0
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Windows
C:\Windows\System32\config\systemprofile\AppData\Roaming\Microsoft\SystemCertificates
C:\Windows\System32\DriverStore\Temp
C:\Windows\System32\LogFiles
C:\Windows\System32\Microsoft\Crypto
C:\Windows\System32\ProximityToast
C:\Windows\System32\RasToast
C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Microsoft\CLR_v4.0_32
C:\Windows\SysWOW64\config\systemprofile\AppData\LocalLow\Microsoft
C:\Windows\SysWOW64\DriverStore\FileRepository
C:\Windows\SysWOW64\ProximityToast
C:\Windows\SysWOW64\RasToast
C:\Windows\Temp
C:\Windows\WinSxS\Backup
C:\Windows\WinSxS\InstallTemp
C:\Windows\WinSxS\Temp
System Volume Information</value>
</setting>
<setting name="delete_stats" serializeAs="String">
<value>3496</value>
</setting>
</RED2.Properties.Settings>
</userSettings>
</configuration>
我的问题是,我可以覆盖设置文件属性或其他可以使user.config文件真正可移植的解决方法,从而避免目录哈希问题?
好吧,我很确定这可能是因为我过去使用另一个 .Net 应用程序的另一个user.config文件做过,我不记得我做了什么,因为这是很多试验和错误,但我认为我所做的是在应用程序文件夹的同一目录中创建一个新的app.config文件,并将存储在AppData目录中的user.config的全部内容复制到应用程序工作目录中的新app.config文件中,然后在我希望app.config文件中的属性在应用程序在AppData中创建user.config时保留自定义默认值第一次运行目录,但这次该技术不适用于此应用程序RED2.exe。
我尝试了一些基本的想法,比如将user.config添加到存储RED2.exe的同一文件夹中,然后在文件中添加我喜欢的配置,我也做了同样的事情来创建app.config,一切正常,但也许我在手术过程中做错了什么。