From 53979465d43e078d04ec2a24ecf51a60cd723a91 Mon Sep 17 00:00:00 2001 From: Marks Troicins Date: Thu, 23 Jul 2026 14:44:49 +0200 Subject: [PATCH 1/7] New improvement for mx.exe documentation --- .../docs/refguide/general/mx-command-line-tool/module.md | 8 ++++---- .../refguide10/general/mx-command-line-tool/module.md | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/content/en/docs/refguide/general/mx-command-line-tool/module.md b/content/en/docs/refguide/general/mx-command-line-tool/module.md index c1e3206da1b..0909b6050c8 100644 --- a/content/en/docs/refguide/general/mx-command-line-tool/module.md +++ b/content/en/docs/refguide/general/mx-command-line-tool/module.md @@ -17,7 +17,7 @@ To see the command parameters for each command, use the `--help` parameter. For ## mx show-module-version Command {#show-module-version} -The `mx show-module-version` command outputs the version of a module. +The `mx show-module-version` command outputs the version of a module. This command works for all modules in the app, except the System module. ### Usage @@ -42,13 +42,13 @@ This table shows the return codes and their description: | Return Code | Description | | --- | --- | | `0` | No errors. | -| `1` | The module does not have a version. | +| `1` | The specified project file does not exist, the module does not exist, or the module is the System module. | The command will output the version of the module to the command line output. ## mx set-module-version Command {#set-module-version} -The `mx set-module-version` command changes the version of an add-on module. +The `mx set-module-version` command changes the version of a module. This command works for all modules in the app, except the System module. ### Usage @@ -75,7 +75,7 @@ This table shows the return codes and their description: | Return Code | Description | | --- | --- | | `0` | No errors. | -| `1` | The module does not have a version. | +| `1` | The specified project file does not exist, the module does not exist, or the module is the System module. | ## mx module-import Command {#module-import} diff --git a/content/en/docs/refguide10/general/mx-command-line-tool/module.md b/content/en/docs/refguide10/general/mx-command-line-tool/module.md index 1c607de4cba..6b7f47a2bd8 100644 --- a/content/en/docs/refguide10/general/mx-command-line-tool/module.md +++ b/content/en/docs/refguide10/general/mx-command-line-tool/module.md @@ -17,7 +17,7 @@ To see the command parameters for each command, use the `--help` parameter. For ## mx show-module-version Command {#show-module-version} -The `mx show-module-verion` command outputs the version of a module. +The `mx show-module-version` command outputs the version of a module. This command works for all modules in the app, except the System module. ### Usage @@ -42,13 +42,13 @@ This table shows the return codes and their description: | Return Code | Description | | --- | --- | | `0` | No errors. | -| `1` | The module does not have a version. | +| `1` | The specified project file does not exist, the module does not exist, or the module is the System module. | The command will output the version of the module to the command line output. ## mx set-module-version Command {#set-module-version} -The `mx set-module-version` changes the version of an add-on module. +The `mx set-module-version` command changes the version of a module. This command works for all modules in the app, except the System module. ### Usage @@ -75,7 +75,7 @@ This table shows the return codes and their description: | Return Code | Description | | --- | --- | | `0` | No errors. | -| `1` | The module does not have a version. | +| `1` | The specified project file does not exist, the module does not exist, or the module is the System module. | ## mx module-import Command {#module-import} From f5b028d76bdd49230ddde2990f99249a84fd0bca Mon Sep 17 00:00:00 2001 From: Marks Troicins Date: Tue, 4 Aug 2026 11:13:13 +0200 Subject: [PATCH 2/7] Mx.exe module-import updated documentation --- .../general/mx-command-line-tool/module.md | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/content/en/docs/refguide/general/mx-command-line-tool/module.md b/content/en/docs/refguide/general/mx-command-line-tool/module.md index c1e3206da1b..09c8f9251cd 100644 --- a/content/en/docs/refguide/general/mx-command-line-tool/module.md +++ b/content/en/docs/refguide/general/mx-command-line-tool/module.md @@ -85,18 +85,52 @@ The `mx module-import` command imports a source module (*.mpk*) into an app. Use the following command pattern for `mx module-import`: -`mx module-import MPK_PATH MPR_PATH` +`mx module-import MPK_PATH MPR_PATH [--import-mode ] [--conflict ] [--metadata ]` For `MPK_PATH`, enter a *.mpk* file with the module you want to import. For `MPR_PATH`, enter a *.mpr* file of the project you want to import a module into. +#### --import-mode + +The `--import-mode` option controls what happens when a module with the same name already exists in the app: + +* `add` – Add the module. Fails if a module with the same name already exists. This is the default. +* `replace` – Replace the existing module. Fails with exit code 310 if no module with that name is found in the app. +* `update` – Replace the module if it already exists, or add it if it does not. + +#### --conflict + +The `--conflict` option controls what happens when a same-name module already exists, and applies to the `add` and `update` modes: + +* `fail` – Return an error. This is the default. +* `take_mine` – Keep the existing module and skip the import silently. +* `take_theirs` – Replace the existing module. + +#### --metadata + +The `--metadata` option controls how marketplace identity fields are handled when a module is replaced. This option only takes effect when a replacement actually occurs. + +* `take_new` – Use the identity fields from the incoming module. This is the default. +* `take_existing` – Copy the identity fields from the module being replaced. +* `erase` – Clear all identity fields. + +Regardless of the chosen strategy, `FromAppStore` is always inherited from the existing module, and `AppStoreVersion`/`AppStoreVersionGuid` fall back to the existing values when the incoming module does not provide them. + ### Examples -Here is an example: +Add a module to an app: `mx module-import MyNewModule.mpk MyApp.mpr` +Replace an existing module, keeping its marketplace identity: + +`mx module-import MyNewModule.mpk MyApp.mpr --import-mode replace --metadata take_existing` + +Update a module if it exists or add it if not, overwriting on collision: + +`mx module-import MyNewModule.mpk MyApp.mpr --import-mode update --conflict take_theirs` + ### Return Codes The command returns 0 if it is successful. @@ -121,6 +155,9 @@ In case of errors, the exit code consists of three digits `XYZ`: * 6 – Project can't be loaded * 7 – Module can't be loaded * 8 – Import of a module failed. Resulting project can't be saved. + * 9 – File does not exist. + * 10 – `--import-mode replace` was specified but no module with that name exists in the project. + * 11 – The MPK file has an unrecognised extension. For example: From da8d13c73ecabe06873e5a8c41be35806bb818db Mon Sep 17 00:00:00 2001 From: Marks Troicins Date: Tue, 4 Aug 2026 11:17:02 +0200 Subject: [PATCH 3/7] Avoid command headers --- .../refguide/general/mx-command-line-tool/module.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/content/en/docs/refguide/general/mx-command-line-tool/module.md b/content/en/docs/refguide/general/mx-command-line-tool/module.md index 09c8f9251cd..a8d3a93a7f9 100644 --- a/content/en/docs/refguide/general/mx-command-line-tool/module.md +++ b/content/en/docs/refguide/general/mx-command-line-tool/module.md @@ -91,25 +91,19 @@ For `MPK_PATH`, enter a *.mpk* file with the module you want to import. For `MPR_PATH`, enter a *.mpr* file of the project you want to import a module into. -#### --import-mode - -The `--import-mode` option controls what happens when a module with the same name already exists in the app: +For `--import-mode`, enter one of the following values to control what happens when a module with the same name already exists in the app: * `add` – Add the module. Fails if a module with the same name already exists. This is the default. * `replace` – Replace the existing module. Fails with exit code 310 if no module with that name is found in the app. * `update` – Replace the module if it already exists, or add it if it does not. -#### --conflict - -The `--conflict` option controls what happens when a same-name module already exists, and applies to the `add` and `update` modes: +For `--conflict`, enter one of the following values to control what happens when a same-name module already exists. This applies to the `add` and `update` modes: * `fail` – Return an error. This is the default. * `take_mine` – Keep the existing module and skip the import silently. * `take_theirs` – Replace the existing module. -#### --metadata - -The `--metadata` option controls how marketplace identity fields are handled when a module is replaced. This option only takes effect when a replacement actually occurs. +For `--metadata`, enter one of the following values to control how marketplace identity fields are handled when a module is replaced. This option only takes effect when a replacement actually occurs: * `take_new` – Use the identity fields from the incoming module. This is the default. * `take_existing` – Copy the identity fields from the module being replaced. From 8bd85d50a4d62d926f9a1596970bda898e5ddaa8 Mon Sep 17 00:00:00 2001 From: Marks Troicins Date: Fri, 7 Aug 2026 11:19:21 +0200 Subject: [PATCH 4/7] Error code description modified --- content/en/docs/refguide/general/mx-command-line-tool/module.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/refguide/general/mx-command-line-tool/module.md b/content/en/docs/refguide/general/mx-command-line-tool/module.md index a8d3a93a7f9..c2871cbf4af 100644 --- a/content/en/docs/refguide/general/mx-command-line-tool/module.md +++ b/content/en/docs/refguide/general/mx-command-line-tool/module.md @@ -137,7 +137,7 @@ In case of errors, the exit code consists of three digits `XYZ`: * 2 – output-related error * 3 – errors related to the execution of the operation -* Y is the number of the parameter the error is related to. If the error is not related to the parameters, this is zero. +* Y is the number of the parameter the error is related to. This component is only valid if X = 1. If the error is not related to the parameters, this component is used by error details code mentioned in Z section below. * Z indicates the error details: From d56fb8442598e51ff53c16de74a960388d9b3a07 Mon Sep 17 00:00:00 2001 From: Quinn Tracy <142489060+quinntracy@users.noreply.github.com> Date: Thu, 13 Aug 2026 15:24:16 +0200 Subject: [PATCH 5/7] Revise to include info box with versioning --- .../refguide/general/mx-command-line-tool/module.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/content/en/docs/refguide/general/mx-command-line-tool/module.md b/content/en/docs/refguide/general/mx-command-line-tool/module.md index f1926b9e057..37e2bb8ac20 100644 --- a/content/en/docs/refguide/general/mx-command-line-tool/module.md +++ b/content/en/docs/refguide/general/mx-command-line-tool/module.md @@ -17,7 +17,11 @@ To see the command parameters for each command, use the `--help` parameter. For ## mx show-module-version Command {#show-module-version} -The `mx show-module-version` command outputs the version of a module. This command works for all modules in the app, except the System module. +The `mx show-module-version` command outputs the version of a module. + +{{% alert type="info" %}} +As of Studio Pro 11.14 and 11.12.3, this command works for all modules in the app, except the System module. +{{% /alert %}} ### Usage @@ -48,7 +52,11 @@ The command will output the version of the module to the command line output. ## mx set-module-version Command {#set-module-version} -The `mx set-module-version` command changes the version of a module. This command works for all modules in the app, except the System module. +The `mx set-module-version` command changes the version of a module. + +{{% alert type="info" %}} +As of Studio Pro 11.14 and 11.12.3, this command works for all modules in the app, except the System module. +{{% /alert %}} ### Usage From d81bb76b0035689f5966e1dd4f9bb4a83fc0d7d3 Mon Sep 17 00:00:00 2001 From: Quinn Tracy <142489060+quinntracy@users.noreply.github.com> Date: Tue, 18 Aug 2026 11:46:12 +0200 Subject: [PATCH 6/7] Review --- .../general/mx-command-line-tool/module.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/content/en/docs/refguide/general/mx-command-line-tool/module.md b/content/en/docs/refguide/general/mx-command-line-tool/module.md index 37e2bb8ac20..11f74c9fe32 100644 --- a/content/en/docs/refguide/general/mx-command-line-tool/module.md +++ b/content/en/docs/refguide/general/mx-command-line-tool/module.md @@ -19,7 +19,7 @@ To see the command parameters for each command, use the `--help` parameter. For The `mx show-module-version` command outputs the version of a module. -{{% alert type="info" %}} +{{% alert color="info" %}} As of Studio Pro 11.14 and 11.12.3, this command works for all modules in the app, except the System module. {{% /alert %}} @@ -54,7 +54,7 @@ The command will output the version of the module to the command line output. The `mx set-module-version` command changes the version of a module. -{{% alert type="info" %}} +{{% alert color="info" %}} As of Studio Pro 11.14 and 11.12.3, this command works for all modules in the app, except the System module. {{% /alert %}} @@ -102,7 +102,7 @@ For `MPR_PATH`, enter a *.mpr* file of the project you want to import a module i For `--import-mode`, enter one of the following values to control what happens when a module with the same name already exists in the app: * `add` – Add the module. Fails if a module with the same name already exists. This is the default. -* `replace` – Replace the existing module. Fails with exit code 310 if no module with that name is found in the app. +* `replace` – Replace the existing module. Fails with exit code `310` if no module with that name is found in the app. * `update` – Replace the module if it already exists, or add it if it does not. For `--conflict`, enter one of the following values to control what happens when a same-name module already exists. This applies to the `add` and `update` modes: @@ -111,7 +111,7 @@ For `--conflict`, enter one of the following values to control what happens when * `take_mine` – Keep the existing module and skip the import silently. * `take_theirs` – Replace the existing module. -For `--metadata`, enter one of the following values to control how marketplace identity fields are handled when a module is replaced. This option only takes effect when a replacement actually occurs: +For `--metadata`, enter one of the following values to control how Marketplace identity fields are handled when a module is replaced. This option only takes effect when a replacement actually occurs: * `take_new` – Use the identity fields from the incoming module. This is the default. * `take_existing` – Copy the identity fields from the module being replaced. @@ -145,7 +145,7 @@ In case of errors, the exit code consists of three digits `XYZ`: * 2 – output-related error * 3 – errors related to the execution of the operation -* Y is the number of the parameter the error is related to. This component is only valid if X = 1. If the error is not related to the parameters, this component is used by error details code mentioned in Z section below. +* Y is the number of the parameter the error is related to. This component is only valid if X = 1. If the error is not related to the parameters, Y contains the error details code described in Z below. * Z indicates the error details: @@ -157,9 +157,9 @@ In case of errors, the exit code consists of three digits `XYZ`: * 6 – Project can't be loaded * 7 – Module can't be loaded * 8 – Import of a module failed. Resulting project can't be saved. - * 9 – File does not exist. - * 10 – `--import-mode replace` was specified but no module with that name exists in the project. - * 11 – The MPK file has an unrecognised extension. + * 9 – File does not exist + * 10 – `--import-mode replace` was specified but no module with that name exists in the project + * 11 – The *.mpk* file has an unrecognized extension For example: From 6ce9df26ab5cd0cd5c9fa255f9e04df9afba984c Mon Sep 17 00:00:00 2001 From: Marks Troicins Date: Wed, 19 Aug 2026 12:02:24 +0200 Subject: [PATCH 7/7] Remove AppStoreVersionGuid reference from --metadata description --- content/en/docs/refguide/general/mx-command-line-tool/module.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/refguide/general/mx-command-line-tool/module.md b/content/en/docs/refguide/general/mx-command-line-tool/module.md index 11f74c9fe32..62a7f6658a5 100644 --- a/content/en/docs/refguide/general/mx-command-line-tool/module.md +++ b/content/en/docs/refguide/general/mx-command-line-tool/module.md @@ -117,7 +117,7 @@ For `--metadata`, enter one of the following values to control how Marketplace i * `take_existing` – Copy the identity fields from the module being replaced. * `erase` – Clear all identity fields. -Regardless of the chosen strategy, `FromAppStore` is always inherited from the existing module, and `AppStoreVersion`/`AppStoreVersionGuid` fall back to the existing values when the incoming module does not provide them. +Regardless of the chosen strategy, `FromAppStore` is always inherited from the existing module, and `AppStoreVersion` falls back to the existing values when the incoming module does not provide them. ### Examples