c#7.2にアップグレードした後、私たちの自動ビルドサーバがコンパイルエラーを起こしました。 "機能 'readonly references'はC#7.0では使用できません。言語7.2以上を使用してください。DevenvコマンドラインC#7.2言語機能を使用しないでビルド
失敗したプロジェクトは、[高度なビルド]タブで「最新マイナーバージョン」(7.2)を使用するように設定されています。このプロジェクトは、Visual Studioでうまく構築されて実行されます。そのエラーでコマンドラインが失敗します。ビルド設定を「最新のマイナーバージョン」ではなく7.2に明示的に設定することも失敗します。
コマンドラインで最新の言語機能を読み込めないのはなぜですか?それはVSのIDEで動作するのですか?
コマンドラインは 「devenvをSolutionFile.sln /リリースの構築」である
再現するサンプルアプリケーション/これは、フォームやボタン、および構造体を渡すためのハンドラで、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
}
}
更新: また、コマンドラインでのミスマッチのバージョンがあります。コマンドラインが開き、v15.5.1が表示されます。しかし、devenv exeは以前のバージョンを提供します。
これはほぼ確実に自動ビルドの問題ですので、あなたのビルドサーバーのセットアップがどのようにかについていくつかの詳細を追加してください。.. –
は を@DanLingこんにちはダン、混乱のために申し訳ありません。自動ビルドとは何の関係もありません。コマンドプロンプトを開き、元の投稿で指定したコマンドラインで入力するとエラーが再現されます。 これが役立つ場合は、コマンドラインの画像を追加しました。 –
あなたのパスに正しいバージョンのVSが実行されていることを確認するために 'where devenv'を実行できますか? –