如何使用MSBuild扩展包创建带有应用程序的网站
问题描述:
使用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>
答
你需要一个有效的别名,尝试
<ItemGroup>
<WebApplication Include="/MyApp">
<PhysicalPath>$(WebSitePath)</PhysicalPath>
</WebApplication>
<VirtualDirectory Include="/MyVdir">
<ApplicationPath>/MyApp</ApplicationPath>
<PhysicalPath>$(WebSitePath)</PhysicalPath>
</VirtualDirectory>
</ItemGroup>
进一步讨论here