在创建新的 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:\source\solution\FSharpLib\FSC 1 Active
Run Code Online (Sandbox Code Playgroud)
这是演示该问题的最小解决方案。在一个真正的解决方案中,显然有更多的项目。
\solution
\solution\Directory.Build.props
\solution\CSharpLib
\solution\FSharpLib
<Project>
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
FSharpLib
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="Library.fs" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
是否有可能有c sharp和f sharp项目并排用Directory.Build.props在根文件夹只适用于c sharp项目?
将构建道具移动到下面只有 csharp 项目的文件夹中是可行的,但我不想以这种方式构建事物 - 我希望相关模块彼此并排。
您可以添加Condition="'$(ProjectExt)'=='.csproj'"到您的Directory.build.props PropertyGroup以仅将其应用于 C# 项目。
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |