Sdílet prostřednictvím


Řešení potíží s sestavením projektu SQL

Výstup sestavení projektu SQL poskytuje zpětnou vazbu k konstrukci modelu databáze a ověřování T-SQL. Výchozí výstup příkazového řádku zobrazuje jenom chyby a některé informace o stavu. V tomto článku probereme, jak povolit podrobnější protokolování, které pomáhá řešit problémy s sestavením a běžné chyby, ke kterým dochází u projektů SQL.

Povolení podrobného protokolování

Pokud chcete dál řešit problémy se sestavením projektů SQL, doporučuje se použít přepínače příkazového řádku k generování dodatečných logů. Další protokolování může pomoct nejen s identifikací příčin chyb, ale také se zjištěním zhoršení rychlosti sestavení. Dvě primární možnosti jsou:

  • Binární protokolovací nástroj: Tato možnost vygeneruje binární soubor protokolu (msbuild.binlog), který lze zobrazit pomocí prohlížeče protokolů NÁSTROJE MSBuild. Tento prohlížeč je užitečný pro diagnostiku problémů závislostí a optimalizaci procesu sestavení. Příkaz pro vygenerování tohoto protokolu:

    dotnet build -bl
    
  • Protokolovací nástroj pro soubory: Tato možnost vygeneruje textový soubor protokolu, který obsahuje nejpodrobnější protokolování z sestavení. Příkaz pro vygenerování tohoto protokolu:

    dotnet build -flp:v=diag
    

Abych to shrnul, kombinovaný příkaz k vygenerování obou protokolů je:

dotnet build -bl -flp:v=diag

Úplnou sadu přepínačů naleznete v referenční příručce MSBuild Command-Line.

Běžné problémy

Chyby sestavení

Pokud chyba sestavení značí neplatnou syntaxi, výstup také určuje, který soubor obsahuje chybný kód. Pokud používáte syntaxi, která byla nedávno přidána, možná budete muset aktualizovat verzi sady SDK projektu.

Chyby sestavení z databázového projektu by měly mít SQLxxxxx kód chyby, kde xxxxx je pěticiferné číslo. Mezi problémy, které způsobují chybu nevyřešeného odkazu (SQL71501/SQL71502) patří:

  • Nejednoznačné názvy objektů Doporučení:
    • Použití plně rozlišených názvů ([schema].[table].[column])
    • Podle potřeby přejmenujte objekty.
  • Systémové objekty. Doporučení:
  • Externí odkazy. Doporučení:

Jiná selhání

V případě chyby, ke které dojde během obnovení, nejprve spusťte čisté sestavení po odstranění /bin a /obj složek v projektu.

Pokud chyba obsahuje SDK 'Microsoft.Build.Sql' specified could not be found​, začněte ověřením, zda jsou zdroje balíčků NuGet platné. Základním příkazem pro zobrazení aktuálních informačních kanálů je:

dotnet nuget list source​

Veřejný informační kanál NuGet je:

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

Pokud vaše prostředí vyžaduje privátní informační kanály, ujistěte se, že jsou platné a přístupné. Je možné, že se budete muset ověřit pomocí zdrojů balíčků. Povolení ověřování během sestavení projektu lze provést pomocí:

dotnet build --interactive

V nástroji MSBuild je ekvivalentní příkaz:

msbuild /p:nugetInteractive=true​

Další kódy chyb jiného typu než SQL najdete v následujících zdrojích informací: