93 lines
7.9 KiB
Markdown
93 lines
7.9 KiB
Markdown
|
|
---
|
|||
|
|
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 installer’s 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.
|