【问题标题】:Web Deploy to subfolder, except binWeb 部署到子文件夹,除了 bin
【发布时间】:2015-04-11 17:17:12
【问题描述】:

我有一个 Web 应用程序项目,我想使用 Visual Studio 中的 Web Deploy 将其发布到我的网站。但是,我希望将项目中的文件(设置为发布)部署在子文件夹结构下,foo除了对于binApp_Data 目录,仍应部署在根目录下。有没有一种通过更改.pubxml 配置文件来做到这一点的干净方法?

我遇到的一些问题:

  • 我假设我无法将 <DeployIisAppPath> 元素设置为指向子文件夹,因为它不允许我在根目录下发布 binApp_Data 文件夹。
  • 我想将获取的文件限制为通常由 Web Deploy 发布的文件。我不想部署我的 .cs 文件。
  • 我事先不知道完整的文件扩展名集,所以我无法根据它们定义一个详尽的过滤器(例如*.html|*.js|...)。我想将任何过滤器定义限制在 binApp_Data 文件夹中。
  • 我想保留文件的文件夹结构。例如,bar\Default.html 应该转到 foo\bar\Default.html
  • 我希望在 Web Deploy Preview 窗口中显示此过程的结果。

【问题讨论】:

    标签: .net iis visual-studio-2013 webdeploy


    【解决方案1】:

    我想通了;我需要使用在CopyAllFilesToSingleFolderForMsdeploy 之后执行的Move 任务来定义Target。这在.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>
    

    参考文献:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多