代码之家  ›  专栏  ›  技术社区  ›  Jason

如何使用msbuild扩展包创建带有应用程序的网站

  •  3
  • Jason  · 技术社区  · 16 年前

    创建网站的正确方法是什么 MSBuild Extension Pack ?

    我正在尝试使用 msbuild扩展包 使用以下目标创建网站。不幸的是,我的语法不正确。此目标将引发一个异常,说明“InvalidOperationException:指定的路径已存在。\r”。这是在添加应用程序之后。

    我通过更改webapplication项或virtualDirectory项尝试了以下目标的几个不同版本。如果我将webapplication项的include属性更改为除“/”之外的其他属性,则创建将有效。尽管一旦创建了网站,我就无法启动它,因为COM错误0x800710D8。(对象标识符不代表有效的对象)

    <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>
    
    1 回复  |  直到 13 年前
        1
  •  2
  •   Adam    13 年前

    您需要一个有效的别名,才能尝试

      <ItemGroup>
        <WebApplication Include="/MyApp">
          <PhysicalPath>$(WebSitePath)</PhysicalPath>
        </WebApplication>
        <VirtualDirectory Include="/MyVdir">
          <ApplicationPath>/MyApp</ApplicationPath>
          <PhysicalPath>$(WebSitePath)</PhysicalPath>
        </VirtualDirectory>
      </ItemGroup>
    

    进一步讨论 here

    推荐文章