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>
Foi útil?

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>

aqui

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top