Azure VS 2012使用MSBuilld命令发布配置文件和复制文件

Azure VS 2012使用MSBuilld命令发布配置文件和复制文件,azure,msbuild,visual-studio-2012,Azure,Msbuild,Visual Studio 2012,我已经在Azure上使用TFS online设置了asp.net网站,以便使用VS 2012进行源代码控制。我正在尝试使用VS 2012 new publishings配置文件和MSBuild复制文件。在阅读本文时,Doug说您可以在发布配置文件中使用构建脚本 因此,我在本地构建的.csproj中设置了一个测试。我只是简单地将robots.txt文件从根目录复制到css目录。这是我的测验。我在流程>6下的TFS构建流程模板中设置了pubxml。发布--Azure网站、Web部署发布配置文件 &l

我已经在Azure上使用TFS online设置了asp.net网站,以便使用VS 2012进行源代码控制。我正在尝试使用VS 2012 new publishings配置文件和MSBuild复制文件。在阅读本文时,Doug说您可以在发布配置文件中使用构建脚本

因此,我在本地构建的.csproj中设置了一个测试。我只是简单地将robots.txt文件从根目录复制到css目录。这是我的测验。我在流程>6下的TFS构建流程模板中设置了pubxml。发布--Azure网站、Web部署发布配置文件

<Target Name="AfterBuild">
    <Copy SourceFiles="$(ProjectDir)robots.txt" DestinationFolder="$(ProjectDir)css\" />
</Target>
以下是Azure默认生成模板使用的生成步骤:

  • 验证解决方案配置:
  • PrepareForBuild:
  • 核心编译:
  • _CopyFilesMarkedCopyLocal:
  • CopyFilesToOutputDirectory:
  • GenerateTargetFrameworkMonitorAttribute:
  • 核心编译:
  • _CopyFilesMarkedCopyLocal:
  • CopyFilesToOutputDirectory:
  • _CopyWebApplicationLegacy:
  • ValidateGlobalPackageSetting:
  • 从中间部件收集文件:
  • 从内容中收集文件:
  • 使用TargetPath从中间层Tellite集合中收集文件:
  • CollectFilesFromReference:
  • 从AllExtraReferenceFile收集文件:
  • 从_binDeployableAssemblies收集文件:
  • 管道收集阶段:
  • ExcludeGeneratedDebugSymbol:
  • 预传输mWebConfig:
  • TransformWebConfigCore:
  • PostTransformWebConfig:
  • 预配置文件传输配置:
  • 管道转换阶段:
  • ProcessPublishDatabaseSettings:
  • 预自动参数化WebConfigConnectionString:
  • 自动参数化WebConfigConnectionStringScore:
  • PostAutoParameterizationWebConfigConnectionString:
  • 管道MSDeploySpecificTransformPhase:
  • ValidatePublishProfile设置:
  • 将所有文件复制到单个文件夹执行部署:
  • PipelineCopyAllFilesTooneFolderForms部署:
  • 包装:
  • 生成部署文件:
  • 使用舱单的包:
  • 生成示例部署脚本:
  • 管道部署阶段:
  • 后构建:

  • 因此,Azure似乎在“31.CopyAllFilesToSingleFoldPerformsDeploy”步骤中打包了所有文件。在后构建步骤中运行copy似乎太晚了。我将Copy命令移到了目标“BeforeBuild”,但文件仍然没有在CopyAllFilesToOneFolderForMsdeploy步骤中结束。

    感谢Sayed Ibrahim Hashimi的文章帮助我解决了这个问题

    可以直接复制包临时目录。我最终将这个目标添加到我的发布配置文件(pubxml)文件中。“CopyAllFilesToSingleFoldPerformsDeploy”步骤完成后,将运行此步骤,将文件从解决方案的一部分复制到指定的destinationfolder中

    <Target Name="AdditionalFilesForPackage" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
        <Copy SourceFiles="$(ProjectDir)robots.txt" DestinationFolder="$(_PackageTempDir)\css\" />  
    </Target>
    
    
    
    我已编辑了您的标题。请看“”,其中的共识是“不,他们不应该”。@JohnSaunders感谢您修改我的标题。
    <Target Name="AdditionalFilesForPackage" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
        <Copy SourceFiles="$(ProjectDir)robots.txt" DestinationFolder="$(_PackageTempDir)\css\" />  
    </Target>