次の方法で共有


SQL プロジェクトビルドのトラブルシューティング

SQL プロジェクトのビルド出力は、データベース モデルの構築と T-SQL 検証に関するフィードバックを提供します。 既定のコマンド ライン出力には、エラーと一部の状態情報のみが表示されます。 この記事では、より詳細なログ記録を有効にして、SQL プロジェクトで発生するビルドの問題と一般的なエラーのトラブルシューティングに役立つ方法について説明します。

詳細ログ記録を有効化

SQL プロジェクトのビルドの問題をさらにトラブルシューティングするために、コマンド ライン スイッチを使用してさらにログを生成できます。 より多くのログ記録は、エラーの原因を特定するだけでなく、ビルド速度の低下にも役立ちます。 2 つの主なオプションは次のとおりです。

  • バイナリ ロガー: このオプションでは、MSBuild ログ ビューアーを使用して表示できるバイナリ ログ ファイル (msbuild.binlog) が生成されます。 このビューアーは、依存関係の問題を診断し、ビルド プロセスを最適化するのに役立ちます。 このログを生成するコマンドは次のとおりです。

    dotnet build -bl
    
  • ファイル ロガー: このオプションは、ビルドからの最も詳細なログ記録を含むテキスト ログ ファイルを生成します。 このログを生成するコマンドは次のとおりです。

    dotnet build -flp:v=diag
    

要約すると、両方のログを生成する結合コマンドは次のとおりです。

dotnet build -bl -flp:v=diag

スイッチの完全なセットについては、 MSBuild Command-Line リファレンスを参照してください

一般的な問題

ビルド エラー

ビルド エラーが無効な構文を示す場合、出力では、エラーコードを含むファイルも指定されます。 最近追加された構文を使用している場合は、プロジェクト SDK のバージョンの更新が必要になる場合があります。

データベース プロジェクトからのビルド エラーには SQLxxxxx エラー コードが必要です。ここで、 xxxxx は 5 桁の数字です。 未解決の参照 (SQL71501/SQL71502) のエラーの原因となるいくつかの問題は次のとおりです。

  • あいまいなオブジェクト名。 推奨 事項:
    • 完全に解決された名前を使用する ([schema].[table].[column])
    • 必要に応じてオブジェクトの名前を変更する
  • システム オブジェクト。 勧告:
    • パッケージ参照またはデータベース参照を使用して master または msdb への参照を追加する
  • 外部参照。 勧告:

その他のエラー

復元中に発生するエラーの場合は、プロジェクト内の /bin フォルダーと /obj フォルダーを削除した後、最初にクリーン ビルドを実行します。

エラーに SDK 'Microsoft.Build.Sql' specified could not be found​が含まれている場合は、まず NuGet パッケージ フィードが有効であることを確認します。 現在のフィードを表示する基本コマンドは次のとおりです。

dotnet nuget list source​

パブリック NuGet フィードは次のとおりです。

dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org​

環境にプライベート フィードが必要な場合は、有効でアクセス可能であることを確認します。 パッケージ フィードを使用して認証する必要がある場合があります。 プロジェクトのビルド中に認証を有効にするには、次の方法があります。

dotnet build --interactive

MSBuild の場合、同等のコマンドは次のとおりです。

msbuild /p:nugetInteractive=true​

SQL 以外のその他のエラー コードについては、次のリソースを参照してください。