gpt4 book ai didi

msbuild - Directory.build.props 中 "PropertyGroup"的条件不起作用

转载 作者:行者123 更新时间:2023-12-03 09:28:41 25 4
gpt4 key购买 nike

我已经创建了一个 Directory.build.props 文件,所以我可以在那里设置 C# 语言版本。
但我也有 Visual Basic 项目,所以我想将设置限制为 C# 项目。

<Project>
<PropertyGroup Condition="'$(ProjectExt)'=='.csproj'">
<LangVersion>7.2</LangVersion>
</PropertyGroup>
</Project>

但是我的项目没有加载它/UI 没有显示语言版本 7.2。
我试图在 csproj 文件中应用相同的条件,但也不起作用。
<PropertyGroup>
<LangVersion Condition="'$(ProjectExt)'=='.csproj'">7.2</LangVersion>
</PropertyGroup>

但是,这将起作用:
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Message Text="Condition working" Importance="high" Condition="'$(ProjectExt)'=='.csproj'"/>
</Target>

构建将输出我的消息

为什么该条件不适用于我的 LanguageVersion?任何线索?

最佳答案

您将需要使用一个属性来确定在构建的早期可用。在你的情况下,你应该以 MSBuildProjectExtension 为条件:

<PropertyGroup>
<LangVersion Condition="'$(MSBuildProjectExtension)'=='.csproj'">7.2</LangVersion>
</PropertyGroup>

MSBuild reserved and well-known properties完整的可用属性集。
ProjectExt仅在构建定义的后期定义,因此在 Directory.Build.props 中不可用,它很早就被导入到项目中。

关于msbuild - Directory.build.props 中 "PropertyGroup"的条件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54535843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com