我正在尝试使用版本管理Tokenize XPath / Regular,并且在尝试回答这三个条目时我不断收到不同的错误
源文件名: $(System.DefaultWorkingDirectory)/ XXXXX / Drop-我知道在我的构建服务器上,该文件应为 xxxxxx.exe.config,位于zip文件中
目标文件名:我不知道这应该在构建服务器还是发行服务器上?
配置Json文件名:我真的不知道该放在哪里,下面的代码是Json文件。
{ “ DEV”:{
"ConfigChanges": [{
"KeyName": "/configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']",
"Attribute": "emailListId",
"value": 0
},
{
"KeyName": "/configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']",
"Attribute": "subjectLineStarter",
"value": "[DEV]: Program Name"
},
{
"KeyName": "/configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']",
"Attribute": "smtpServer",
"value": "testsmtp.dns.com"
},
{
"KeyName": "/configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']",
"Attribute": "toAddress",
"value": "application.support.test@Yahoo.com"
}]
}
}
我的错误
2019-04-01T16:40:08.4509133Z ##[section]Starting: Tokenizer: Transform Source filename
2019-04-01T16:40:08.4663688Z ==============================================================================
2019-04-01T16:40:08.4663688Z Task : Tokenize with XPath/Regular expressions
2019-04-01T16:40:08.4663688Z Description : Replaces __<variable>__ and/or XPath for XML documents with User Defined variables or configuration json document
2019-04-01T16:40:08.4663688Z Version : 2.1.0
2019-04-01T16:40:08.4663688Z Author : ms-devlabs
2019-04-01T16:40:08.4663688Z Help : [More Information](https://github.com/openalm/Extension-UtilitiesPack)
2019-04-01T16:40:08.4663688Z ==============================================================================
2019-04-01T16:40:10.6850718Z Environment: DEV
2019-04-01T16:40:10.8413250Z Updating emailListId of /configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']: 0
2019-04-01T16:40:10.9350669Z ##[error]Failure while updating emailListId of /configuration/loggingConfiguration/listeners/add[@name='Email Trace Listener']: 0
2019-04-01T16:40:10.9663179Z ##[section]Finishing: Tokenizer: Transform Source filename
在我的.proj文件中放置了此文件,以便可以释放App.Config.Token文件而不是App.Config。
<ItemGroup>
<None Include="App.config" />
<None Include="App.Debug.config">
<DependentUpon>App.config</DependentUpon>
</None>
<None Include="App.config.Token">
<DependentUpon>App.config</DependentUpon>
</None>
</ItemGroup>
App.config和App.Debug.config相同。 App.Config.Token
答案 0 :(得分:0)
这是我们当前正在使用的标记化过程(我们不压缩构建结果,请参见下面的扩展建议)
已建立:
使用App.Config.Token替换App.Config,例如,在命令行-task中复制命令。
发布
对于每个环境/阶段:
替换档案中的令牌需要不同的扩展名,Tokenize in archive可能是一个选项。我们使用Colin's Build and Release tools,它具有用于json文件的漂亮tokenizator。我更喜欢Colin的令牌生成器,因为它非常简单明了,而且不必涉猎XPATH和转换。我们还使用Json to Variables在VC中存储环境变量,而不是将它们存储在发行版定义中。我怀疑最后一个在TFS 2017中不起作用,但没有尝试过。
对于原始问题,我怀疑您使用的扩展名无法从存档内部读取您要标记化的文件。我自己没有使用过该扩展名,但我将JSON文件放入版本控制中,因此最终出现在构建工件中。目标文件名意味着扩展名可以写出最终的配置文件,可能会替换原始的app.config。