gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 18:45:59 29 4
gpt4 key购买 nike

我已经在 Azure 上设置了 asp.net 网站,并使用 VS 2012 使用 TFS 在线进行源代码控制。我正在尝试使用 VS 2012 新发布配置文件和 MSBuild 复制文件。阅读这篇文章Visual Studio 2012 Web Deployment Projects are Dead – Long Live Publishing Profiles ,其中 Doug 表示您可以在发布配置文件中使用构建脚本。

因此,我设置了一个可以在本地构建的 .csproj 中运行的测试。我只是简单地将 robots.txt 文件从根目录复制到 css 目录。这是我的测试。我在 TFS 构建流程模板中的 process > 6. Publishing - Azure Website、Web Deploy Pubish Profile 下设置了 pubxml。

<Target Name="AfterBuild">
<Copy SourceFiles="$(ProjectDir)robots.txt" DestinationFolder="$(ProjectDir)css\" />
</Target>

我将此代码放入我的 pubxml 文件中,但什么也没得到。我究竟做错了什么?是否可以在 Azure 上构建后复制文件?

其他信息

日志文件包含这些行,因此我确定发布配置文件正在运行。

AfterBuild:
Creating directory "C:\a\src\...\css".
Copying file from "C:\a\src\...\robots.txt" to "C:\a\src\...\css\robots.txt".

以下是 Azure 默认构建模板使用的构建步骤:

  1. 验证解决方案配置:
  2. 准备构建:
  3. 核心编译:
  4. _CopyFilesMarkedCopyLocal:
  5. 复制文件到输出目录:
  6. 生成TargetFrameworkMoniker属性:
  7. 核心编译:
  8. _CopyFilesMarkedCopyLocal:
  9. 复制文件到输出目录:
  10. _CopyWebApplicationLegacy:
  11. 验证全局包设置:
  12. 从IntermediateAssembly收集文件:
  13. 从内容收集文件:
  14. 从IntermediateSatelliteAssembliesWithTargetPath收集文件:
  15. 从引用收集文件:
  16. 从所有额外引用文件中收集文件:
  17. CollectFilesFrom_binDeployableAssemblies:
  18. 管道收集文件阶段:
  19. 排除生成的调试符号:
  20. PreTransformWebConfig:
  21. TransformWebConfigCore:
  22. PostTransformWebConfig:
  23. PreProfileTransformWebConfig:
  24. 管道转换阶段:
  25. 处理发布数据库设置:
  26. PreAutoParameterizationWebConfigConnectionStrings:
  27. AutoParameterizationWebConfigConnectionStringsCore:
  28. PostAutoParameterizationWebConfigConnectionStrings:
  29. PipelineMsdeploySpecificTransformPhase:
  30. 验证发布配置文件设置:
  31. CopyAllFilesToSingleFolderForMsdeploy:
  32. PipelineCopyAllFilesToOneFolderForMsdeploy:
  33. 包装:
  34. 生成MsdeployManifestFiles:
  35. PackageUsingManifest:
  36. 生成示例部署脚本:
  37. 管道部署阶段:
  38. 构建后:

看起来 Azure 在“31.CopyAllFilesToSingleFolderForMsdeploy”步骤中打包了所有文件。看来在 AfterBuild 步骤中运行复制已经太晚了。我将复制命令移至目标“BeforeBuild”,但文件仍未在 CopyAllFilesToOneFolderForMsdeploy 步骤中结束。

最佳答案

感谢 Sayed Ibrahim Hashimi 的文章 How to compress CSS/JavaScript before publish/package帮助我解决这个问题。

可以直接复制Package Temp Directory。我最终将此目标添加到我的发布配置文件 (pubxml) 文件中。 “CopyAllFilesTOSingleFolderForMsdeploy”步骤完成后,将运行此步骤,将文件从解决方案的一部分复制到您指定的目标文件夹中。

<Target Name="AdditionalFilesForPackage" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
<Copy SourceFiles="$(ProjectDir)robots.txt" DestinationFolder="$(_PackageTempDir)\css\" />
</Target>

关于azure - VS 2012 使用 MSBuilld 命令发布配置文件和复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14324045/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com