我有一个问题,想法如何在FileUpdate
属性的MSBuild ReplacementText
目标中正确转义双引号。
我想做的事情非常简单。我想搜索AssemblyFileVersion("1.0.0.0")
并将其替换为AssemblyFileVersion("1.0.0.<revision number here>")
。我正在使用看起来像这样的FileUpdate
元素:
<FileUpdate Files="Properties\AssemblyInfo.cs" Regex="AssemblyFileVersion(\(\x22)(\d+)\.(\d+)\.(\d+)\.(\d+)" ReplacementText="AssemblyFileVersion$1$2.$3.$4.$(build_vcs_number_1)" />
这很好用,但这确实是一种奇怪的方式!基本上,由于我无法在ReplacementText
属性中使用双引号,我必须将“从正则表达式字符串中分组,然后使用组号将”插入{{1} (实际上,我将(和“,但我只需要分组”)分组。
我已经尝试了所有标准方法 - \“,”“,\ x22,\ x22,\”,但没有任何效果。我必须在这里遗漏一些明显的东西,但它是什么?
...尴尬
答案 0 :(得分:4)
在带引号的字符串中的* ML中,使用"
来表示引号。
例如:
<FileUpdate Files="Properties\AssemblyInfo.cs" Regex="(AssemblyFileVersion\("\d+\.\d+\.\d+\.)\d+("\))" ReplacementText="$1$(build_vcs_number_1)$2" />
您可能也可以使用单引号,如下所示:
<FileUpdate Files="Properties\AssemblyInfo.cs" Regex='(AssemblyFileVersion\("\d+\.\d+\.\d+\.)\d+("\))' ReplacementText="$1$(build_vcs_number_1)$2" />