如何在tokenfile中转义{0}

时间:2014-12-17 10:57:10

标签: c# .net tfs token

我是使用令牌文件的新手,而且我已经陷入了一些困境。

我的令牌文件如下所示:

<tokens>
       <token name="URL.GETFILE" value="http://someserver.mycompany.com/virtual.directory/GetFile.aspx?file_id={0}" />
</tokens>

我的web.config篇:

<configuration>
    ....
    <applicationSettings>
       <MyProject.My.Settings>
           <setting name="GetFileUrl" serializeAs="String">
               <value>http://somedvlpserver.mycompany.com/virtual.directory/GetFile.aspx?file_id={0}     </value>
           </setting>
       </MyProject.My.Settings>
    </applicationSettings>
</configuration>

我的变换文件:

  <setting name="GetFileUrl" serializeAs="String" xdt:Locator="Match(name)">
    <value xdt:Transform="Replace">{URL.GETFILE}</value>
  </setting>

在构建解决方案时,我收到错误:

No value or default value found for token '0'

我的令牌文件中的{0}是否会以某种方式干扰转换?如果是这样,转换如何忽略它呢?

感谢您的时间

1 个答案:

答案 0 :(得分:1)

对于string.Format,您使用双括号{{}}来编码文字{}。我不熟悉那个特定的API /格式,但似乎有相同的行为。

来自string.Format文档:

  

如何在结果字符串中加入文字大括号("{""}")?

     

单个开始或结束括号始终被解释为格式项的开头或结尾。要按字面解释,必须将其转义。通过添加另一个大括号("{{""}}"而不是"{""}")来逃避大括号,


通常,加倍或反斜杠转义是处理具有特殊含义的字符的最流行的技术。因此,当遇到未知格式时,请尝试这两种格式,并且您很有可能其中一种格式有效。