我有一个带有 的 csproj <LangVersion>default</LangVersion>,它当前默认为 c# 7.0。如果我手动将其更改为 7.3,它会正确编译使用 7.1 及更高版本的某些功能的代码。当然,我可以在每个 csproj 上更改此设置,但是由于我们有很多,我正在寻找其他解决方案。我在存储库的根目录中添加了 Directory.Build.props,并将其导入到 csproj 中。但是<LangVersion>来自 csproj 的设置优先于<LangVersion>来自我的道具文件的设置......无论我在 csproj 中的哪个位置导入它。<LangVersion>如果这可以从一些主道具继承,我宁愿不要求每个人从他们的 csproj 和所有未来的 csproj 中删除该属性……但似乎并非如此。我在这里错过了什么?
1 回答
有只小跳蛙
TA贡献1824条经验 获得超8个赞
该Directory.Build.props
文件<Import>
在项目文件的开头 (!)自动导入(不需要)。
因此,项目文件中的每个内容都添加在该文件的内容之后,因此将覆盖之前定义的值。(除非 csproj 包含类似 的条件<LangVersion Condition="'$(LangVersion)' != ''">…
)。
要覆盖来自 csproj 文件的任何值,您可以使用Directory.Build.targets
在 (!) 项目内容之后自动导入的文件,该文件允许您覆盖项目文件中设置的值。
- 1 回答
- 0 关注
- 270 浏览
添加回答
举报
0/150
提交
取消