Como criar um site com um aplicativo usando MSBuild Pacote de Extensão
-
10-07-2019 - |
Pergunta
O que é a maneira correta de criar um web site usando a MSBuild Extensão Pacote ?
Eu estou tentando usar o MSBuild Pacote de Extensão para criar um web site usando o seguinte alvo . Infelizmente eu não tenho a sintaxe correta. Esta meta vai lançar uma exceção dizendo "InvalidOperationException: O caminho especificado já existe \ r.". Este é depois de adicionar o aplicativo.
Eu tentei várias versões diferentes do abaixo da meta, alterando o item WebApplication ou o item VirtualDirectory. Se eu alterar o atributo para o item WebApplication para ser outra coisa que não Incluir "/", em seguida, a criação vai funcionar. Embora uma vez que o site é criado não pode iniciá-lo por causa do erro COM 0x800710D8. (O identificador de objeto não representa um objeto válido)
<Target Name="ProvisionIIS7WebSite" DependsOnTargets="CreateDeploymentNumber">
<PropertyGroup>
<WebSiteName>$(BaseDeploymentName)$(DeploymentNumber)</WebSiteName>
<PortNumber>$(DeploymentNumber)</PortNumber>
</PropertyGroup>
<ItemGroup>
<WebApplication Include="/">
<PhysicalPath>$(WebSitePath)</PhysicalPath>
</WebApplication>
<VirtualDirectory Include="/">
<ApplicationPath>/</ApplicationPath>
<PhysicalPath>$(WebSitePath)</PhysicalPath>
</VirtualDirectory>
</ItemGroup>
<!-- Create new site -->
<MSBuild.ExtensionPack.Web.Iis7Website TaskAction="Create"
Name="$(WebSiteName)"
Port="$(PortNumber)"
Path="$(WebSitePath)"
AppPool="$(WebSiteAppPool)"
Applications="@(WebApplication)"
VirtualDirectories="@(VirtualDirectory)">
<Output TaskParameter="SiteID" PropertyName="WebSiteID" />
</MSBuild.ExtensionPack.Web.Iis7Website>
<Message Text="Created website with ID $(WebSiteID)" />
</Target>
Solução
Você precisa de um alias válido, para tentar
<ItemGroup>
<WebApplication Include="/MyApp">
<PhysicalPath>$(WebSitePath)</PhysicalPath>
</WebApplication>
<VirtualDirectory Include="/MyVdir">
<ApplicationPath>/MyApp</ApplicationPath>
<PhysicalPath>$(WebSitePath)</PhysicalPath>
</VirtualDirectory>
</ItemGroup>