3

使用MSBuild 扩展包创建网站的正确方法是什么?

我正在尝试使用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>
4

1 回答 1

2

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

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

在这里进一步讨论

于 2009-10-31T09:57:43.403 回答