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]) - 必要に応じてオブジェクトの名前を変更する
- 完全に解決された名前を使用する (
- システム オブジェクト。 勧告:
- 外部参照。 勧告:
その他のエラー
復元中に発生するエラーの場合は、プロジェクト内の /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 以外のその他のエラー コードについては、次のリソースを参照してください。
- MSBuild エラー: MSBuild リファレンス
- NETSDK エラー: .NET SDK エラー一覧
- NuGet エラー: NuGet エラーと警告リファレンス