Skip to content

Documentation for WiX 4 and later should show how to create named bind paths #9201

@bobhairgrove

Description

@bobhairgrove

WiX Version

6.0.2

.NET or MSBuild or Visual Studio Version

MSVC 2022

HeatWave Version

1.0.6

Repro Steps

  1. Go to https://docs.firegiant.com/
  2. Search for information about BindPath and BindName

Repro Repo

No response

Actual Result

No clear answer to the question is found

Expected Result

We should find a way to define BindName metadata for the BindPath element which can be a child element of ItemGroup in a .wixproj file. Also, it should be possible to set a name in the Visual Studio HeatWave project properties. One can add a bind path in the project properties dialog at the botoom of the page that appears. There is a property with a drop-down combo box for the name of a BindPath, but it says <Unnamed> and is not editable. If I manually add an attribute 'Name="ProjectAssets"' to the resulting unnamed BindPath which is inserted by the wizard into the project file, it has no effect when I reopen the project properties wizard (i.e. it still says <Unnamed>).

Under https://docs.firegiant.com/wix/tools/msbuild/#items we see what items can be included in a .wixproj file. Among these is BindPath:

BindPath	Bind paths used to locate payload files. To create named bind paths, 
            specify BindName metadata with the name of the bind path.

However, there is no documentation about how to add BindName metadata, or what it is (Attribute? Property? WixVariable?). Although the syntax for .wixproj files suggest that it is merely another XML file, there is no schema published for it.

From anecdotal evidence and sundry examples found on the internet, it would appear that an unnamed BindPath is defined thus:

<Project Sdk="WixToolset.Sdk/6.0.2"> <!-- for example... -->
  <!-- ... -->
  <ItemGroup>
    <BindPath Include="<path to some files>" />
  </ItemGroup>
  <!-- ... -->
</Project>

Since there is no schema available, how are we to know how to give our BindPath a name? When I search the documentation for "BindPath", I see the docs for the Files element which has the Include attribute and the syntax 'Include="!(bindpath.ToBeHarvested)\**"'. In addition, the description of the "Include" attribute includes the phrase "Absolute paths via a named bind path are recommended."

I looked at a couple of YouTube "Deployment Dojo" videos including Nos. 44 + 45, but that seems to only show how to use a named bind path specified from the command line and not how to define the name in a project. I might have missed some part which shows this, but it is almost impossible to search the transcript for the exact syntax.

So how do we create a named bind path?

Acknowledgements

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions