Как создать веб-сайт с приложением, используя MSBuild Extension Pack - PullRequest
3 голосов
/ 29 октября 2009

Как правильно создать веб-сайт с помощью MSBuild Extension Pack ?

Я пытаюсь использовать MSBuild Extension Pack для создания веб-сайта, используя следующую цель. К сожалению, у меня нет правильного синтаксиса. Эта цель выдаст исключение, говорящее «InvalidOperationException: указанный путь уже существует. \ R». Это после добавления приложения.

Я пробовал несколько разных версий указанной ниже цели, изменив элемент WebApplication или элемент VirtualDirectory. Если я изменю атрибут Include для элемента WebApplication, чтобы он отличался от «/», то создание будет работать. Хотя после создания веб-сайта я не могу его запустить из-за ошибки 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 Ответ

2 голосов
/ 31 октября 2009

Вам нужен правильный псевдоним, чтобы попробовать

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

Обсуждается далее здесь

...