Web 部署到子文件夹,bin 除外
Web Deploy to subfolder, except bin
我有一个 Web 应用程序项目,我想使用来自 Visual Studio 的 Web 部署将其发布到我的网站。但是,我希望项目中的文件(设置为发布)部署在子文件夹结构下,foo
、except 用于 bin
和 App_Data
目录,它们仍应部署在根目录下。是否有通过更改 .pubxml
配置文件来执行此操作的干净方法?
我 运行 关注的一些问题:
- 我假设我无法将
<DeployIisAppPath>
元素设置为指向子文件夹,因为它不允许我在根目录下发布 bin
和 App_Data
文件夹。
- 我想将获取的文件限制为通常由 Web 部署发布的文件。我不想部署我的
.cs
文件。
- 我事先不知道完整的文件扩展名集,所以我无法根据它们定义详尽的过滤器(例如
*.html|*.js|...
)。我想将任何过滤器定义限制在 bin
和 App_Data
文件夹中。
- 我想保留文件的文件夹结构。例如,
bar\Default.html
应该转到 foo\bar\Default.html
。
- 我希望此过程的结果可在 Web 部署预览中使用 window。
我想通了;我需要用 Move
任务定义一个 Target
,在 CopyAllFilesToSingleFolderForMsdeploy
之后执行。这在 .pubxml
文件中的 <PropertyGroup>
之后:
<Target Name="MoveFilesToDesignatedDirectory"
AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
<Message Text="Moving files to designated directory" importance="high" />
<ItemGroup>
<_CustomMoveFiles Include="$(_PackageTempDir)\**"
Exclude="$(_PackageTempDir)\bin\**;
$(_PackageTempDir)\App_Data\**" />
</ItemGroup>
<Move SourceFiles="%(_CustomMoveFiles.Identity)"
DestinationFolder="$(_PackageTempDir)\foo\%(RecursiveDir)" />
</Target>
参考文献:
- 赛义德·易卜拉欣·哈希米 VS Web Publish: How to include files outside of the project to be published
- 基思·贝勒 VS 2012 Publishing Profiles and Copy Files Using MSBuilld Commands
我有一个 Web 应用程序项目,我想使用来自 Visual Studio 的 Web 部署将其发布到我的网站。但是,我希望项目中的文件(设置为发布)部署在子文件夹结构下,foo
、except 用于 bin
和 App_Data
目录,它们仍应部署在根目录下。是否有通过更改 .pubxml
配置文件来执行此操作的干净方法?
我 运行 关注的一些问题:
- 我假设我无法将
<DeployIisAppPath>
元素设置为指向子文件夹,因为它不允许我在根目录下发布bin
和App_Data
文件夹。 - 我想将获取的文件限制为通常由 Web 部署发布的文件。我不想部署我的
.cs
文件。 - 我事先不知道完整的文件扩展名集,所以我无法根据它们定义详尽的过滤器(例如
*.html|*.js|...
)。我想将任何过滤器定义限制在bin
和App_Data
文件夹中。 - 我想保留文件的文件夹结构。例如,
bar\Default.html
应该转到foo\bar\Default.html
。 - 我希望此过程的结果可在 Web 部署预览中使用 window。
我想通了;我需要用 Move
任务定义一个 Target
,在 CopyAllFilesToSingleFolderForMsdeploy
之后执行。这在 .pubxml
文件中的 <PropertyGroup>
之后:
<Target Name="MoveFilesToDesignatedDirectory"
AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
<Message Text="Moving files to designated directory" importance="high" />
<ItemGroup>
<_CustomMoveFiles Include="$(_PackageTempDir)\**"
Exclude="$(_PackageTempDir)\bin\**;
$(_PackageTempDir)\App_Data\**" />
</ItemGroup>
<Move SourceFiles="%(_CustomMoveFiles.Identity)"
DestinationFolder="$(_PackageTempDir)\foo\%(RecursiveDir)" />
</Target>
参考文献:
- 赛义德·易卜拉欣·哈希米 VS Web Publish: How to include files outside of the project to be published
- 基思·贝勒 VS 2012 Publishing Profiles and Copy Files Using MSBuilld Commands