This is how I do it:
In my ISM release view (build tab) I set the Release Location to \Installer instead of In my Path Variables I declare an ISBUILDDIR path variable and give it a default value of ISProjectDataFolder
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0" DefaultTargets="Build">
<PropertyGroup>
<MSIProductVersion>$([System.Text.RegularExpressions.Regex]::Match($(TF_BUILD_BUILDNUMBER), "\d+.\d+.\d+.\d+"))</MSIProductVersion>
<Configuration>Debug</Configuration>
<InstallShieldProductConfiguration>ProductConfigName</InstallShieldProductConfiguration>
<InstallShieldRelease>ReleaseName</InstallShieldRelease>
<InstallShieldProductVersion>$(MSIProductVersion)</InstallShieldProductVersion>
<MSIProductCode>$([System.Guid]::NewGuid().ToString("B").ToUpper())</MSIProductCode>
<InstallShieldBuildDependsOn>PreBuild</InstallShieldBuildDependsOn>
</PropertyGroup>
<ItemGroup>
<InstallShieldPathVariableOverrides Include="$(OutDir)">
<PathVariable>ISBUILDDIR</PathVariable>
</InstallShieldPathVariableOverrides>
</ItemGroup>
<ItemGroup>
<InstallShieldPropertyOverrides Include="$(MSIProductCode)">
<Property>ProductCode</Property>
</InstallShieldPropertyOverrides>
</ItemGroup>
<ItemGroup>
<InstallShieldProject Include="$(MSBuildProjectDirectory)\$(MSBuildProjectName).ism"/>
<InstallShieldMergeModulePath Include="$(MSBuildProjectDirectory)\MSM"/>
</ItemGroup>
<Target Name="PreBuild">
<Exec Command="attrib -s -h -r /s "$(MSBuildProjectDirectory)\*.*"" IgnoreExitCode="true" ContinueOnError="true"/>
</Target>
<Import Project="$(MSBuildExtensionsPath32)\InstallShield\2012\InstallShield.targets"/>
</Project>