使用MSBuild Extension Pack创建网站的正确方法是什么?
我正在尝试使用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>
答案 0 :(得分:2)
您需要有效的别名才能尝试
<ItemGroup>
<WebApplication Include="/MyApp">
<PhysicalPath>$(WebSitePath)</PhysicalPath>
</WebApplication>
<VirtualDirectory Include="/MyVdir">
<ApplicationPath>/MyApp</ApplicationPath>
<PhysicalPath>$(WebSitePath)</PhysicalPath>
</VirtualDirectory>
</ItemGroup>
进一步讨论here