2016-12-01 8 views
0

設定ファイルのトークン置換を設定しようとしています。 Iに設定されたソースファイル名があります。VS 2015リリース管理トークン化XPath /正規表現が動作しない

$(System.DefaultWorkingDirectory)/TFS Web Build 1.0/Corporate Art\app.RM.config 

を(ここでは、RMファイルがトークンを使用してトークン化設定ファイルである)

先のファイル名は、configファイルの本当の名前に設定されています

Company.Client.Corporate.exe.config 

私がビルドサーバー上のJSONファイルを持っている:

\0111-03-0555-01\c$\BuildFiles\Transforms.json 

transforms.json PowerShellには次の行は、他のすべての情報であるブラックとは対照的に灰色であるC:\Users\Public\Downloads\agent\tasks\Tokenizer\2.0.2\tokenize.ps1

実行さ

[ 
{ 
"CompanyTestDomain": {"QA4"}, 
"Environment": {"QA4.com"}, 
"CheckForContext": {"true"}, 
"ServiceTierAppHost": {"0111-06-0555-00-01.Company.com"}, 
"ServiceTierCsHost": {"0111-03-0444-00.Company.com"}, 
"ReportServer": {"0777-02-0111-00-01.Company.com"}, 
"ReportID": {"systemID"}, 
"ReportDomain": {"Corp"}, 
"ReportPWord": {"Password"} 
} 
] 

:ファイルは、その中に以下のデータを有する

##[debug]Performing the operation "Copy File" on target "Item: 
C:\Agent_work\85c7a0d97\TFS Web Build 1.0\CorporateArt\app.RM.config 
Destination: C:\Users\Public\Downloads\agent\tasks\Tokenizer\2.0.2\Isagenix.Clients.CorporateBackOffice.exe.config.tmp". 

た後、トークン 'CompanyTestDomain'を更新しています トークン 'CompanyTestDomain'の値が見つかりません

だから、誰かが私が間違ってやっていることを理解する手助けができますか?設定ファイルの内容は次のようでなければならない

+0

Webベースのリリース管理またはサーバーベースのリリース管理を使用していますか?あなたはどの仕事をしましたか?リリース管理定義の詳細を提供します。このタスクはどうですか:https://marketplace.visualstudio.com/items?itemName=ms-devlabs.utilitytasks –

+0

私はウェブベースのリリース管理を使用しています。タスクは郵便のタイトルに記載されています: "VS 2015リリース管理トークン化XPath /正規表現"少なくとも、それが現れる名前です。私はそれがあなたが参照しているものだと思います。私はリリースにリンクされているビルドを持っています。現時点で私が持っている唯一のタスクは、この1つのタスクです。定義情報に関して他に何をお探しですか? – JCollier

+0

私のソリューションでこの問題を解決しますか? –

答えて

0

(セクションConfigChangesを含有する)

例えば:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
     <add key="TestKey1" value="__Token1__" /> 
     <add key="TestKey2" value="__Token2__" /> 
     <add key="TestKey3" value="__Token3__" /> 
     <add key="TestKey4" value="__Token4__" /> 
    </appSettings> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" /> 
    </startup> 
</configuration> 

設定ファイルの内容:

{ 
    "Default Environment": { 
    "CustomVariables": { 
     "Token2": "value_from_custom2", 
     "Token3": "value_from_custom3" 
    }, 
    "ConfigChanges": [ 
     { 
     "KeyName": "/configuration/appSettings/add[@key='TestKey1']", 
     "Attribute": "value", 
     "Value": "value_from_xpath" 
     } 
    ] 
    } 
} 

ソースコンテンツファイル

リリース定義の変数:Token4のT4

結果:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <appSettings> 
    <add key="TestKey1" value="value_from_xpath" /> 
    <add key="TestKey2" value="value_from_custom2" /> 
    <add key="TestKey3" value="value_from_custom3" /> 
    <add key="TestKey4" value="t4" /> 
    </appSettings> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" /> 
    </startup> 
</configuration> 

詳しい情報は、これらの記事(12)を確認することができます。

+0

これについての馬鹿ガイドはありますか?最初のものはトークン化された設定ファイルですか? 2番目のファイルはjsonファイルですか? 私はウェブにラインを持っています。以下のとおりである:configと <キー=「GoogleAnalytics」値を追加=「__ GoogleCode__」/> 私は次のように__GoogleCode__を置き換えたい: 米国-12349809から5 何JSONファイルは次のようになりますか? { "デフォルト環境":{ "CustomVariables":{ "GoogleCode": "US-12349809から5" } – JCollier

+0

@JCollier最初のものは、ソースファイル(web.configファイル)であり、第二のものです設定ファイル(jsonファイル)。 jsonファイルは{"Default Environment":{"CustomVariables":{"GoogleCode": "US-12349809-5"}のようになり、web.configファイルは 。 (このタスクでは、パターン__ __が見つかります)。記事:https://github.com/openalm/Extension-UtilitiesPack/blob/master/Utilites/overview.mdおよびhttps://the.randomengineer.com/2016/05/06/using-tokenization-token-replacement- for-buildsreleases-in-tfs-2015 / –

関連する問題