2016-11-18までのこと

  • ビルドを開発者のPCではなくてサーバーでする
  • PublishとDeployという言葉は何を指している?
    • VisualStudioの項目としては
      • Publish=発行
      • Deploy=配置
      • ?=公開
    • この周辺では同じ意味で使われているっぽい
  • VisualStudioの「発行」ダイアログで作った発行プロファイルを使ってデプロイパッケージを作りたい
    • コマンドラインオプションにDeployOnBuild=trueを足すことでVisualStudioの「発行」と同じことができる。
    • MSBuild
      • ログの出し方
        • /fl1 /flp1:logfile=file.txt;verbosity=diagnostic;summary;encoding=utf-8
        • visual studioでのビルドログは、「出力」ウィンドウからテキストをコピーして取得する
      • msbuildの応答ファイル ".rsp"
        • 改行できる。#でコメント。
        • >msbuild @file
      • 処理の追い方
        • AfterTargets
        • InitialTarget
        • DependsOnTargets
        • BeforeTarget
        • AfterTarget
    • ターゲットファイルを眺める
      • 標準ビルドプロセス
        • 標準ビルドプロセスからどうやって、DeployOnBuildの処理が実行されるの?
        • それは、/target=packageと関係あるの?
        • target"Package"は、VS2010からある。
        • /p:CreatePackageOnPublishは古いやりかた
      • Microsoft.Web.Publishing.targets
        • Line:2852 Target "Package"
        • Line:3852 Target "PackageUsingManifest"
        • <BuildDependOn> $(BuildDependsOn) Package </BuildDependOn>
        • Line:184
          • parameters.xmlってなに?
        • WPPとパブリッシュプロファイル
          • Line:429
        • パッケージ作成のプロパティ
          • Line:758
        • WebPublishMethodのtargetファイルをインポート
          • web\Deploy\Microsoft.Web.Publishing.Deploy.Package.targets
          • Line:2852
          • calltarget "PackageUsingManifest"
          • DeployOnBuildで、AfterTargets "PrepareForRun"で処理を差し込んでる。
        • 標準ビルドプロセス"Build"のDependsOnの"CoreBuild"のDependsOnの"PrepareForBuild"
      • デスクトップビルド
      • VisualStudioの"発行"機能(Web Publishing Pipeline "WPP")
      • 追加の設定ファイル
        • .publishsettings
        • .wpp.targets
        • .pubxml
        • 読み込まれるには、名前と場所の条件
    • パッケージってなんだ
    • パッケージの作り方を指定する
  • 結局このプロパティ
    • DeployOnBuild
    • DeployTarget
      • 既定値がPackageなので省略可能
    • PackageLocation
    • DeployAsIISApp
    • IncludeSetAclProviderOnDestination
  • pubxmlでConfigurationプロパティをReleaseに設定してもDebugでビルドされる。/p:Configuration=Release
  • どういうパッケージを作りたいか
    • 「発行」で作られるパッケージのバッチファイル
      • -source:package=[パッケージ] -dest:auto
      • 中にマニフェストが含まれている
        • iisAppプロバイダー
          • CreateAppプロバイダー
            • ApplicationHost.configにApplicationを作る
          • ContentPathプロバイダー
    • ファイルコピーだけにしたい
      • -source:contentPath=[フォルダのパス] -dest:contentPath=[Webアプリケーションの名前]
      • WPPのプロパティを使う
        • DeployAsIISApp=false
        • IncludeSetAclProviderOnDestination=false