La proprietà BuildingInsideVisualStudio consente di rilevare se un progetto viene creato in Visual Studio.Rileva la versione di Visual Studio dal progetto MSBuild
C'è un modo per determinare quale versione di Visual Studio viene utilizzata?
La proprietà BuildingInsideVisualStudio consente di rilevare se un progetto viene creato in Visual Studio.Rileva la versione di Visual Studio dal progetto MSBuild
C'è un modo per determinare quale versione di Visual Studio viene utilizzata?
Utilizzare la proprietà VisualStudioVersion.
Dato che i commenti non sono formattati, ecco che la ricerca di fsimonazzi è corretta. Nel 2008, VisualStudioVersion NON è impostato. Nel 2010 (e presumibilmente) lo è.
creato un progetto in VS2008 con il seguente aggiunti dopo <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
:
<Target Name="PrintVisualStudioInfo">
<Message Text="VisualStudioVersion: '$(VisualStudioVersion)'" />
</Target>
<PropertyGroup>
<CompileDependsOn>
PrintVisualStudioInfo;
$(CompileDependsOn)
</CompileDependsOn>
</PropertyGroup>
uscita VS2008 è rivelato fino a Normal. Risultato:
Target PrintVisualStudioInfo:
VisualStudioVersion: ''
Su VS2010 Risultato:
PrintVisualStudioInfo:
VisualStudioVersion: '10.0'
Secondo this post la proprietà esiste a partire dal VS2012. È definito nel file Microsoft.Common.targets
quando è installato .NET 4.5 (verificare che in .NET 4.0 originale non sia stata definita la proprietà).
creato un progetto in VS2008 con le seguenti aggiunte dopo ' ': PrintVisualStudioInfo; $ (CompileDependsOn) CompileDependsOn> PropertyGroup> Uscita VS2008 fino a Normale. Risultato: Obiettivo PrintVisualStudioInfo: VisualStudioVersion: '' Su VS2010 Risultato: PrintVisualStudioInfo: VisualStudioVersion: '10 .0' –
WaffleSouffle