我有一个用于IIS宿主web应用程序的parameters.xml文件(它可以处理javascript、HTML文件)。为了创建一个持续的部署序列,我阅读了关于创建发布配置文件、使用令牌标记它以及通过TFS ( on -Prem)构建和发布、标记和发布我的web应用程序的内容。问题是我在客户端站点应用程序中有一个javascript配置文件。我希望能够用已经创建的管道Iv'e中的令牌来编辑它。
我的参数xml如下:
<parameters>
<parameter name="DebugOption"
description="Some debug option."
defaultValue="false">
<parameterEntry
kind="TextFile"
scope="config.js"
match="debugOption = true" />
</parameter>
</parameters>如您所见,我正在匹配字符串"debugOption = true“。我想要实现的是只将true更改为 false ,但是在TFS中的令牌程序任务中,如果我将$(DebugOption)设置为false,它将所有字符串替换为false--具体而言,它将"debugOption = true“替换为"false",这不是我想要的最终结果。
是否有任何方法来匹配这种字符串(我不能只匹配true,因为它将替换javascrip文件中所有的“true”),并且只更改值,而不给值"debugOption = false“--仅为false?
发布于 2017-10-24 11:43:06
如果不可能替换字符串的一部分,为什么不直接替换整个单词。在这里,您希望为debugOption设置false,因此将发布部分中的变量设置为$(DebugOption) = debugOption=false。
我希望这会成功。
谢谢
发布于 2017-08-02 11:27:20
无法实现更新。只需将debugMode=true替换为debugMode=false就行了;匹配器不知道需要替换哪个部分。
如果您正在使用令牌化任务或发布管理实用程序任务中的托卡器任务
This task finds the pattern __<pattern>__ and replaces the same with the value from the variable with name <pattern>.
Eg. If you have a variable defined as foo with value bar,
on running this task on a file that contains __foo__ will be changed to bar.以匹配整个字符串,而不是每个标记字符串。您需要稍微更改RegEx,以避免在其选择中贪婪。
$regex = '__[A-Za-z0-9._-]*?__'更多细节请参考以下问题:web.config.token中基于令牌化的模式替换
https://stackoverflow.com/questions/45446273
复制相似问题