Megosztás:


FileTransform@2 – Fájlátalakítás v2 feladat

Ezzel a feladattal lecserélheti a jogkivonatokat változó értékekre XML- vagy JSON-konfigurációs fájlokban.

Szintaxis

# 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.
    #enableXmlTransform: true # boolean. XML transformation. Default: true.
    #xmlTransformationRules: '-transform **\*.Release.config -xml **\*.config' # string. Optional. Use when enableXmlTransform == true. XML Transformation rules. Default: -transform **\*.Release.config -xml **\*.config.
    #errorOnInvalidSubstitution: false # boolean. Error on empty files and invalid substitution. Default: false.
  # Variable Substitution
    #jsonTargetFiles: # string. JSON target files. 
    #xmlTargetFiles: # string. XML target files.
# 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.

Bemenetek

folderPath - Csomag vagy mappa
string. Szükséges. Alapértelmezett érték: $(System.DefaultWorkingDirectory)/**/*.zip.

Fájl elérési útja a csomaghoz vagy egy mappához.

A változók Build és Release. A helyettesítő karakterek támogatottak.

Például $(System.DefaultWorkingDirectory)/**/*.zip. Tömörített mappák esetén a rendszer kinyeri a tartalmat a TEMP-helyre, végrehajtja az átalakításokat, és az eredményeket az eredeti összetevő helyére tömöríti.


enableXmlTransform - XML-átalakítási
boolean. Alapértelmezett érték: true.

A konfigurációátalakítások a változóhelyettesítés előtt lesznek futtatva.

Fontos

Az XML-átalakítások csak a Windows platformon támogatottak.


xmlTransformationRules - XML-átalakítási szabályok
string. Szabadon választható. Használja a enableXmlTransform == true. Alapértelmezett érték: -transform **\*.Release.config -xml **\*.config.

Az átalakítási fájlszabályok új vonallal tagolt listáját tartalmazza a következő szintaxis használatával: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. Az eredményfájl elérési útja nem kötelező, és ha nincs megadva, a forráskonfigurációs fájl lecserélődik az átalakított eredményfájlra.


xmlTransformationRules - XML-átalakítási szabályok
string. Alapértelmezett érték: -transform **\*.Release.config -xml **\*.config.

Az átalakítási fájlszabályok új vonallal tagolt listáját tartalmazza a következő szintaxis használatával: -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>. Az eredményfájl elérési útja nem kötelező, és ha nincs megadva, a forráskonfigurációs fájl lecserélődik az átalakított eredményfájlra.


JSON-célfájlok jsonTargetFiles -
string.

A változóértékek helyettesítéséhez egy új, egymástól elválasztott fájllistát biztosít. A fájlneveket a gyökérmappához viszonyítva kell megadni.

Ha például le szeretné cserélni az alábbi mintafájlban szereplő értéket ConnectionString , meg kell határoznia egy változót, mint Data.DefaultConnection.ConnectionString a buildelési vagy kiadási folyamatban (vagy a kiadási folyamat környezetében).

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

A változó-helyettesítés a konfigurációátalakítások után fut.

Megjegyzés: Csak a buildelési/kiadási folyamatokban definiált egyéni változók használhatók helyettesítésre. Az alapértelmezett/rendszer által definiált folyamatváltozók ki vannak zárva. Ha ugyanazok a változók vannak definiálva a kiadási folyamatban és a szakaszban, akkor a fázisváltozók felülírják a kiadási folyamat változóit.


XML-célfájlok xmlTargetFiles -
string.

A változóértékek helyettesítéséhez egy új, egymástól elválasztott fájllistát biztosít. A fájlneveket a gyökérmappához viszonyítva kell megadni.

XML esetén a buildelési vagy kiadási folyamatokban definiált változók a konfigurációs fájlok és keyname, appSettingsés applicationSettings szakaszaiban szereplő connectionStrings vagy parameters.xml bejegyzésekkel lesznek egyezőek.

A változó-helyettesítés a konfigurációátalakítások után fut.

Megjegyzés: Csak a buildelési/kiadási folyamatokban definiált egyéni változók használhatók a helyettesítéshez. Az alapértelmezett/rendszer által definiált folyamatváltozók ki vannak zárva. Ha ugyanazok a változók vannak definiálva a kiadási folyamatban és a szakaszban, akkor a fázisváltozók felülírják a kiadási folyamat változóit.


errorOnInvalidSubstitution - Hiba az üres fájloknál és érvénytelen helyettesítés.
boolean. Alapértelmezett érték: false.

