2009-10-29 48 views
3

使用MSBuild Extension Pack創建網站的正確方法是什麼?如何使用MSBuild擴展包創建帶有應用程序的網站

我正在嘗試使用MSBuild Extension Pack來創建使用以下目標的網站。不幸的是,我沒有正確的語法。這個目標會拋出一個異常,說「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> 

回答

2

你需要一個有效的別名,嘗試

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

進一步討論here

相關問題