Skip to content

Commit a3dca4f

Browse files
Installer: Newtonsoft refs in CustomFeatures.wxi only
Change-Id: I8255b5a9f413d76bb053a9a552ba6b08ad74b2fa
1 parent 9c029df commit a3dca4f

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

FLExInstaller/AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Minimal installer guidance for agents.
1212

1313
- Heat exclusions: **`PatchableInstallerHeatExclude.xml`** is copied to **`PatchableInstaller/BaseInstallerBuild/heat-exclude.xml`** before Heat (see **`Build/Installer.legacy.targets`** `CopyFilesToInstall`).
1414
- **`buildMsi.bat`** passes **`-fv`** to **`light.exe`** so **`MsiAssemblyName`** includes **fileVersion** (same intent as MSBuild **`SetMsiAssemblyNameFileVersion=true`**), which helps GAC servicing when **`AssemblyVersion`** is unchanged but the binary’s **file version** increases.
15-
- Newtonsoft.Json and similar authored components live in **`CustomComponents.wxi`** (overlays **`PatchableInstaller/Common`**), not in the generic PatchableInstaller tree. Wire them into **`Feature Complete`** with **`ComponentRef`** entries in **`PatchableInstaller/BaseInstallerBuild/Framework.wxs`** (FieldWorks Newtonsoft) and/or **`PatchableInstaller/Common/CustomFeatures.wxi`**; do not use **`FeatureRef Id="Complete"`** from an include that appears before **`Framework.wxs`** defines `Complete` (Light **LGHT0095**). Prefer **`Framework.wxs`** for wiring that must survive **`git checkout`** on **`PatchableInstaller/Common`** (LGHT0139 for GAC assemblies if refs are missing).
15+
- Newtonsoft.Json and similar authored components live in **`CustomComponents.wxi`** (overlays **`PatchableInstaller/Common`**), with definitions guarded by **`<?ifdef MASTERBUILDDIR?>`** so patch/update authoring omits them when only **`UPDATEBUILDDIR`** is set. Add matching **`ComponentRef`** entries in **`FLExInstaller/CustomFeatures.wxi`** inside the **same** **`<?ifdef MASTERBUILDDIR?>...<?endif?>`** so patch builds do not emit dangling refs (**LGHT0094**). WiX 6 **`Framework.wxs`** uses the same pattern for **`Feature Complete`**. Do not use **`FeatureRef Id="Complete"`** from an include that appears before **`Framework.wxs`** defines `Complete` (Light **LGHT0095**).
1616

1717
## Constraints
1818

FLExInstaller/CustomFeatures.wxi

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
<MergeRef Id="PerlEC"/>
1111
<MergeRef Id="PythonEC"/>
1212
<MergeRef Id="TECkit_DLLs"/>
13+
<!-- Heat-excluded Newtonsoft.Json: components in CustomComponents.wxi are inside <?ifdef MASTERBUILDDIR?>; match that here so patch builds (UPDATEBUILDDIR only) do not emit dangling ComponentRefs (LGHT0094). -->
14+
<?ifdef MASTERBUILDDIR?>
15+
<ComponentRef Id="NewtonsoftJsonApp" />
16+
<ComponentRef Id="NewtonsoftJsonGac" />
17+
<?endif?>
1318

1419
<Feature Id='DesktopShortcut' Title='Desktop Shortcut' Description='Creates a shortcut on the desktop.' Level='1' ConfigurableDirectory='APPFOLDER' AllowAdvertise="no" InstallDefault="source" Absent='allow' TypicalDefault="install" >
1520
<ComponentRef Id='ApplicationShortcutDesktop'/>

0 commit comments

Comments
 (0)