Frage

Ich arbeite an einem Visual Studio 2010-Erweiterung, und ich möchte ein Attribut zu einem MSBuild Artikel hinzuzufügen, wie folgt:

 <EmbeddedResource Include="SomeFile.xml">
      <FooAttribute>%(Filename)%(Extension)</FooAttribute>
 </EmbeddedResource>

So weit der einzige Weg, ich fand, ist die Methode mit IVsBuildPropertyStorage.SetItemAttribute . Dies funktioniert gut für einfache Strings, aber wenn ich versuche, Zeichen zu verwenden, die zu MSBuild speziell sind, ich dieses Ergebnis erhalten:

 <EmbeddedResource Include="SomeFile.xml">
      <FooAttribute>%29%25%28Filename%29%25%28Extension%29</FooAttribute>
 </EmbeddedResource>

Das bedeutet, dass SetItemAttribute automatisch aus MsBuild Zeichen entkommt und ich will das nicht.

War es hilfreich?

Lösung

Diese Frage ist ein bisschen alt, aber braucht eine Antwort. VS2010 scheint bessere Schnittstelle zu haben, die Werte ohne Flucht einstellen können.

  

IVsBuildPropertyStorage2 Schnittstelle

     

vom Projektsystem implementiert Aromen um den Zugang zu dem   MSBuild-Eigenschaftensystem. Diese Schnittstelle bietet mehr Flexibilität   um das Festlegen von Eigenschaften als IVsBuildPropertyStorage. Es ermöglicht   eine neue bedingte Eigenschaft Gruppe hinzufügen und nicht entkommt der   Werte.

Das heißt, die Funktion SetPropertyValueEx : http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivsbuildpropertystorage2.setpropertyvalueex.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top