From f7aa81fe137bd170e16d0472c8819872bbf7f000 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Fri, 13 Oct 2023 19:30:25 -0400 Subject: [PATCH 1/8] Add sys.BUILDARCHSHORT. --- src/Docusaurus/docs/tools/preprocessor.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Docusaurus/docs/tools/preprocessor.md b/src/Docusaurus/docs/tools/preprocessor.md index 24c15953..c23d647e 100644 --- a/src/Docusaurus/docs/tools/preprocessor.md +++ b/src/Docusaurus/docs/tools/preprocessor.md @@ -45,6 +45,7 @@ WiX has some built-in variables. They are referenced with the syntax `$(sys.VARI | Name | Value | | ---- | ----- | | BUILDARCH | The platform (x86, x64, arm64) this package is compiled for | +| BUILDARCHSHORT | The platform (X86, X64, A64) this package is compiled for. This variable is especially useful to match the ids of WiX's architecture-specific custom actions and DLLs. | | CURRENTDIR | The current directory where the build process is running | | SOURCEFILEDIR | The directory containing the file being processed | | SOURCEFILEPATH | The full path to the file being processed | From fbac5db52664316d325cd34f48663cb5bc1aa180 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sun, 15 Oct 2023 11:41:28 -0400 Subject: [PATCH 2/8] Redirect /documentation/mailinglist/. Fixes https://github.com/wixtoolset/issues/issues/7770. --- src/Web/appsettings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Web/appsettings.json b/src/Web/appsettings.json index 012e005b..035a913f 100644 --- a/src/Web/appsettings.json +++ b/src/Web/appsettings.json @@ -57,6 +57,7 @@ { "documentation/book2": "https://www.packtpub.com/web-development/wix-cookbook" }, { "documentation/stackoverflow": "http://stackoverflow.com/questions/tagged/wix?sort=newest" }, { "documentation/error217": "/docs/tools/validation/" }, + { "documentation/mailinglist": "/docs/gethelp/#mailinglists" }, { "*mailinglist.html": "/docs/gethelp/#mailinglists" }, { "*mailinglists.html": "/docs/gethelp/#mailinglists" }, { "*news.html": "/news/" }, From 00594592f4d0ee91426b9a241c471d48fd5dac0b Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sun, 15 Oct 2023 12:16:38 -0400 Subject: [PATCH 3/8] Anchors aren't appreciated, apparently. --- src/Web/appsettings.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Web/appsettings.json b/src/Web/appsettings.json index 035a913f..a082d658 100644 --- a/src/Web/appsettings.json +++ b/src/Web/appsettings.json @@ -57,9 +57,9 @@ { "documentation/book2": "https://www.packtpub.com/web-development/wix-cookbook" }, { "documentation/stackoverflow": "http://stackoverflow.com/questions/tagged/wix?sort=newest" }, { "documentation/error217": "/docs/tools/validation/" }, - { "documentation/mailinglist": "/docs/gethelp/#mailinglists" }, - { "*mailinglist.html": "/docs/gethelp/#mailinglists" }, - { "*mailinglists.html": "/docs/gethelp/#mailinglists" }, + { "documentation/mailinglist": "/docs/gethelp/" }, + { "*mailinglist.html": "/docs/gethelp/" }, + { "*mailinglists.html": "/docs/gethelp/" }, { "*news.html": "/news/" }, { "docs": "/docs/intro/" }, { "docs/reference/schema/(.*)": "/docs/schema/$1" }, From 869a54cea550eddbc629601b3fa9d0a607288e98 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Oct 2023 07:09:24 +0000 Subject: [PATCH 4/8] Bump @babel/traverse from 7.22.20 to 7.23.2 in /src/Docusaurus Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.22.20 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] --- src/Docusaurus/package-lock.json | 92 ++++++++++++++++---------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/src/Docusaurus/package-lock.json b/src/Docusaurus/package-lock.json index 594ac0f1..ccd888fa 100644 --- a/src/Docusaurus/package-lock.json +++ b/src/Docusaurus/package-lock.json @@ -342,11 +342,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dependencies": { - "@babel/types": "^7.22.15", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -478,12 +478,12 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -752,9 +752,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -2098,18 +2098,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.20.tgz", - "integrity": "sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dependencies": { "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", + "@babel/generator": "^7.23.0", "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.22.5", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.19", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2118,12 +2118,12 @@ } }, "node_modules/@babel/types": { - "version": "7.22.19", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", - "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.19", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -13356,11 +13356,11 @@ } }, "@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "requires": { - "@babel/types": "^7.22.15", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -13459,12 +13459,12 @@ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" }, "@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "requires": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { @@ -13657,9 +13657,9 @@ } }, "@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==" + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.22.15", @@ -14530,29 +14530,29 @@ } }, "@babel/traverse": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.20.tgz", - "integrity": "sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "requires": { "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", + "@babel/generator": "^7.23.0", "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.22.5", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.19", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.22.19", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", - "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "requires": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.19", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, From d54bc387623554cf1d6d46538a65cff18432d7f7 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 26 Oct 2023 14:36:53 -0400 Subject: [PATCH 5/8] Add placeholder _Specifying source files_. --- src/Docusaurus/docs/tools/payloads.md | 9 +++++++++ src/xsd4/wix.xsd | 12 +++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 src/Docusaurus/docs/tools/payloads.md diff --git a/src/Docusaurus/docs/tools/payloads.md b/src/Docusaurus/docs/tools/payloads.md new file mode 100644 index 00000000..5650b38d --- /dev/null +++ b/src/Docusaurus/docs/tools/payloads.md @@ -0,0 +1,9 @@ +--- +sidebar_position: 85 +--- + +# Specifying source files + +:::note +To be written. To volunteer, leave a comment at [the related issue on GitHub](https://github.com/wixtoolset/issues/issues/7437). +::: diff --git a/src/xsd4/wix.xsd b/src/xsd4/wix.xsd index 958b4d2f..e716705d 100644 --- a/src/xsd4/wix.xsd +++ b/src/xsd4/wix.xsd @@ -5461,7 +5461,7 @@ Specifies the name of the installed file. If this attribute is omitted, then its default value is the file name portion of the Source attribute. If the Source attribute is omitted, you must specify a Name attribute. For more - information, see Specifying source files. + information, see [Specifying source files](../../tools/payloads.md). @@ -5653,7 +5653,7 @@ Specifies the path to the file in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more - information, see Specifying source files. + information, see [Specifying source files](../../tools/payloads.md). @@ -8215,7 +8215,7 @@ Used to set the default file system source for child Component elements. For more information, see - Specifying source files. + [Specifying source files](../../tools/payloads.md). @@ -8503,7 +8503,8 @@ - Used to set the file system source for this directory's child elements. For more information, see Specifying source files. + Used to set the file system source for this directory's child elements. + For more information, see [Specifying source files](../../tools/payloads.md). @@ -8609,7 +8610,8 @@ - Used to set the file system source for this DirectoryRef's child elements. For more information, see Specifying source files. + Used to set the file system source for this DirectoryRef's child elements. + For more information, see [Specifying source files](../../tools/payloads.md). From 413b96238bf46147dd0b65c8afcc8268cad30ccc Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 31 Oct 2023 00:03:07 -0700 Subject: [PATCH 6/8] Clean up in the intro and list the properties created from the Package element Closes 7815 --- src/xsd4/wix.xsd | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/xsd4/wix.xsd b/src/xsd4/wix.xsd index e716705d..05d6dc5f 100644 --- a/src/xsd4/wix.xsd +++ b/src/xsd4/wix.xsd @@ -9,7 +9,7 @@ xmlns="http://wixtoolset.org/schemas/v4/wxs"> - Schema for describing Windows Installer database files (.msi/.msm/.pcp). + Schema for describing Windows Installer database files (.msi/.msm/.msp). @@ -20,11 +20,10 @@ This is the top-level container element for every wxs file. Among the possible children, - the Bundle, Package, Module, Patch, and PatchCreation elements are analogous to the main function in a C program. - There can only be one of these present when linking occurs. Package compiles into an msi file, - Module compiles into an msm file, PatchCreation compiles into a pcp file. The Fragment element - is an atomic unit which ultimately links into either a Package, Module, or PatchCreation. The - Fragment can either be completely included or excluded during linking. + the Bundle, Package, Module, Patch elements are analogous to the main function in a C program. + There can only be one of these present when linking occurs. Package compiles into an MSI file, + Module compiles into an MSM file, Patch compiles into an MSP file. The Fragment element is an atomic + unit which ultimately links into either a Package, Module. The Fragment can either be completely included or excluded during linking. @@ -2254,7 +2253,8 @@ The Package element is analogous to the main function in a C program. When linking, only one Package section - can be given to the linker to produce a successful result. Using this element creates an MSI file. + can be given to the build to produce a successful result. Using this element creates an MSI file which often + referred to as a Product. @@ -2342,23 +2342,23 @@ - The decimal language ID (LCID) for the product. + The decimal language ID (LCID) for the product. Sets the ProductLanguage property. - The manufacturer of the package. + The manufacturer of the package. Sets the Manufacturer property. - The descriptive name of the product. + The descriptive name of the product. Sets the ProductName property. - Optional ProductCode GUID for the package. By default, a new ProductCode will be + Optional ProductCode GUID for the package. By default, a new ProductCode property will be generated with every build enabling major upgrades. @@ -2375,12 +2375,12 @@ - The upgrade code GUID for the product. + The upgrade code GUID for the product. Sets the UpgradeCode property. - The product's version string. + The product's version string. Sets the ProductVersion property. From 200f89d7bfa70af6346cb908cee5276f2b822776 Mon Sep 17 00:00:00 2001 From: wstaelens Date: Mon, 10 Jul 2023 08:56:30 +0200 Subject: [PATCH 7/8] Update releasenotes.md No where in documentation you can find that Product and Package have been merged. By adding this to the release notes at least a developer can find it this way. I had to ask a question about it to be sure...: https://stackoverflow.com/questions/76621867/wix-v3-to-wix-v4-no-product-tag-anymore/76623039 --- src/Docusaurus/docs/releasenotes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Docusaurus/docs/releasenotes.md b/src/Docusaurus/docs/releasenotes.md index 6d9374ac..2f318e68 100644 --- a/src/Docusaurus/docs/releasenotes.md +++ b/src/Docusaurus/docs/releasenotes.md @@ -47,7 +47,7 @@ All of the goodness in WiX v4.0.0 and v4.0.1 remains. - Building patches is much easier (one command!) and can use MSI packages as the source of target and updated files. - The WiX extensibility model and pipeline integration has been dramatically enhanced. - The WiX language has been further simplified. For example: - - [The `Package` element](./schema/wxs/package.md) combines what was two elements in WiX v3. + - [The `Package` element](./schema/wxs/package.md) combines what was two elements (`Product` and `Package`) in WiX v3 . - The [`StandardDirectory` element](./schema/wxs/standarddirectory.md) simplifies the use of standard Windows Installer directories. - The `Subdirectory` attribute on, for example, [the `Component` element](./schema/wxs/component.md), lets you create subdirectories without nested [`Directory` elements](./schema/wxs/directory.md). - WiX supplies a default [`MediaTemplate` element](./schema/wxs/mediatemplate.md) if you don't specify one in your authoring. From c06e991d322e78e299f17e3e3afb97579b34dd8c Mon Sep 17 00:00:00 2001 From: Blair L Murri Date: Tue, 31 Oct 2023 09:07:30 -0700 Subject: [PATCH 8/8] Update DTF documentation for v4 WRT building managed CAs (#221) --- src/Docusaurus/docs/tools/dtf.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Docusaurus/docs/tools/dtf.md b/src/Docusaurus/docs/tools/dtf.md index 7535fc55..a8b2fa8a 100644 --- a/src/Docusaurus/docs/tools/dtf.md +++ b/src/Docusaurus/docs/tools/dtf.md @@ -209,13 +209,12 @@ The configuration file follows [the standard schema for .NET Framework configura #### Supported Runtime Version -In the startup section, use [supportedRuntime](https://learn.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/startup/supportedruntime-element) tags to explicitly specify the version(s) of the .NET Framework that the custom action should run on. If no versions are specified, the chosen version of the .NET Framework will be the "best" match to what Microsoft.Deployment.WindowsInstaller.dll was built against. +In the startup section, use [supportedRuntime](https://learn.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/startup/supportedruntime-element) tags to explicitly specify the version(s) of the .NET Framework that the custom action should run on. If no versions are specified, the chosen version of the .NET Framework will be the "best" match to what WixToolset.Dtf.WindowsInstaller.dll was built against. :::caution Warning: Leaving the version unspecified is dangerous as it introduces a risk of compatibility problems with future versions of the .NET Framework. It is highly recommended that you specify only the version(s) of the .NET Framework that you have tested against. ::: - #### Other Configuration Various other kinds of configuration settings may also be added to this file, as it is a standard .NET Framework application config file for the custom action. @@ -251,17 +250,20 @@ A sample CA project with two CAs is included in the Samples\ManagedCA directory. ### Building Managed Custom Actions -The build process for managed CA DLLs is a little complicated becuase of the proxy-wrapper and dll-export requirements. Here's an overview: +The preferred way to build managed CA DLLs is to use an msbuild project (aka visual studio project). In that project, make sure that the `WixToolset.Dtf.CustomAction` nuget package has been included as a package reference. The resulting package (`SampleCAs.CA.dll` if your project/assemblyname was `SampleCAs`) is ready to be inserted into the Binary table of the MSI. + +Otherwise, the build process for managed CA DLLs is a little complicated becuase of the proxy-wrapper and dll-export requirements. Here's an overview: -1. Compile your CA assembly, which references Microsoft.Deployment.WindowsInstaller.dll and marks exported custom actions with a CustomActionAttribute. -2. Package the CA assembly, CustomAction.config, Microsoft.Deployment.WindowsInstaller.dll, and any other dependencies using MakeSfxCA.exe. The filenames of CustomAction.config and Microsoft.Deployment.WindowsInstaller.dll must not be changed, since the custom action proxy specifically looks for those files. +1. Download both the `WixToolset.Dtf.CustomAction` and `WixToolset.Dtf.WindowsInstaller` nuget packages and point `DTFbin` to the applicable `lib` directory of `WixToolset.Dtf.WindowsInstaller` and add the `tools` directory of `WixToolset.Dtf.CustomAction` to your `PATH`. +2. Compile your CA assembly, which references WixToolset.Dtf.WindowsInstaller.dll and marks exported custom actions with a CustomActionAttribute. +3. Package the CA assembly, CustomAction.config, WixToolset.Dtf.WindowsInstaller.dll, and any other dependencies using MakeSfxCA.exe. The filenames of CustomAction.config and WixToolset.Dtf.WindowsInstaller.dll must not be changed, since the custom action proxy specifically looks for those files. #### Compiling ``` csc.exe /target:library - /r:$(DTFbin)\Microsoft.Deployment.WindowsInstaller.dll + /r:$(DTFbin)\WixToolset.Dtf.WindowsInstaller.dll /out:SampleCAs.dll *.cs ``` @@ -274,7 +276,7 @@ MakeSfxCA.exe $(DTFbin)\SfxCA.dll SampleCAs.dll CustomAction.config - $(DTFbin)\Microsoft.Deployment.WindowsInstaller.dll + $(DTFbin)\WixToolset.Dtf.WindowsInstaller.dll ``` Now the resulting package, SampleCAsPackage.dll, is ready to be inserted into the Binary table of the MSI.