Configure Web Application use IIS in a NuGet Package

As part of an internal NuGet package I want to be able to change a Web Application to run using the IIS instead of the IIS Express. This can be done by using the PowerShell script below.

It uses a EnvDTE Project for setting a number of properties on the project, but to create the virtual directory to make it work seamslessly with IIS I use appcmd.exe.

As text: 

param($installPath, $toolsPath, $package, $project)

$appName = $project.Name.split(".")[0]
$strip = $project.Name + ".csproj"
$physicalPath = $project.FullName.TrimEnd($strip)

Write-Host "Detected Web Application name as: $appName"

Write-Host "Detected Web Application physical path as: $physicalPath"

Write-Host "Setting IIS Properties of the current Web Application project"
foreach ($prop in $project.Properties)
{
if($prop.Name -eq "WebApplication.UseIIS")
{
Write-Host 'Updating project setting' $prop.Name 'to: '$true 'was: '$prop.Value
$prop.Value = $true
}
elseif($prop.Name -eq "WebApplication.IsUsingIISExpress")
{
Write-Host 'Updating project setting' $prop.Name 'to: '$true 'was: '$prop.Value
$prop.Value = $false
}
elseif($prop.Name -eq "WebApplication.UseIISExpress")
{
Write-Host 'Updating project setting' $prop.Name 'to: '$true 'was: '$prop.Value
$prop.Value = $false
}
elseif($prop.Name -eq "WebApplication.IISUrl")
{
Write-Host 'Updating project setting' $prop.Name 'to: '$true 'was: '$prop.Value
$prop.Value = "http://localhost/$appName"
}
}

$project.Save();

Write-Host "Setting physical path of the Web Application in IIS under Default Web Site"

$defaultWebSiteName = "Default Web Site"
$appCmdDirectory = "$env:SystemRoot\System32\inetsrv"
$IISAppPath = $defaultWebSiteName + "/" + $appName

$cmd = "$appCmdDirectory/appcmd.exe set app /app.name ""$IISAppPath"" /[path='/'].physicalPath:$physicalPath"
cmd /C $cmd