3

MSBuild Extension Packを使用してWebサイトを作成する正しい方法は何ですか?

MSBuild Extension Packを使用して、次のターゲットを使用してWebサイトを作成しようとしています。残念ながら、構文が正しくありません。このターゲットは、「InvalidOperationException:指定されたパスは既に存在します。\r」という例外をスローします。これは、アプリケーションを追加した後です。

WebApplicationアイテムまたはVirtualDirectoryアイテムを変更して、以下のターゲットのいくつかの異なるバージョンを試しました。WebApplicationアイテムのInclude属性を「/」以外に変更すると、作成は機能します。Webサイトが作成されると、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 に答える