在MSBuild中,可以确定我是否在Visual Studio中运行

Sco*_*ein 31 msbuild visual-studio

是Visual Studio设置的任何MSBuild属性吗?我希望有一些条件行为取决于visual studio的版本(如果有的话).

Say*_*imi 41

您应该使用的属性值是BuildingInsideVisualStudio,当您在Visual Studio内部构建时,此属性将设置为true.由于ProductVersion在项目文件中声明,因此无论是在VS内部构建还是通过msbuild.exe构建它都具有相同的值.

<PropertyGroup>
    <MyProp Condition=" '$(BuildingInsideVisualStudio)' == 'true' ">Foo</MyProp>  
    <MyProp Condition=" '$(BuildingInsideVisualStudio)' != 'true' ">Bar</MyProp> 
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

  • 文档:http://msdn.microsoft.com/en-us/library/ms171468(en-us).aspx. (3认同)