Warum funktioniert das Attribut 'Bedingung' nicht für das Element 'ItemGroup'?

8

MS Visual Studio 2013.

Sowohl When als auch ItemGroup Elemente können das Condition Attribut haben (wie ich es in MSDN sehe). Aber ich bekomme andere Ergebnisse.

Wenn $(CAD_Year) 2015 ist, erwarte ich, dass AcRibbon nicht auf mein Projekt verweist:

%Vor%

Aber ich bekomme ungelösten Bezug im Solution Browser für die AcRibbon immer.

Aber diese Variante funktioniert gut:

%Vor%

In diesem Fall wird AcRibbon nur referenziert, wenn $(CAD_Year) kleiner als 2010 ist. Warum bekomme ich die verschiedenen Ergebnisse?

    
Andrey Bushman 04.03.2015, 09:54
quelle

1 Antwort

14

Ich habe die Antwort in MSDN hier gefunden:

  

Während bedingte Importanweisungen in Befehlszeilen-MSBuilds funktionieren,   Sie funktionieren nicht mit MSBuild in Visual Studio integriert   Entwicklungsumgebung (IDE). Bedingte Importe werden mit ausgewertet   Verwenden der Konfigurations - und Plattformwerte, die festgelegt werden, wenn der   Projekt ist geladen. Wenn nachträglich Änderungen vorgenommen werden, die a erfordern   Neubewertung der Bedingungen in der Projektdatei, zum Beispiel   Wenn Sie die Plattform ändern, überprüft Visual Studio die Bedingungen erneut   Eigenschaften und Artikel, aber nicht auf Importe. Weil der Import   Bedingung wird nicht neu bewertet, der Import wird übersprungen. Um zu arbeiten   Setzen Sie bedingte Importe in die .targets-Dateien oder setzen Sie den Code in a   bedingter Block, z. B. ein Element zum Auswählen von Elementen (MSBuild).

Ich denke, das gilt auch für ItemGroup element ...

    
Andrey Bushman 05.03.2015, 09:58
quelle