rr-wfm / MSBuild.Sdk.SqlProj

An MSBuild SDK that provides similar functionality to SQL Server Data Tools (.sqlproj) projects
MIT License
380 stars 42 forks source link

Error while including dacpac from a nuget package #573

Closed bheemvennapureddy closed 3 days ago

bheemvennapureddy commented 5 days ago

Proj file attached - Couldn't add in the because of the size in the description

sqlproj.log

bheemvennapureddy commented 5 days ago

Error seen below

 Business git:(migrate_to_dacpac) ✗ dotnet build src/WinchkDatabase/WinchkDatabase.sqlproj  
MSBuild version 17.8.5+b5265ef37 for .NET
  Determining projects to restore...
  Restored /Users/bheemvennapureddy/github/Business/src/WinchkDatabase/WinchkDatabase.sqlproj (in 2.44 sec).
  1 of 2 projects are up-to-date for restore.
  Using target framework net8.0 to run DacpacTool
  Using package name CAPSHistoryDatabase and version 1.0.0
  Using SQL Server version Sql150
  Adding /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/dbo/Tables/CapsCCTXRef.sql to the model
  Adding /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/dbo/Tables/CapsHold.sql to the model
  Adding /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/dbo/Tables/CapsRun.sql to the model
  Adding /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/dbo/Tables/CapsRunStatus.sql to the model
  Adding /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/dbo/Tables/CapsSkipReason.sql to the model
  Adding /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/dbo/Tables/DbPurgeTables.sql to the model
  Adding /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/dbo/Tables/Global.sql to the model
  Adding /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/Scripts/Post-Deployment/2427.0-PostDeployment.sql to the model
  Adding /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/Scripts/Pre-Deployment/2427.0-PreDeployment.sql to the model
  Deleting existing file /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/obj/Debug/netstandard2.0/CAPSHistoryDatabase.dacpac
  Writing model to /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/obj/Debug/netstandard2.0/CAPSHistoryDatabase.dacpac
  Adding /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/Scripts/Script.PreDeployment.sql to package
  Adding /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/Scripts/Script.PostDeployment.sql to package
  Generating create script CAPSHistoryDatabase_Create.sql
  CAPSHistoryDatabase -> /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/bin/Debug/netstandard2.0/CAPSHistoryDatabase.dacpac
  Using target framework net8.0 to run DacpacTool
  Using package name WinchkDatabase and version 2427.0.32767
  Using SQL Server version Sql150
  Adding reference to /Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/bin/Debug/netstandard2.0/CAPSHistoryDatabase.dacpac with external parts dbl=|dbv=CAPSHistoryDatabase|srv= and SuppressMissingDependenciesErrors False
  Adding SqlCmd variable AccountingDatabase with default value AccountingDatabase
  Adding SqlCmd variable AppLogDatabase with default value AppLogDatabase
  Adding SqlCmd variable BankCard with default value BankCard
  Adding SqlCmd variable CAPSHistoryDatabase with default value CAPSHistory
  Adding SqlCmd variable CustomerScoringDatabase with default value CustomerScoring
  Adding SqlCmd variable InternalAuditDatabase with default value InternalAudit
  Adding SqlCmd variable SqlReportServer with default value SQLRPT
  Adding /Users/bheemvennapureddy/.nuget/packages/database.internalaudit/2427.0.1/contentFiles/any/any/databases/InternalAuditDatabase.dacpac to the model
  Unhandled exception. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
   ---> Microsoft.SqlServer.Dac.Model.DacModelException: Add or update objects failed due to the following errors: 
EXEC : error SQL46010: Incorrect syntax near ]. [/Users/bheemvennapureddy/github/Business/src/WinchkDatabase/WinchkDatabase.sqlproj]

     at Microsoft.SqlServer.Dac.Model.SqlSchemaModelObjectService.ThrowIfModelErrorsExist(String errorMessage)
     at Microsoft.SqlServer.Dac.Model.SqlSchemaModelObjectService.DoAddOrUpdateObjects(String inputScript, String sourceName, TSqlObjectOptions options)
     at Microsoft.SqlServer.Dac.Model.SqlSchemaModelObjectService.AddOrUpdateObjects(String inputScript, String sourceName, TSqlObjectOptions options)
     at Microsoft.SqlServer.Dac.Model.TSqlModel.AddOrUpdateObjects(String inputScript, String sourceName, TSqlObjectOptions options)
     at MSBuild.Sdk.SqlProj.DacpacTool.PackageBuilder.AddInputFile(FileInfo inputFile) in /home/runner/work/MSBuild.Sdk.SqlProj/MSBuild.Sdk.SqlProj/src/DacpacTool/PackageBuilder.cs:line 80
     at MSBuild.Sdk.SqlProj.DacpacTool.Program.BuildDacpac(BuildOptions options) in /home/runner/work/MSBuild.Sdk.SqlProj/MSBuild.Sdk.SqlProj/src/DacpacTool/Program.cs:line 145
     at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
     at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
     --- End of inner exception stack trace ---
     at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
     at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
     at System.Delegate.DynamicInvokeImpl(Object[] args)
     at System.CommandLine.NamingConventionBinder.ModelBindingCommandHandler.InvokeAsync(InvocationContext context)
     at System.CommandLine.Parsing.ParseResultExtensions.InvokeAsync(ParseResult parseResult, IConsole console)
     at MSBuild.Sdk.SqlProj.DacpacTool.Program.Main(String[] args) in /home/runner/work/MSBuild.Sdk.SqlProj/MSBuild.Sdk.SqlProj/src/DacpacTool/Program.cs:line 80
     at MSBuild.Sdk.SqlProj.DacpacTool.Program.<Main>(String[] args)
  /var/folders/bt/667kwdxd56ngvh9zzmcnz2fdg8rryb/T/MSBuildTempbheemvennapureddy/tmp2be2e53cf23a4ccc8d27ad9371ddaf34.exec.cmd: line 2: 13813 Abort trap: 6           dotnet "/Users/bheemvennapureddy/.nuget/packages/msbuild.sdk.sqlproj/2.7.2/Sdk/../tools/net8.0/DacpacTool.dll" build -o "obj/Debug/netstandard2.0/WinchkDatabase.dacpac" -n "WinchkDatabase" -v "2427.0.32767" -sv Sql150 -i "obj/Debug/netstandard2.0/WinchkDatabase.InputFiles.txt" -r "/Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/bin/Debug/netstandard2.0/CAPSHistoryDatabase.dacpac;dbl=|dbv=CAPSHistoryDatabase|srv=;False" -sc AccountingDatabase="AccountingDatabase" -sc AppLogDatabase="AppLogDatabase" -sc BankCard="BankCard" -sc CAPSHistoryDatabase="CAPSHistory" -sc CustomerScoringDatabase="CustomerScoring" -sc InternalAuditDatabase="InternalAudit" -sc SqlReportServer="SQLRPT" -dp IncludeCompositeObjects=True --predeploy Scripts/Script.PreDeployment.sql --postdeploy Scripts/Script.PostDeployment.sql --refactorlog WinchkDatabase.refactorlog -spw "71558,71502"
