Bagikan melalui


FileTransform@2 - Tugas transformasi file v2

Gunakan tugas ini untuk mengganti token dengan nilai variabel dalam file konfigurasi XML atau JSON.

Sintaks

# File transform v2
# Replace tokens with variable values in XML or JSON configuration files.
- task: FileTransform@2
  inputs:
    folderPath: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #xmlTransformationRules: '-transform **\*.Release.config -xml **\*.config' # string. XML Transformation rules. Default: -transform **\*.Release.config -xml **\*.config.
  # Variable Substitution
    #jsonTargetFiles: # string. JSON target files. 
    #xmlTargetFiles: # string. XML target files.

Input

folderPath - Paket atau folder
string. Wajib diisi. Nilai default: $(System.DefaultWorkingDirectory)/**/*.zip.

Jalur file ke paket atau folder.

Variabel adalah Build dan Release. Penggunaan wildcard didukung.

Contohnya:$(System.DefaultWorkingDirectory)/**/*.zip Untuk folder zip, konten diekstrak ke lokasi TEMP, transformasi yang dijalankan, dan hasilnya di-zip di lokasi artefak asli.


xmlTransformationRules - Aturan Transformasi XML
string. Nilai default: -transform **\*.Release.config -xml **\*.config.

Menyediakan daftar aturan file transformasi yang dipisahkan baris baru menggunakan sintaks: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. Jalur file hasil bersifat opsional, dan jika tidak ditentukan, file konfigurasi sumber akan diganti dengan file hasil yang diubah.


jsonTargetFiles - File target JSON
string.

Menyediakan daftar file yang dipisahkan baris baru untuk menggantikan nilai variabel. Nama file harus diberikan relatif terhadap folder akar.

Misalnya, untuk mengganti nilai ConnectionString dalam sampel di bawah ini, Anda perlu menentukan variabel seperti Data.DefaultConnection.ConnectionString dalam alur build atau rilis (atau lingkungan alur rilis).

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
    }
  }
}

Penggantian Variabel dijalankan setelah transformasi konfigurasi.

Catatan: Hanya variabel kustom yang ditentukan dalam alur build/rilis yang digunakan sebagai pengganti. Variabel alur default/yang ditentukan sistem dikecualikan. Jika variabel yang sama didefinisikan dalam alur rilis dan dalam tahap, maka variabel tahapan akan menggantikan variabel alur rilis.


xmlTargetFiles - File target XML
string.

Menyediakan daftar file yang dipisahkan baris baru untuk menggantikan nilai variabel. Nama file harus diberikan relatif terhadap folder akar.

Untuk XML, Variabel yang ditentukan dalam alur build atau rilis akan dicocokkan dengan key entri atau name di bagian appSettings, applicationSettings, dan connectionStrings dari file konfigurasi apa pun dan parameters.xml.

Penggantian Variabel dijalankan setelah transformasi konfigurasi.

Catatan: Hanya variabel kustom yang ditentukan dalam alur build/rilis yang digunakan dalam substitusi. Variabel alur default/yang ditentukan sistem dikecualikan. Jika variabel yang sama didefinisikan dalam alur rilis dan dalam tahap, maka variabel tahapan akan menggantikan variabel alur rilis.


Opsi kontrol tugas

Semua tugas memiliki opsi kontrol selain input tugasnya. Untuk informasi selengkapnya, lihat Opsi kontrol dan properti tugas umum.

Variabel output

Tidak ada.

Keterangan

Apa yang baru dalam Transformasi File versi 2:

  • Bidang tugas yang lebih dioptimalkan yang memungkinkan pengguna mengaktifkan setiap/semua fitur transformasi (XML), substitusi variabel (JSON dan XML) dalam satu instans tugas.
  • Tugas gagal ketika salah satu transformasi/substitusi yang dikonfigurasi TIDAK diterapkan atau ketika tugas tidak ada operasi.

Gunakan tugas ini untuk menerapkan transformasi file dan substitusi variabel pada file konfigurasi dan parameter. Untuk detail tentang bagaimana terjemahan diproses, lihat Transformasi file dan referensi substitusi variabel.

Penting

Tugas ini ditujukan untuk paket web dan memerlukan file paket web. Ini tidak berfungsi pada file JSON mandiri.

Transformasi file

  • Saat ini, transformasi file hanya didukung untuk file XML.
  • Untuk menerapkan transformasi XML ke file konfigurasi (*.config) Anda harus menentukan daftar aturan file transformasi yang dipisahkan baris baru menggunakan sintaks:-t ransform <path to the transform file> -xml <path to the source file> -result <path to the result file>
  • Transformasi file berguna dalam banyak skenario, terutama ketika Anda menyebarkan ke layanan Aplikasi dan ingin menambahkan, menghapus, atau memodifikasi konfigurasi untuk lingkungan yang berbeda (seperti Dev, Test, atau Prod) dengan mengikuti Sintaks TransformasiWeb.config standar.
  • Anda juga dapat menggunakan fungsionalitas ini untuk mengubah file lain, termasuk konsol atau file konfigurasi aplikasi layanan Windows (misalnya, FabrikamService.exe.config).
  • Transformasi file konfigurasi dijalankan sebelum substitusi variabel.

Substitusi variabel

  • Saat ini hanya format file XML dan JSON yang didukung untuk substitusi variabel.
  • Token yang ditentukan dalam file konfigurasi target diperbarui lalu diganti dengan nilai variabel.
  • Substitusi variabel dijalankan setelah transformasi file konfigurasi.
  • Substitusi variabel hanya diterapkan untuk kunci JSON yang telah ditentukan sebelumnya dalam hierarki objek. Ini tidak membuat kunci baru.

Catatan

Hanya variabel kustom yang ditentukan dalam alur build dan rilis yang digunakan dalam substitusi. Variabel alur default dan sistem dikecualikan.

Berikut adalah daftar awalan yang saat ini dikecualikan:

  • agent.
  • azure_http_user_agent
  • build.
  • common.
  • release.
  • system.
  • tf_

Jika variabel yang sama didefinisikan dalam alur rilis dan dalam tahap, variabel yang ditentukan tahap menggantikan variabel yang ditentukan alur.

Lihat juga: Transformasi file dan referensi substitusi variabel.

Contoh

Jika Anda memerlukan transformasi XML untuk berjalan pada semua file konfigurasi bernama dengan pola .Production.config, aturan transformasi harus ditentukan sebagai:

-transform **\*.Production.config -xml **\*.config

Jika Anda memiliki file konfigurasi bernama berdasarkan nama tahap di alur Anda, Anda dapat menggunakan:

-transform **\*.$(Release.EnvironmentName).config -xml **\*.config

Untuk mengganti variabel JSON yang berlapis atau hierarkis, tentukan menggunakan ekspresi JSONPath. Misalnya, untuk mengganti nilai ConnectionString dalam sampel di bawah ini, Anda harus menentukan variabel seperti Data.DefaultConnection.ConnectionString dalam alur build atau rilis (atau dalam tahap dalam alur rilis).

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
    }
  }
}

Persyaratan

Persyaratan Deskripsi
Jenis alur YAML, Build klasik, Rilis klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Tidak ada
Kemampuan Tugas ini tidak memenuhi tuntutan apa pun untuk tugas berikutnya dalam pekerjaan.
Pembatasan perintah Apa pun
Variabel yang dapat diatur Apa pun
Versi agen Semua versi agen yang didukung.
Kategori tugas Utilitas

Lihat juga