2012-08-13 10 views

Antwort

6

Verwenden Sie die VisualStudioVersion-Eigenschaft.

+0

ein Projekt in VS2008 mit der Erstellt nach hinzugefügt folgenden '': PrintVisualStudioInfo; $ (CompileDependsOn) Turned VS2008 Ausgang auf Normal. Ergebnis: Ziel PrintVisualStudioInfo: VisualStudioVersion: '' Auf VS2010 Ergebnis: PrintVisualStudioInfo: VisualStudioVersion: '10 .0' – WaffleSouffle

6

Da Kommentare nicht formatiert sind, hier ist die Untersuchung, die zeigt, dass fsimonazzi korrekt ist. Im Jahr 2008 ist VisualStudioVersion NICHT festgelegt. Auf 2010 (und vermutlich auch darauf) ist es.

ein Projekt in VS2008 mit folgenden hinzugefügt Erstellt nach <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />:

<Target Name="PrintVisualStudioInfo"> 
    <Message Text="VisualStudioVersion: '$(VisualStudioVersion)'" /> 
</Target> 
<PropertyGroup> 
    <CompileDependsOn> 
    PrintVisualStudioInfo; 
    $(CompileDependsOn) 
    </CompileDependsOn> 
</PropertyGroup> 

Gedreht VS2008 Ausgabe von bis zu Normal. Ergebnis:

Target PrintVisualStudioInfo: 
    VisualStudioVersion: '' 

Auf VS2010 Ergebnis:

PrintVisualStudioInfo: 
    VisualStudioVersion: '10.0' 
5

Nach this post Eigentum besteht mit dem VS2012 beginnen. Es ist in der Microsoft.Common.targets Datei definiert, wenn .NET 4.5 installiert ist (überprüft, dass original .NET 4.0 die Eigenschaft nicht definiert hat).

Verwandte Themen