BuildingInsideVisualStudio MSBuild性质允许根据某个构建是否正在visual中进行编写条件:
<MyProp Condition=" '$(BuildingInsideVisualStudio)' == 'true' ">Foo</MyProp>但是,在评估/设计/项目加载过程中没有设置该属性,因此,例如在ccproj中,这样的属性不起作用:
<Foo Condition=" '$(BuildingInsideVisualStudio)' == 'true' ">2.9</Foo>
<ProductVersion>$(Foo)</ProductVersion>是否有VS评估/设计/项目负荷BuildingInsideVisualStudio当量?
编辑复制步骤:
Azure Cloud Service项目。ccproj,并将行<ProductVersion>2.9</ProductVersion> (可能有不同版本)替换为:。
<Foo Condition=" '$(BuildingInsideVisualStudio)' == 'true' ">2.9</Foo>
<Foo Condition=" '$(BuildingInsideVisualStudio)' != 'true' ">9.9</Foo>
<ProductVersion>$(Foo)</ProductVersion>此项目与Microsoft工具的更新版本相关联。您必须下载这些工具并重新加载项目才能继续。
换句话说,在项目加载期间,BuildingInsideVisualStudio已评估为false,因此解决了不支持的9.9 ProductVersion。
发布于 2019-05-14 03:50:47
例如,在ccproj中,这样的东西不起作用:
实际上,它在我这边运行得很好,所以我想财产的位置是否会造成这种差异。我在每一个地方都试过了,但不能复制同样的问题。
根据您的not set during evaluation/design/project-load,您是否使用该属性作为项目节点的条件,如:
<Project... Condition="$(BuildingInsideVisualStudio) " ...>
...
</Project>只有在这种情况下,该属性才不能工作,因为Project节点本身不支持Condition。我们必须用它inside <Project>,就像用它来做PropertyGroup,ItemGroup,Property.
是否有VS评估/设计/项目负荷BuildingInsideVisualStudio当量?
不清楚您的意思,但如果您的意思是像下面这样使用Project内容之外的属性,恐怕答案是否定的。
<Project Condition="'$(BuildingInsideVisualStudio)' == 'true'">
content of project if builds in vs
</Project>
<Project Condition="'$(BuildingInsideVisualStudio)' == 'false'">
content of project if builds not in vs
</Project>如果我误解了什么,请让我知道,更多的细节需要复制:)
编辑:
关于奥哈德的细节,我转载了这个问题。目前,BuildingInsideVisualStudio属性仅在构建过程开始时才能工作,只有在VS中构建时才会将其设置为True,而不是在VS中重新加载或打开时,这会导致问题。
但是,我不知道是否存在一个项目加载属性,比如:LoadingInsideVisualStudio.The答案可能是负的。
https://stackoverflow.com/questions/56113021
复制相似问题