/Users/bheemvennapureddy/.nuget/packages/msbuild.sdk.sqlproj/2.7.2/Sdk/Sdk.targets(244,5): error MSB3073: The command "dotnet "/Users/bheemvennapureddy/.nuget/packages/msbuild.sdk.sqlproj/2.7.2/Sdk/../tools/net8.0/DacpacTool.dll" build -o "obj/Debug/netstandard2.0/WinchkDatabase.dacpac" -n "WinchkDatabase" -v "2427.0.32767" -sv Sql150 -i "obj/Debug/netstandard2.0/WinchkDatabase.InputFiles.txt" -r "/Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/bin/Debug/netstandard2.0/CAPSHistoryDatabase.dacpac;dbl=|dbv=CAPSHistoryDatabase|srv=;False" -sc AccountingDatabase="AccountingDatabase" -sc AppLogDatabase="AppLogDatabase" -sc BankCard="BankCard" -sc CAPSHistoryDatabase="CAPSHistory" -sc CustomerScoringDatabase="CustomerScoring" -sc InternalAuditDatabase="InternalAudit" -sc SqlReportServer="SQLRPT"  -dp IncludeCompositeObjects=True --predeploy Scripts/Script.PreDeployment.sql --postdeploy Scripts/Script.PostDeployment.sql --refactorlog WinchkDatabase.refactorlog  -spw "71558,71502"      " exited with code 134. [/Users/bheemvennapureddy/github/Business/src/WinchkDatabase/WinchkDatabase.sqlproj]

Build FAILED.

EXEC : error SQL46010: Incorrect syntax near ]. [/Users/bheemvennapureddy/github/Business/src/WinchkDatabase/WinchkDatabase.sqlproj]
/Users/bheemvennapureddy/.nuget/packages/msbuild.sdk.sqlproj/2.7.2/Sdk/Sdk.targets(244,5): error MSB3073: The command "dotnet "/Users/bheemvennapureddy/.nuget/packages/msbuild.sdk.sqlproj/2.7.2/Sdk/../tools/net8.0/DacpacTool.dll" build -o "obj/Debug/netstandard2.0/WinchkDatabase.dacpac" -n "WinchkDatabase" -v "2427.0.32767" -sv Sql150 -i "obj/Debug/netstandard2.0/WinchkDatabase.InputFiles.txt" -r "/Users/bheemvennapureddy/github/Business/src/CAPSHistoryDatabase/bin/Debug/netstandard2.0/CAPSHistoryDatabase.dacpac;dbl=|dbv=CAPSHistoryDatabase|srv=;False" -sc AccountingDatabase="AccountingDatabase" -sc AppLogDatabase="AppLogDatabase" -sc BankCard="BankCard" -sc CAPSHistoryDatabase="CAPSHistory" -sc CustomerScoringDatabase="CustomerScoring" -sc InternalAuditDatabase="InternalAudit" -sc SqlReportServer="SQLRPT"  -dp IncludeCompositeObjects=True --predeploy Scripts/Script.PreDeployment.sql --postdeploy Scripts/Script.PostDeployment.sql --refactorlog WinchkDatabase.refactorlog  -spw "71558,71502"      " exited with code 134. [/Users/bheemvennapureddy/github/Business/src/WinchkDatabase/WinchkDatabase.sqlproj]
    0 Warning(s)
    2 Error(s)

Time Elapsed 00:00:10.87
➜  Business git:(migrate_to_dacpac) ✗ 
ErikEJ commented 5 days ago

error SQL46010: Incorrect syntax near ].

You project file does not look like a proper MSBuild.SDK.SqlProj file, but rather an old .sqlproj file.

In any case, if you want help, you must provide a full runnable repro.

bheemvennapureddy commented 3 days ago

Can we use a SQL proj reference for the same repo if there is another project with in the same repo, or should it be always a nuget package reference ?

ErikEJ commented 3 days ago

You can use both Nuget and package references as described in the readme. But not to an .sqlproj project.