This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
---
source_files:
- DataPRO/Modules/InstallerCustomActions/MigrateConfiguration/Properties/AssemblyInfo.cs
generated_at: "2026-04-16T04:45:01.515164+00:00"
model: "Qwen/Qwen3-Coder-Next-FP8"
schema_version: 1
sha256: "9c70466a40d28903"
---
# Properties
## Documentation Page: `MigrateConfiguration` Assembly
### 1. Purpose
This module is an assembly named **`MigrateConfiguration`**, intended to support custom actions during installation processes—specifically, to handle migration of configuration data. Based on its placement in the `DataPRO/Modules/InstallerCustomActions/MigrateConfiguration/` directory structure, it serves as a dedicated component for configuration migration logic within a larger installer framework (likely Windows Installer-based, given the `CustomActions` context). The assembly itself contains no visible implementation code in the provided source file; it is purely an assembly metadata definition, suggesting the actual migration logic resides in other files (e.g., `CustomAction.cs`, `Migrator.cs`, etc.) not included here.
### 2. Public Interface
**No public types, functions, or classes are defined in this file.**
The provided source (`AssemblyInfo.cs`) contains only assembly-level attributes (e.g., title, version, COM visibility). It does not declare any public classes, interfaces, methods, or properties. Therefore, **no public interface elements can be documented from this file alone**.
### 3. Invariants
- The assembly is **not visible to COM** (`ComVisible(false)`), meaning it is not intended for interop with COM clients.
- The assembly version is fixed at `1.0.0.0` for both `AssemblyVersion` and `AssemblyFileVersion`.
- The `Guid` attribute (`c255c030-ef08-4974-8654-969e29ab3b77`) uniquely identifies the typelib for COM exposure (though COM visibility is disabled, this GUID is still defined and may be used internally or by tooling).
- The assembly title and product name are both `"MigrateConfiguration"`, indicating its intended role.
### 4. Dependencies
- **Runtime dependencies**: This file imports `System.Reflection`, `System.Runtime.CompilerServices`, and `System.Runtime.InteropServices`, indicating it relies on standard .NET reflection and COM interop namespaces.
- **Consumers**: Since this is an assembly metadata file, it does not directly declare dependencies on other modules. However, the *actual implementation* of the `MigrateConfiguration` assembly (in other, unprovided files) likely depends on installer-related libraries (e.g., `System.Configuration.Install`, Windows Installer XML (WiX) toolset, or custom installer action base classes).
- **Dependents**: Other modules in the `DataPRO/Modules/InstallerCustomActions/` hierarchy (e.g., a main installer project or bootstrapper) are expected to reference this assembly to invoke its custom actions.
### 5. Gotchas
- **No implementation logic is present in this file.** Developers may mistakenly assume this file contains migration logic; it is *only* metadata. Actual functionality resides elsewhere (e.g., in a `CustomAction` class in the same project).
- The assembly version is hardcoded to `1.0.0.0` with no auto-increment (`1.0.*` is commented out). This may lead to versioning issues if updates are deployed without manually bumping the version.
- `ComVisible(false)` is set, but a `Guid` is still provided. This is valid but unusual—ensure no legacy tooling expects COM visibility for this assembly.
- No licensing, security, or threading model attributes are declared (e.g., `STAThreadAttribute`), which may be relevant if the assembly hosts custom actions in a UI context.
- **None identified from source alone.** (Note: The above points are inferred from standard .NET conventions and the structure of `AssemblyInfo.cs`, not from explicit source behavior.)

View File

@@ -0,0 +1,93 @@
---
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.