Ha be van jelölve, a folyamat meghiúsul, ha a célfájlok üresek, vagy ha a helyettesítés meghiúsul.


Tevékenységvezérlési beállítások

Minden tevékenység a tevékenységbemeneteken kívül vezérlési lehetőségekkel is rendelkezik. További információ: Vezérlők és gyakori feladattulajdonságok.

Kimeneti változók

Egyik sem.

Megjegyzések

A Fájlátalakítás 2. verziójának újdonságai:

  • Optimalizáltabb tevékenységmezők, amelyek lehetővé teszik a felhasználók számára az átalakítás (XML), a változóhelyettesítés (JSON és XML) bármely funkciójának engedélyezését egyetlen feladatpéldányban.
  • A feladat meghiúsul, ha a konfigurált átalakítás/helyettesítés egyikét SEM alkalmazza, vagy ha a tevékenység no-op.

Ezzel a feladatával fájlátalakításokat és változóhelyettesítéseket alkalmazhat konfigurációs és paraméterfájlokra. A fordítások feldolgozásának részleteiért lásd Fájlátalakítások és változóhelyettesítési referencia.

Fontos

Ez a feladat webes csomagokhoz készült, és webcsomagfájlt igényel. Nem működik önálló JSON-fájlokon.

Fájlátalakítások

  • Jelenleg a fájlátalakítások csak XML-fájlok esetében támogatottak.
  • Ha XML-átalakítást szeretne alkalmazni a konfigurációs fájlokra (*.config) az átalakítási fájlszabályok új vonallal tagolt listáját kell megadnia a szintaxis használatával:-transform <path to the transform file> -xml <path to the source file> -result <path to the result file>
  • A fájlátalakítások számos esetben hasznosak lehetnek, különösen akkor, ha egy App Service-ben helyezik üzembe, és különböző környezetek (például Dev, Test vagy Prod) konfigurációit szeretné hozzáadni, eltávolítani vagy módosítani a szabványos Web.config átalakítási szintaxiskövetésével.
  • Ezzel a funkcióval más fájlokat is átalakíthat, például konzol- vagy Windows-szolgáltatásalkalmazás konfigurációs fájljait (például FabrikamService.exe.config).
  • A konfigurációs fájlátalakítások a változó helyettesítése előtt futnak.

Változó helyettesítése

  • Jelenleg csak XML- és JSON-fájlformátumok támogatottak a változók helyettesítéséhez.
  • A célkonfigurációs fájlokban definiált jogkivonatok frissülnek, majd változó értékekre cserélődnek.
  • A változóhelyettesítések a konfigurációs fájlátalakítások után futnak.
  • A változó-helyettesítés csak az objektumhierarchiában előre definiált JSON-kulcsokra vonatkozik. Nem hoz létre új kulcsokat.

Jegyzet

A helyettesítéshez csak a buildelési és kiadási folyamatokban definiált egyéni változók használhatók. Az alapértelmezett és a rendszerfolyamat-változók ki vannak zárva.

Íme a jelenleg kizárt előtagok listája:

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

Ha a kiadási folyamatban és a fázisban is ugyanazok a változók vannak definiálva, a fázis által definiált változók felülírják a folyamat által definiált változókat.

Lásd még: Fájlátalakítások és változóhelyettesítési referencia.

Példák

Ha xml-átalakításra van szüksége a minta .Production.confignevű összes konfigurációs fájlon való futtatásához, az átalakítási szabályt a következőképpen kell megadni:

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

Ha a folyamat fázisneve alapján elnevezett konfigurációs fájllal rendelkezik, a következőt használhatja:

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

A beágyazott vagy hierarchikus JSON-változók helyettesítéséhez adja meg őket JSONPath-kifejezések használatával. Ha például az alábbi mintában ConnectionString értékét szeretné lecserélni, egy változót Data.DefaultConnection.ConnectionString kell definiálnia a buildelési vagy kiadási folyamatban (vagy a kiadási folyamat egy szakaszában).

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

Követelmények

Követelmény Leírás
Folyamattípusok YAML, klasszikus build, klasszikus kiadás
Futtatás bekapcsolva Ügynök, DeploymentGroup
Követelmények Egyik sem
képességek Ez a tevékenység nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek.
parancskorlátozások Bármely
Változók beállítása Bármely
Ügynök verziója Minden támogatott ügynökverzió.
Tevékenységkategória Hasznosság

Lásd még: