Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>IsWiX Installer AuthoringNew to Visual Studio Code? Get it now.
IsWiX Installer Authoring

IsWiX Installer Authoring

ISWIX LLC

| (0) | Free
Open, view and edit IsWiX (.iswixproj) and WiX projects: WiX schema IntelliSense, a project tree, templates and conversion. Building needs Windows.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

IsWiX Installer Authoring

Author Windows installers with IsWiX and WiX in VS Code: open and edit .iswixproj and .wixproj projects, get WiX schema IntelliSense, create new installer projects from templates, and build them on Windows. This is the VS Code counterpart of the IsWiX Visual Studio extension in this repository.

Getting started

  1. Install the extension (it brings the Red Hat XML extension with it). The IsWiX project templates are installed automatically; you don't need to run a command.
  2. Open the IsWiX view in the activity bar and click + (New Project..., then IsWiX Installer Project). The same command is in the command palette, in File → New File..., and in the Getting Started walkthrough. Choose C# Custom Action Project (or C++ Custom Action Project) there instead. It creates a managed custom action, adds it to the solution and references it from the installer projects you choose. Schedule it in a .wxs with a <Binary> pointing at its .CA.dll; the template's comments show how.
  3. It asks for a solution name, an installer project name, whether to add an EXE bootstrapper, and which WiX SDK to use. It creates a folder named after the solution, with the solution and the package project (plus a bundle project if you chose a bootstrapper) in it. If the workspace already has a solution you can add the projects to it instead; they go in that solution's folder.
  4. Build from the IsWiX view, the command palette, or Terminal → Run Build Task (Windows).

Features

  • Open, view and edit .iswixproj and .wixproj projects on Windows, Linux and macOS.
  • WiX schema IntelliSense in .wxs, .wxi and .wxl files, from the same schemas the Visual Studio extension ships. Needs the Red Hat XML extension, which is installed as a dependency.
  • Extension element completion (<util:, <bal:, ...) and a warning for misspelt extension elements. The XML language server can't do either on its own, because the WiX schemas admit extension elements through a lax wildcard.
  • IsWiX Projects view: solutions (.sln and .slnx) with their WiX, C# and C++ projects, since those can feed a WiX project; each WiX project's packages, project references and files. The view first reads the project file, then asks MSBuild (dotnet msbuild -getItem, evaluation only, no build) what the project really contains: items from Directory.Build.props and other imports, the SDK's default items, and conditions. A file the project declares but MSBuild leaves out is marked not in the build. Hover a project to see which of the two it is showing.
  • Build, Rebuild and Clean (Windows) for a solution or a project, from the view's context menu, the command palette or the build tasks. Build only builds what is out of date; Rebuild cleans and builds. A solution builds with dotnet, or with Visual Studio's MSBuild (found with vswhere) when it holds a C++ project. Problems from the build appear in the Problems panel.
  • Configuration and platform from the status bar (Debug | x64). IsWiX projects define their preprocessor variables per configuration and platform, so every build passes both; the status bar lists the solution's own pairs. With several solutions, the iswix.solution setting picks one.
  • Packages and references: restore, add and remove packages, add and remove project references. Add Package searches nuget.org, starting from the IsWiX extensions (IsWiX.WixToolset.*.wixext) or WixToolset.*.wixext, so you don't have to remember exact names.
  • Templates: IsWiX.Templates ships inside the extension and is installed with dotnet new install on first use and after each update, with any other copies removed (duplicate installed copies break dotnet new). IsWiX: Install Project Templates does it by hand; the IsWiX view offers it only if the automatic install didn't work. New WiX File... adds a .wxs, .wxi or .wxl from the folder's right-click menu in a workspace that has a WiX project.
  • Convert between .wixproj and .iswixproj: right-click a project in the IsWiX view (or run IsWiX: Convert to IsWiX Project (.iswixproj)... / Convert to WiX Project (.wixproj)...). It previews what would change, then renames the project and updates the project references and solutions that mention it. Optionally it also moves the project to the other SDK and its extension packages (IsWiX.WixToolset.* or WixToolset.*); for WiX Toolset 7 it follows the iswix.osmfCompliance setting for the OSMF EULA. The converter ships inside the extension and runs on any .NET 8 or later runtime.
  • IsWiX Designer: General Information, Features, Components, Registry, Services, Shortcuts, Custom Tables, Properties, Namespaces, and File and Folders, as forms with Visual Studio's list of designers down the left. Open a .wxs file and you get the designer with the file's XML below it in VS Code's own editor; select something in the designer and the XML selects it, close either and the other closes. Changes are written to the XML as you make them, so undo and save work as usual. File and Folders lets you drag files from the source folder into the installed folder tree, shows Windows file icons, and picks up files added outside VS Code.
  • Indent on save: .wxs, .wxi and .wxl files are re-indented to the style they already use (tabs, or the number of spaces per level; four spaces if none), the same rule as the Visual Studio extension. Text content, CDATA, attribute values and xml:space="preserve" are never touched, and a document that isn't well-formed is left alone.

Settings

Open them with the gear in the IsWiX view, or search for iswix in Settings.

Setting Default What it does
iswix.defaultSdk iswix.wixtoolset The WiX SDK New IsWiX Installer Project lists first: IsWiX.WixToolset.Sdk or WixToolset.Sdk.
iswix.osmfCompliance ask For WixToolset.Sdk projects: compliant accepts the WiX v7 Open Source Maintenance Fee EULA without asking, notCompliant uses WiX 5, ask asks each time.
iswix.configuration, iswix.platform Debug, x64 The configuration and platform builds use. Also set from the status bar.
iswix.solution none The solution builds use when the workspace has more than one.
iswix.installTemplatesAutomatically on Install the bundled templates when the extension starts after an install or update.
iswix.evaluateProjects on Ask MSBuild what each project contains. Turn off to read only the project file's XML.
iswix.indentOnSave on Re-indent WiX files on save.

Limits

  • Building is Windows-only, because the WiX Toolset cannot build on Linux or macOS yet. Build commands are offered on Windows only.
  • MSBuild evaluation needs the .NET SDK (8.0.200 or later). Without it the IsWiX Projects view falls back to the project file's XML, which doesn't see imports or conditions.
  • The IsWiX Designer has General Information, Features, Components, Registry, Services, Shortcuts, Custom Tables, Properties, Namespaces, and File and Folders, which is every designer in its list. File icons from Windows are shown on Windows only; other systems get simple drawn icons.

Develop

cd VSCode
npm install
npm test          # copies the schemas, compiles, runs the unit tests
npm run bundle    # bundles the compiled extension into dist/extension.js (esbuild)

Press F5 in VS Code with this folder open to run the extension. The packaged extension runs from the esbuild bundle in dist/; the unit tests run on the compiled out/ folder.

To try a build locally, run devbuild.bat (needs Node.js 22 or later and the .NET SDK). It compiles, bundles the extension with esbuild (dist/extension.js), packs the templates, publishes the .NET programs the extension runs (the project converter and the shared core) and writes iswix-vscode-<version>-dev-<timestamp>.vsix, removing older ones. deploy.bat installs the newest one into VS Code. CI builds the same VSIX on every push (iswix-vscode-<version>-build<run>.vsix), and the manual publish workflow releases it to GitHub and the Marketplace using Trusted Publishing.

npm run compile copies ../IsWiXExtension/Schemas/*.xsd into schemas/ and generates schemas/catalog.xml, which maps each schema's namespace to its file. Nothing under VSCode/ is part of IsWiX.sln or IsWiXExtension.sln, and Directory.Build.props here is empty on purpose, so the Visual Studio extension's build is unaffected.

The shared .NET core

Logic with no user interface lives in C# so the Visual Studio and VS Code extensions use one implementation: XML indentation, finding elements by position, working out which .wxs files a project compiles (conditions, imports, globs), and converting projects. Tools/IsWiXCore serves these over JSON-RPC 2.0 on stdin and stdout (one message per line; methods such as core/info, xml/indent, xml/locate, project/compileFiles, project/convert, and the designers' features/*, properties/*, namespaces/*, generalInformation/* and filesAndFolders/*). It compiles the same source files the Visual Studio extension does, linked rather than moved. The VS Code extension starts it on first use (src/core.ts), and the IsWiX Projects view falls back to it when MSBuild can't be run. It targets .NET 8 with roll-forward, so any .NET 8 or later runtime runs it. The IsWiX Designer uses it too, so its behaviour matches the Visual Studio designers.

License

See LICENSE.txt.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft