BuildingInsideVisualStudio
MSBuild property允许根据Visual Studio是否正在构建某个版本来编写条件:
<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 Azure的较新版本相关联 工具。您必须下载工具并重新加载项目才能继续。
换句话说,在项目加载期间,BuildingInsideVisualStudio
的评估结果为false,因此解决了不受支持的9.9 ProductVersion
。
答案 0 :(得分:0)
例如,在ccproj中,这样的操作不起作用:
实际上,它对我而言效果很好,所以我想该物业的位置是否会有所不同。我在可能的所有地方都尝试过,但是无法重现相同的问题。
根据您的not set during evaluation/design/project-load
,您是否将该属性用作项目节点的条件,如下所示:
<Project... Condition="$(BuildingInsideVisualStudio) " ...>
...
</Project>
仅在这种情况下,该属性无法工作,因为Project节点本身不支持Condition
。我们必须像在PropertyGroup,ItemGroup,Property ...中使用它一样inside <Project>
。
是否有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>
如果我误解了任何内容,请随时告诉我,希望能有更多细节重现该问题:)
编辑:
利用Ohad的详细信息,我转载了该问题。
目前,BuildingInsideVisualStudio
属性仅在构建过程开始时起作用,仅当它在VS中构建时才会设置为True,但在VS中重新加载或打开时不会设置为True,这会导致问题
但是我不知道是否存在像LoadingInsideVisualStudio
这样的项目加载属性。答案可能是否定的。