5

VS2012を使用したソース管理用にTFSオンラインでAzureにasp.netWebサイトをセットアップしました。VS2012の新しいパブリッシングプロファイルとMSBuildを使用してファイルをコピーしようとしています。この記事を読むVisualStudio2012 Web展開プロジェクトは廃止されました–ロングライブパブリッシングプロファイル。ダグは、パブリッシングプロファイルでビルドスクリプトを使用できると述べています。

そこで、ローカルビルドの.csprojで機能するテストを設定します。単にrobots.txtファイルをルートディレクトリからcssディレクトリにコピーしているだけです。これが私のテストです。プロセス>6のTFSビルドプロセステンプレートにpubxmlを設定しました。公開-AzureWebサイト、Web配置Pubishプロファイル。

<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. ValidateSolutionConfiguration:
  2. PrepareForBuild:
  3. CoreCompile:
  4. _CopyFilesMarkedCopyLocal:
  5. CopyFilesToOutputDirectory:
  6. GenerateTargetFrameworkMonikerAttribute:
  7. CoreCompile:
  8. _CopyFilesMarkedCopyLocal:
  9. CopyFilesToOutputDirectory:
  10. _CopyWebApplicationLegacy:
  11. ValidateGlobalPackageSetting:
  12. CollectFilesFromIntermediateAssembly:
  13. CollectFilesFromContent:
  14. CollectFilesFromIntermediateSatelliteAssembliesWithTargetPath:
  15. CollectFilesFromReference:
  16. CollectFilesFromAllExtraReferenceFiles:
  17. CollectFilesFrom_binDeployableAssemblies:
  18. PipelineCollectFilesPhase:
  19. ExcludeGeneratedDebugSymbol:
  20. PreTransformWebConfig:
  21. TransformWebConfigCore:
  22. PostTransformWebConfig:
  23. PreProfileTransformWebConfig:
  24. PipelineTransformPhase:
  25. ProcessPublishDatabaseSettings:
  26. PreAutoParameterizationWebConfigConnectionStrings:
  27. AutoParameterizationWebConfigConnectionStringsCore:
  28. PostAutoParameterizationWebConfigConnectionStrings:
  29. PipelineMsdeploySpecificTransformPhase:
  30. ValidatePublishProfileSettings:
  31. CopyAllFilesToSingleFolderForMsdeploy:
  32. PipelineCopyAllFilesToOneFolderForMsdeploy:
  33. パッケージ:
  34. GenerateMsdeployManifestFiles:
  35. PackageUsingManifest:
  36. GenerateSampleDeployScript:
  37. PipelineDeployPhase:
  38. AfterBuild:

したがって、Azureは、「31.CopyAllFilesToSingleFolderForMsdeploy」ステップですべてのファイルをパッケージ化するように見えます。AfterBuildステップ中にコピーを実行するのが遅れているように見えます。コピーコマンドをターゲットの「BeforeBuild」に移動しましたが、ファイルはまだCopyAllFilesToOneFolderForMsdeployステップで終了していません。

4

1 に答える 1

7

これを解決するのを手伝ってくれた 公開/パッケージ化の前にCSS/JavaScriptを圧縮する方法についての彼の記事をくれたSayedIbrahimHashimiに感謝します。

PackageTempDirectoryを直接コピーすることが可能です。最終的に、このターゲットを公開プロファイル(pubxml)ファイルに追加しました。「CopyAllFilesTOSingleFolderForMsdeploy」ステップが終了すると、このステップが実行され、ソリューションの一部から指定した宛先フォルダーにファイルがコピーされます。

<Target Name="AdditionalFilesForPackage" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
    <Copy SourceFiles="$(ProjectDir)robots.txt" DestinationFolder="$(_PackageTempDir)\css\" />  
</Target>
于 2013-01-14T23:30:59.760 に答える