> For the complete CircleCI developer hub index, see [llms.txt](https://circleci.com/developer/llms.txt)

# circleci/microsoft-msix

Easily build MSIX and AppX packages on CircleCI.


## Commands

### pack

| Parameter | Type | Default | Description |
|---|---|---|---|
| `certificate-password` | env_var_name | MSIX_CERTIFICATE_PASSWORD | Environment variable containing the password used to decrypt the
certificate file.
 |
| `import-cert` | boolean | true | Automatically import a certificate into the machine's store based on the
values of signing-cert and certificate-password. Set this to false if you
will be importing your certificate in some other way (e.g Hashicorp
Vault).
 |
| `manifest-file` | string |  | Manifest file to use when building MSIX without source code. |
| `mapping-file` | string |  | Mapping file to use when building MSIX without source code. |
| `package-name` | string | package | Output package name |
| `parameters` | string |  | Parameters to pass to either Makeappx.exe or MSBuild.exe, depending on the
value of using-sln.
 |
| `sdk-version` | string | 10.0.17763.0 | Windows SDK version to use when invoking Makeappx.exe. |
| `signing-cert` | env_var_name | MSIX_SIGNING_CERTIFICATE | Environment variable name for the base64-encoded signing certificate.
 |
| `using-sln` | boolean | true | Build an MSIX package from a solution file. Set this to false if you have
a prebuilt or existing executable file. This determine whether your
package is built using msbuild or makeappx.
 |
| `working-dir` | string | ~/project | Working directory |

### sign

| Parameter | Type | Default | Description |
|---|---|---|---|
| `certificate-fingerprint` | string |  | Fingerprint of the certificate to sign the application with. |
| `certificate-password` | env_var_name | MSIX_CERTIFICATE_PASSWORD | Environment variable containing the password used to decrypt the
certificate file.
 |
| `import-cert` | boolean | true | Automatically import a certificate into the machine's store based on the
values of signing-cert and certificate-password. Set this to false if you
will be importing your certificate in some other way (e.g Hashicorp
Vault).
 |
| `package-name` | string |  | Name of the package to sign. |
| `parameters` | string |  | Parameters to pass to SignTool.exe.
 |
| `sdk-version` | string | 10.0.17763.0 | Windows SDK version to use when invoking Makeappx.exe. |
| `signing-cert` | env_var_name | MSIX_SIGNING_CERTIFICATE | Environment variable name for the base64-encoded signing certificate.
 |
| `working-dir` | string | ~/project | Working directory |

## Examples

### pack_executable

Create an MSIX installer from a given AppManifest and prebuilt executable.
msix/sign expects a certificate to be imported, either through environment
variables or some other means.


```yaml
version: '2.1'
orbs:
  msix: circleci/microsoft-msix@1.0
  win: circleci/windows@2.4.0
jobs:
  using-sln:
    executor:
      name: win/default
    steps:
      - checkout
      - msix/pack:
          manifest-file: appxmanifest.xml
          mapping-file: mapping.txt
          using-sln: false
      - msix/sign:
          import-cert: true
workflows:
  build:
    jobs:
      - using-sln
```

### pack_solution

Create an MSIX installer from a given Visual Studio Solution.
msix/pack expects a certificate to be imported, either through environment
variables or some other means.


```yaml
version: '2.1'
orbs:
  msix: circleci/microsoft-msix@1.0
  win: circleci/windows@2.4.0
jobs:
  using-sln:
    executor:
      name: win/default
    steps:
      - checkout
      - msix/pack:
          import-cert: true
workflows:
  build:
    jobs:
      - using-sln
```

### pack_solution_with_parameters

Create a 32-bit MSIX installer from a given Visual Studio Solution.

```yaml
version: '2.1'
orbs:
  msix: circleci/microsoft-msix@1.0
  win: circleci/windows@2.4.0
jobs:
  using-sln:
    executor:
      name: win/default
    steps:
      - checkout
      - msix/pack:
          import-cert: true
          parameters: /p:Platform=x86
workflows:
  build:
    jobs:
      - using-sln
```