gpt4 book ai didi

c# - Devenv Commandline Build 不使用 C# 7.2 语言功能

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:15 27 4
gpt4 key购买 nike

升级到 c# 7.2 后,我们的自动构建服务器出现编译错误。“功能‘只读引用’在 c#7.0 中不可用。请使用语言 7.2 或更高版本。”

失败的项目在高级构建选项卡中设置为使用“最新的次要版本”,即 7.2。该项目在 visual studio 中构建并运行良好。命令行因该错误而失败。将build设置明确设置为 7.2 而不是“最新的次要版本”也会失败。

为什么命令行无法加载最新的语言功能?它在 VS ide 中有效吗?

命令行是“devenv SolutionFile.sln/Build Release”

用于重现/演示的示例应用程序是一个 WPF 应用程序,带有一个表单和一个按钮,以及一个用于传递结构的处理程序。

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private struct Test123
{
public string test;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Test123 test;
test.test = "foo";
Test(test);
}

private void Test(in Test123 test)
{
// do nothing
}
}

enter image description here

更新:此外,命令行中存在不匹配的版本。命令行打开并显示它在 v15.5.1 上。然而,devenv exe 给出了一个更早的版本。 enter image description here

最佳答案

我认为验证是否启用了 C# 7.2 的最佳方法是直接编辑 csproj 文件,并确保 <LangVersion>7.2</LangVersion>包含在您所有的构建配置中。

例如,发布配置应该是这样的:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>7.2</LangVersion>
</PropertyGroup>

关于c# - Devenv Commandline Build 不使用 C# 7.2 语言功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47759802/

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