I have an issue figuring out how to escape double quotes properly in my MSBuild FileUpdate target, in the ReplacementText attribute.
What I’m trying to do is very simple. I want to search for AssemblyFileVersion("1.0.0.0") and replace it with AssemblyFileVersion("1.0.0.<revision number here>"). I’m using a FileUpdate element that looks like this:
<FileUpdate Files="Properties\AssemblyInfo.cs" Regex="AssemblyFileVersion(\(\x22)(\d+)\.(\d+)\.(\d+)\.(\d+)" ReplacementText="AssemblyFileVersion$1$2.$3.$4.$(build_vcs_number_1)" />
This works fine, but it sure seems like a strange way to do it! Basically, since I wasn’t able to get double quotes to work in the ReplacementText attribute, I had to group the ” from the Regex string, and then use the group number to insert the ” into the ReplacementText (actually, I grouped the ( and the “, but I only needed to group the “).
I’ve tried all of the standard methods — \”, “”, \x22, \x22, \”, and nothing works. I must be missing something obvious here, but what is it?
Embarrassed…
In *ML in quoted strings use
"to represent quotes.For example:
You could probably also use single quotes instead, like so: