Я работаю на Визуальный расширение Studio 2010. и я хочу, чтобы добавить атрибут к MSBuild Пункт следующим образом:Как предотвратить исключение IVsBuildPropertyStorage.SetItemAttribute из экранирования специальных символов?
<EmbeddedResource Include="SomeFile.xml">
<FooAttribute>%(Filename)%(Extension)</FooAttribute>
</EmbeddedResource>
Итак, пока единственный способ, которым я нашел, используя метод IVsBuildPropertyStorage.SetItemAttribute
. Это прекрасно работает для простых строк, но когда я пытаюсь использовать символы, которые являются особенными для MSBuild, я получаю этот результат:
<EmbeddedResource Include="SomeFile.xml">
<FooAttribute>%29%25%28Filename%29%25%28Extension%29</FooAttribute>
</EmbeddedResource>
Это означает, что SetItemAttribute
автоматически выходит из символов MSBuild, и я не хочу этого.
Вы уверены, что MSBuild не будет принимать сбежавшую форму этих персонажей? –
Он принимает экранированную форму для этих символов ... НО я не хочу убежать. Я хочу «% (имя файла)% (расширение)» в файле проекта. Если я дам «% 29% 25% 28Filename% 29% 25% 28Extension% 29» msbuild примет это как строчную константу. –