Files

93 lines
7.9 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- DataPRO/Modules/InstallerCustomActions/MigrateConfiguration/Resources/StringResources.Designer.cs
generated_at: "2026-04-16T04:45:05.933790+00:00"
model: "Qwen/Qwen3-Coder-Next-FP8"
schema_version: 1
sha256: "99758cb5d382b63b"
---
# Resources
## Documentation: `StringResources` Class (`DataPRO/Modules/InstallerCustomActions/MigrateConfiguration/Resources/StringResources.Designer.cs`)
---
### 1. Purpose
This module provides a strongly-typed, localized string resource accessor for the `MigrateConfiguration` installer custom action. It centralizes all user-facing messages related to configuration migration (e.g., status updates, warnings, errors) to support localization and maintain consistency across installer logic. The class is auto-generated from `.resx` resources and is not intended for manual modification.
---
### 2. Public Interface
All members are `internal` (not `public`), but are exposed as static properties for use within the same assembly. The class is named `StringResources` in the `MigrateConfiguration.Resources` namespace.
| Property | Type | Description |
|---------|------|-------------|
| `ResourceManager` | `System.Resources.ResourceManager` | Returns a cached `ResourceManager` instance for the `MigrateConfiguration.Resources.StringResources` resource set. Thread-safe after first access. |
| `Culture` | `System.Globalization.CultureInfo` | Gets or sets the UI culture used for resource lookups. Overrides the current thread's `CurrentUICulture` for this class. |
| `ApplicationSettings` | `string` | Returns `"applicationSettings"` — likely the config section name for application-level settings. |
| `ConfigDidNotNeedToBeUpdated` | `string` | Returns `"DataPRO.exe.config did not need to be updated."` |
| `ConfigMigrationStatus` | `string` | Returns `"Config migration status."` — likely a log header. |
| `ConfigWasUpdated` | `string` | Returns `"DataPRO.exe.config was updated from the {0} installation."` — format expects one argument (e.g., source version). |
| `DataPROWin7PropertiesSettings` | `string` | Returns `"DataPROWin7.Properties.Settings."` — likely the user settings section name. |
| `DataUpOneLevel` | `string` | Returns `"..\Data"` — relative path to data directory. |
| `DataUpTwoLevels` | `string` | Returns `"..\..\Data"` — relative path to data directory (two levels up). |
| `DownloadFolder` | `string` | Returns `"DownloadFolder"` — likely a config key name. |
| `DTSCommonCorePluginLibConfig` | `string` | Returns `"DTS.Common.Core.PluginLib.Config"` — likely a config section name. |
| `DTSPlugins` | `string` | Returns `"DTSPlugins"` — likely a config key name. |
| `DTSPluginsNeedsModification` | `string` | Returns `"The 'DTSPlugins' key in DataPRO.exe.config must be manually changed to '..//RunTimeModules'."` |
| `DTSViewerModules` | `string` | Returns `"DTSViewerModules"` — likely a config key name. |
| `FailedToCopyLicense` | `string` | Returns `"Failed to copy license."` |
| `ImportArchiveFolder` | `string` | Returns `"ImportArchiveFolder"` — likely a config key name. |
| `ImportArchiveUpTwoLevels` | `string` | Returns `"..\..\ImportArchive"` — relative path. |
| `InstallerLicenseFileFoundCopied` | `string` | Returns `"Installer license file found and copied."` |
| `KeyNotFound` | `string` | Returns `"DTSPlugins key not found: {0}."` — format expects one argument (e.g., key name). |
| `NewSettingsCouldNotBeFound` | `string` | Returns `"Warning: DataPRO.exe.config was not updated because config settings from new version of DataPRO could not be found: {0}; {1}."` — two arguments expected. |
| `NewSettingsCouldNotBeProcessed` | `string` | Returns `"Warning: DataPRO.exe.config was not updated because config settings from new version of DataPRO could not be processed.."` |
| `NoLicenseFound` | `string` | Returns `"No license found to copy."` |
| `OldLicenseFoundCopied` | `string` | Returns `"Old license found and copied."` |
| `OldSettingsCouldNotBeFound` | `string` | Returns `"Warning: DataPRO.exe.config was not updated because config settings from previously-installed version of DataPRO could not be found: {0}; {1}."` — two arguments expected. |
| `OldSettingsCouldNotBeProcessed` | `string` | Returns `"Warning: DataPRO.exe.config was not updated because config settings from previously-installed version of DataPRO could not be processed.."` |
| `RegistryDataPROExe` | `string` | Returns `"DataPRO.exe"` — likely a registry key name. |
| `RunTimeModules` | `string` | Returns `"RunTimeModules"` — likely a config key name (target value for `DTSPlugins`). |
| `SectionNotFound` | `string` | Returns `"DTS.Common.Core.PluginLib.Config section not found."` |
| `SettingNotFound` | `string` | Returns `"Configuration setting not found: {0}."` — format expects one argument (e.g., setting name). |
| `ThisSettingNeedsModification` | `string` | Returns `"The {0} setting in DataPRO.exe.config was not changed to {1}.."` — two arguments expected (old value, new value). |
| `UserSettings` | `string` | Returns `"userSettings"` — likely the config section name for user-level settings. |
> **Note**: All string properties are read-only and perform a lookup via `ResourceManager.GetString(...)`. None accept parameters directly; formatting is done by the caller.
---
### 3. Invariants
- The class is **thread-safe for read-only access** to `ResourceManager` (due to null-check-and-assign pattern in the getter), but `Culture` is not thread-safe when set concurrently.
- Resource keys (e.g., `"ApplicationSettings"`, `"DTSPlugins"`) are assumed to exist in the underlying `.resx` file; missing keys would cause a `MissingManifestResourceException` at runtime (not caught in this class).
- The class is **not meant to be instantiated**; the constructor is `internal` and only used by the runtime.
- All string values are **static after first access**; no runtime mutation of the returned strings occurs.
---
### 4. Dependencies
- **Depends on**:
- `System.Resources.ResourceManager`
- `System.Globalization.CultureInfo`
- `System.CodeDom.Compiler`, `System.Diagnostics`, `System.Runtime.CompilerServices`, `System.ComponentModel` (for attributes)
- The compiled assembly containing the `.resx` resources (same assembly as `StringResources` type).
- **Used by**:
- The `MigrateConfiguration` installer custom action module (inferred from namespace and file path).
- Likely consumed by other classes in `MigrateConfiguration` (e.g., custom action logic that logs or displays messages during config migration).
- **Not used by**:
- Runtime application code (outside installer context), as the namespace and path suggest installer-specific usage.
---
### 5. Gotchas
- **Auto-generated**: Manual edits will be overwritten. Changes must be made in the source `.resx` file.
- **No error handling**: Resource lookup failures (e.g., missing key) will throw exceptions at runtime; callers must handle or expect crashes.
- **Hardcoded paths**: Paths like `..\Data` and `..\..\Data` are hardcoded strings — their correctness depends on the installers working directory and deployment layout.
- **Inconsistent formatting**: Some messages include trailing periods (`.`), others do not (e.g., `ConfigDidNotNeedToBeUpdated` vs `ConfigMigrationStatus`).
- **Typo in path separator**: `DTSPluginsNeedsModification` uses `'..//RunTimeModules'` (double slash), which may be unintentional.
- **Ambiguous keys**: Several keys (e.g., `DownloadFolder`, `ImportArchiveFolder`) are likely config *keys*, not values — but the class provides no distinction. Callers must know the context.
- **No localization fallback logic**: If `Culture` is set to a language without resources, `ResourceManager` may fall back to invariant culture — behavior is standard but not explicit here.
> **None identified from source alone** beyond the above — no evidence of deprecated APIs, legacy workarounds, or known bugs beyond the noted inconsistencies.