У меня есть стороннее приложение Удалить пустые каталоги, также известное как КРАСНЫЙ, которое можно скачать здесь:
http://sourceforge.net/projects/rem-empty-dir/files/?source=navbar
Пользовательские настройки приложения соответствуют стандартной инфраструктуре настроек .Net, они сохраняют свои настройки в таком каталоге:
... \ AppData \ Local \ RED2 \ RED2.ex_Url_ilre4odeu2sx2xsqyulyx2jybty45cd5 \ 2.2.0.0
Моя проблема в том, что я сделаю параметр ignore_directories
постоянным внутри файла user.config при перемещении папки приложения на другой ПК, я имею в виду, что я сохраню пользовательские настройки исходного ПК при перемещении приложение и файл настроек на целевой компьютер, но, конечно, я не могу просто скопировать папку, в которой хранится файл user.config, потому что настройки user.config будут будут автоматически сохранены в новой папке с новым хешем, полностью отличным от исходного ПК, поэтому старый файл user.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 действительно переносимым, избегая проблемы с хешем каталога?
Что ж, я почти уверен, что это, возможно, потому, что я делал это в прошлом с другим файлом user.config другого приложения .Net, я не могу точно вспомнить, что я сделал, потому что это было много методом проб и ошибок, но я думаю, что я создал новый файл app.config в том же каталоге папки приложения и просто скопировал все содержимое файла user.config strong > хранится в каталоге AppData в моем новом файле app.config в рабочем каталоге приложения, а затем редактирую по моему желанию свойства внутри app.config strong >, чтобы сохранить пользовательское значение по умолчанию, когда приложение создает user.config в каталоге AppData для первого запуска, но этот метод на этот раз не сработал. приложение RED2.exe.
Я попробовал несколько основных идей, например, добавил user.config в ту же папку, где хранится RED2.exe, а затем добавил в файл понравившуюся мне конфигурацию, а также сделал то же самое при создании app.config, все сработало, но, возможно, я сделал что-то не так во время процедуры.