Sto lavorando su uno Studio 2010 estensione visiva e voglio aggiungere un attributo a un elemento MSBuild, come segue:Come impedire a IVsBuildPropertyStorage.SetItemAttribute di eseguire l'escape di caratteri speciali?
<EmbeddedResource Include="SomeFile.xml">
<FooAttribute>%(Filename)%(Extension)</FooAttribute>
</EmbeddedResource>
Quindi, di gran lunga l'unico modo che ho trovato è con il metodo IVsBuildPropertyStorage.SetItemAttribute
. Questo funziona bene per semplici stringhe, ma quando provo a utilizzare i caratteri che sono speciali per MSBuild, ottengo questo risultato:
<EmbeddedResource Include="SomeFile.xml">
<FooAttribute>%29%25%28Filename%29%25%28Extension%29</FooAttribute>
</EmbeddedResource>
Ciò significa che SetItemAttribute
sfugge automaticamente da personaggi MSBuild e non voglio questo.
Sei certo che MSBuild non accetterà le forme sfuggiti di questi personaggi? –
Accetta caratteri di escape per quei caratteri ... MA non voglio uscire voglio "% (Nome file)% (Estensione)" nel mio file di progetto. Se lascio "% 29% 25% 28Filename% 29% 25% 28Extension% 29" msbuild prenderà questo come costante di stringa. –