根文件夹中带有c#和f#项目的Directory.Build.props会导致问题



在创建新的Visual Studio解决方案时,我希望使用Directory.Build.props来控制所有c#项目的c#版本号,而不必单独设置它们。

但是,混合使用c#和f#文件夹会导致编译错误。

Severity    Code    Description Project File    Line    Suppression State
Error   FS0246  Unrecognized value '8.0' for --langversion use --langversion:? for complete list    FSharpLib   C:sourcesolutionFSharpLibFSC    1   Active

这是证明问题的最小解决方案。在一个真正的解决方案中,显然有更多的项目。

文件夹结构

\solution
\solution\Directory.Build.props

目录.构建.操作

<Project>
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
</Project>

项目文件(为了完整性(

CSharpLib
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
FSharpLib
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="Library.fs" />
</ItemGroup>
</Project>

是否可以将c sharpf sharp项目与根文件夹中的Directory.Build.props并排,以仅应用于c sharp项目?

将构建道具移动到下面只有csharp项目的文件夹中是可行的,但我不想以这种方式构建东西——我希望相关的模块彼此并排。

您可以将Condition="'$(MSBuildProjectExtension)'=='.csproj'"添加到Directory.build.propsPropertyGroup中,以仅将其应用于C#项目。

相关内容

最新更新