The WiX toolset has additional libraries that allow the installer to perform additional tasks like adding a new user account:
<Component>
<user:User Id='NewUser' Name='username' Password='password' />
</Component>
When you link the installation package, you have to link it against the appropriate WiX extension module:
light.exe -ext WixUtilExtension -out Sample.msi Sample.wixobj
This library also provides the means to create folder shares. Just put the following code fragment inside any Component
to create a share on the folder the component installs into:
<user:User Id='Everyone' Name='Everyone' CreateUser='no' FailIfExists='no' RemoveOnUninstall='no' />
<user:FileShare Id='MainExecutableShare' Description='Foobar 1.0 share' Name='FoobarShare'>
<user:Permission GenericRead='yes' ReadPermission='yes' Read='yes' GenericExecute='yes' User='Everyone' />
</user:FileShare>
The attributes of FileShare
are self-documenting. To specify the permissions that go with the share, you need to use a Permission
element and that in turn requires a User
to be specified. We don't want to create a new user here (see CreateUser
) nor to remove it when we uninstall our product (see RemoveOnUninstall
). For the actual permissions, we can chose from a selection of attributes like Delete, Execute, Read, Write, GenericExecute, GenericRead, GenericWrite, TakeOwnership, ReadAttributes, WriteAttributes. See the WiX help file to learn all available attributes.
Also note that you can use Permission
tags inside CreateFolder
elements as well. Some extra attributes CreateChild, CreateFile, DeleteChild, Traverse) are reserved for this case.