rr-wfm / MSBuild.Sdk.SqlProj

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

Error MSB4018: System.NullReferenceException for an OpenJson operation #529

Closed madjar4-cssmb closed 3 months ago

madjar4-cssmb commented 3 months ago

General info

Platform: Windows Sql project created with Azure Data Studio.

Problem & context

The build fails for a realtively basic OpenJson example bellow. I was creating a sqlrpoj from an existing database and the exact code (short of the identifiers) inside of a much larger stored procedure was causing the build of the sqlproj to fail. I extracted that code to a new sqlproj and the same issue persists.

I'm not sure if either of the desired outputs bellow are expected for the given reproduction steps. If so, I would like to know how to prevent the build error from happening with a workaround. Otherwise, I suppose this is a bug report that prevents me from using the sdk.

Steps to replicate

  1. Create a new Sql Project with Azure Data Studio.
  2. Create a stored procedure in dbo/StoredProcedures.
  3. Use the following parameters and body for the stored procedure:
    CREATE PROCEDURE [dbo].[TestSP]
    @someJson Nvarchar(max)
    AS
    DECLARE @someId INT = (
      SELECT Query.SomeId FROM
      (
        SELECT * FROM OPENJSON(@someJson)
        WITH( 
          ArrayItems nvarchar(max) '$.SomeArray' as json
          )
        CROSS APPLY OPENJSON(ArrayItems)
        WITH(               
          SomeId INT 'strict $.IdOfSorts'
          ,NoOfThings INT 'strict $.NoOfThings'             
        ) Je                
        WHERE Je.NoOfThings = 0
      )Query    
    )
    RETURN 0
  4. Build either with the Azure Data Studio or with dotnet build (with or without /p:NetCoreBuild=true).
  5. Result: the build fails.

Error outputs

Applogies in advance, some of the logs are in french due to my system settings. Tested in the Azure Data Studio or with dotnet build. The logs are equivalent in both outputs.

0.1.12-preview

    [ Build ]
    > "C:\\Program Files\\dotnet\\dotnet.exe"  build "c:\\SomePath\\OpenJsonTest\\OpenJsonTest.sqlproj" /p:NetCoreBuild=true /p:SystemDacpacsLocation="c:\\Users\\USER\\.azuredatastudio\\extensions\\microsoft.sql-database-projects-1.4.2\\BuildDirectory"
    stdout: Version MSBuild 17.8.3+195e7f5a3 pour .NET
    stdout: 
    stdout:   Identification des projets à restaurer...
    stdout: 
    stdout:   Restauration effectuée de c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj (en 152 ms).
    stdout: 
    stdout:   Creating a model to represent the project...
    stdout: 
    stdout:   Loading project references...
    stdout: 
    stdout:   Loading project files...
    stdout: 
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018: Échec inattendu de la tâche "SqlBuildTask". [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018: System.NullReferenceException->Microsoft.Build.Framework.BuildException.GenericBuildTransferredException: Object reference not set to an instance of an object. [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlElementDescriptor.GetHashCode(SqlElementDescriptor obj) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlPotentialElementDescriptor.GetHashCode(SqlPotentialElementDescriptor obj) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlPotentialElementDescriptorComparer.GetHashCode(SqlPotentialElementDescriptor obj) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at System.Collections.Generic.HashSet`1.AddIfNotPresent(T value, Int32& location) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at System.Collections.Generic.HashSet`1.Add(T item) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlAmbiguousRelationshipRecyclerKey.CreateSqlAmbiguousRelationshipRecyclerKeyInstance(IModelElement modelElement, ModelRelationshipClass relationshipClass, IList`1 descriptors, IEnumerable`1 annotationDescriptors, ModelCollationComparer comparer, ModelSchema modelSchema) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlModelBuilderSchemaAnalyzer.IdentifiedAmbiguousRelationship(TSqlFragment fragment, SqlElementDescriptor leftHandSide, ModelRelationshipClass relationshipClass, IEnumerable`1 ambigousRightHandSide, IEnumerable`1 annotationDescriptors) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.DecoratableSchemaAnalyzer.IdentifiedAmbiguousRelationship(TSqlFragment fragment, SqlElementDescriptor leftHandSide, ModelRelationshipClass relationshipClass, IEnumerable`1 ambigousRightHandSide, IEnumerable`1 annotations) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SchemaAnalyzers.DependencyTracker.VisitAmbiguousFragment(TSqlFragment fragment, IEnumerable`1 possibilities) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.SqlInterpretationVisitor.VisitResolvedDescriptor(SqlSchemaAnalyzer analyzer, ResolvedDescriptor descriptor, Boolean createRelationship) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.SqlInterpretationVisitor.VisitResolvedDescriptor(ResolvedDescriptor descriptor, Boolean createRelationship) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.SelectColumnInterpretationVisitor90.HandleSelectColumnColumn(SelectElement node, String alias, IList`1 identifiers, ColumnType columnType) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.SelectColumnInterpretationVisitor90.ExplicitVisit(SelectStarExpression node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.SelectStarExpression.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlInterpretationUtils.InterpretSelectColumn(SelectElement node, SqlSchemaAnalyzer analyzer, SqlInterpretationContext context, SqlColumnResolver columnResolver, Boolean enabledDeleted, Boolean enableInserted, List`1 errors) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlInterpretationUtils.InterpretSelectColumn(SelectElement node, SqlSchemaAnalyzer analyzer, SqlInterpretationContext context, SqlColumnResolver columnResolver, List`1 errors) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.QuerySpecificationInterpretationVisitor90.ExplicitVisit(SelectStarExpression node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.SelectStarExpression.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.QuerySpecificationInterpretationVisitor90.ExplicitVisit(QuerySpecification node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.QuerySpecificationInterpretationVisitor110.ExplicitVisit(QuerySpecification node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.QuerySpecification.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.QueryExpressionInterpretationVisitor.InterpretQuery(QuerySpecification node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.QueryExpressionInterpretationVisitor.ExplicitVisit(QuerySpecification node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.QuerySpecification.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.QueryDerivedTable.AcceptChildren(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.TSqlFragmentVisitor.ExplicitVisit(QueryDerivedTable node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.QueryDerivedTable.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.TableSourceInterpretationVisitor90.ExplicitVisit(QueryDerivedTable node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.QueryDerivedTable.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlInterpretationUtils.InterpretTableSource(TableReference node, SqlSchemaAnalyzer analyzer, SqlInterpretationContext context, SqlColumnResolver columnResolver, List`1 errors) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlInterpretationUtils.InterpretFromClause(FromClause fromClause, SqlSchemaAnalyzer analyzer, SqlInterpretationContext context, SqlColumnResolver columnResolver, List`1 errors) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.QuerySpecificationInterpretationVisitor90.ExplicitVisit(QuerySpecification node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.QuerySpecificationInterpretationVisitor110.ExplicitVisit(QuerySpecification node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.QuerySpecification.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.QueryExpressionInterpretationVisitor.InterpretQuery(QuerySpecification node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.QueryExpressionInterpretationVisitor.ExplicitVisit(QuerySpecification node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.QuerySpecification.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.QueryExpressionInterpretationVisitor.ExplicitVisit(ScalarSubquery node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.ScalarSubquery.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.DmlCommonPhrasesInterpretationVisitor90.ExplicitVisit(ScalarSubquery node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.ScalarSubquery.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlInterpretationUtils.InterpretDmlCommonPhrase(TSqlFragment node, SqlSchemaAnalyzer analyzer, SqlInterpretationContext context, SqlColumnResolver columnResolver, List`1 errors) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlInterpretationUtils.InterpretDmlCommonPhrase(TSqlFragment node, SqlSchemaAnalyzer analyzer, SqlInterpretationContext context, List`1 errors) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.DynamicTableInterpretationVisitor.Visit(DeclareVariableElement node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.TSqlFragmentVisitor.ExplicitVisit(DeclareVariableElement node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.DeclareVariableElement.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.DeclareVariableStatement.AcceptChildren(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.DynamicTableInterpretationVisitor.ExplicitVisit(DeclareVariableStatement node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.DeclareVariableStatement.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.DynamicTableInterpretationVisitor.Process(TSqlFragment node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.DynamicTableInterpretationVisitor.Process(TSqlFragment node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.SubroutineInterpretationVisitor.ExplicitVisit(StatementList node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.StatementList.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.CreateProcedureStatement.AcceptChildren(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.TSqlFragmentVisitor.ExplicitVisit(CreateProcedureStatement node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.ProcedureStatementInterpretationVisitor.ExplicitVisit(CreateProcedureStatement node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.CreateProcedureStatement.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.SqlInterpretationVisitor.InterpretWithoutBeginEndDdl(TSqlFragment node, SqlInterpretationVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.SqlInterpretationVisitor.InterpretDdlWithNewVisitor(TSqlFragment node, SqlInterpretationVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.InterpretationVisitors.SqlInterpretationVisitor90.ExplicitVisit(CreateProcedureStatement node) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.SqlServer.TransactSql.ScriptDom.CreateProcedureStatement.Accept(TSqlFragmentVisitor visitor) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.Sql150Interpreter.InterpretImpl(TSqlFragment fragment, SqlSchemaAnalyzer analyzer, IList`1& errors) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlInterpreter.Interpret(TSqlStatement statement, SqlSchemaAnalyzer analyzer, IList`1& errors) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlModelBuilder.InterpretTSqlScript(String filename, TSqlScript script, NecessaryOptions parsedMetadata, IList`1 parseErrors) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlModelBuilder.ParseAndInterpret(String filename, TextReader objectsSource, IDictionary`2 metadata) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlModelBuilder.AddObjects(String cacheIdentifier, TextReader script, IDictionary`2 metadata) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.SchemaModel.ModelBuilder.AddOrUpdateObjects(ScriptHandle script) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.Build.ModelBuilderJob.BatchLoadOrUpdate(ModelBuilder mb, IList`1 scripts, Int32 index, Int32 count, List`1& processedCacheIds, Exception& handledEx) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Sql.Build.SqlTaskHost.Add(IList`1 sourceScripts) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Tasks.Sql.TaskHostLoader.LoadSourceFiles(TaskLoggingHelper providedLogger, SqlTaskHost host, ErrorManager errors) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Tasks.Sql.TaskHostLoader.LoadImpl(ITaskHost providedHost, TaskLoggingHelper providedLogger) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Tasks.Sql.TaskHostLoader.Load(ITaskHost providedHost, TaskLoggingHelper providedLogger) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Tasks.Sql.SqlBuildTask.ExecuteLoadTaskHostStep() [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Tasks.Sql.SqlBuildTask.ExecuteStep(Func`1 step) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Tasks.Sql.SqlBuildTask.ExecuteTask() [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Data.Tools.Schema.Tasks.Sql.DataTask.Execute() [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.12-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(542,5): error MSB4018:    at Microsoft.Build.CommandLine.OutOfProcTaskAppDomainWrapperBase.InstantiateAndExecuteTask(IBuildEngine oopTaskHostNode, LoadedType taskType, String taskName, String taskLocation, String taskFile, Int32 taskLine, Int32 taskColumn, IDictionary`2 taskParams) [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout:     0 Avertissement(s)
    stdout:     1 Erreur(s)
    stdout: 
    stdout: 
    stdout: Temps écoulé 00:00:01.33
    stdout: 
    >>> "C:\\Program Files\\dotnet\\dotnet.exe"  build "c:\\SomePath\\OpenJsonTest\\OpenJsonTest.sqlproj" /p:NetCoreBuild=true /p:SystemDacpacsLocation="c:\\Users\\USER\\.azuredatastudio\\extensions\\microsoft.sql-database-projects-1.4.2\\BuildDirectory"    … exited with code: 1
    >>> "C:\\Program Files\\dotnet\\dotnet.exe"  build "c:\\SomePath\\OpenJsonTest\\OpenJsonTest.sqlproj" /p:NetCoreBuild=true /p:SystemDacpacsLocation="c:\\Users\\USER\\.azuredatastudio\\extensions\\microsoft.sql-database-projects-1.4.2\\BuildDirectory"   … errored out: Process exited with code 1

Error log in 0.1.15-preview

Not sure how to update properly. I simply updated the version to in the attribute Version of this tag <Sdk Name="Microsoft.Build.Sql" ... /> in the sqlproj file.

    [ Build ]
    > "C:\\Program Files\\dotnet\\dotnet.exe"  build "c:\\SomePath\\OpenJsonTest\\OpenJsonTest.sqlproj" /p:NetCoreBuild=true /p:SystemDacpacsLocation="c:\\Users\\USER\\.azuredatastudio\\extensions\\microsoft.sql-database-projects-1.4.2\\BuildDirectory"
    stdout: Version MSBuild 17.8.3+195e7f5a3 pour .NET
    stdout: 
    stdout:   Identification des projets à restaurer...
    stdout: 
    stdout:   Tous les projets sont à jour pour la restauration.
    stdout: 
    stdout:   Creating a model to represent the project...
    stdout: 
    stdout:   Loading project references...
    stdout: 
    stdout:   Loading project files...
    stdout: 
    stdout: C:\REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.15-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(544,5): warning : Exception has been thrown by the target of an invocation. [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: 
    stdout: C:\REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.15-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(544,5): error MSB4181: la tâche "SqlBuildTask" a retourné false mais n'a pas journalisé d'erreur. [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: 
    stdout: 
    stdout: 
    stdout: ÉCHEC de la build.
    stdout: 
    stdout: C:\REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.15-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(544,5): warning : Exception has been thrown by the target of an invocation. [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout: C:\REPLACED_USER_PATH\.nuget\packages\microsoft.build.sql\0.1.15-preview\tools\netstandard2.1\Microsoft.Data.Tools.Schema.SqlTasks.targets(544,5): error MSB4181: la tâche "SqlBuildTask" a retourné false mais n'a pas journalisé d'erreur. [c:\SomePath\OpenJsonTest\OpenJsonTest.sqlproj]
    stdout:     1 Avertissement(s)
    stdout:     1 Erreur(s)
    stdout: 
    stdout: 
    stdout: Temps écoulé 00:00:01.31
    stdout: 
    >>> "C:\\Program Files\\dotnet\\dotnet.exe"  build "c:\\SomePath\\OpenJsonTest\\OpenJsonTest.sqlproj" /p:NetCoreBuild=true /p:SystemDacpacsLocation="c:\\Users\\USER\\.azuredatastudio\\extensions\\microsoft.sql-database-projects-1.4.2\\BuildDirectory"    … exited with code: 1
    >>> "C:\\Program Files\\dotnet\\dotnet.exe"  build "c:\\SomePath\\OpenJsonTest\\OpenJsonTest.sqlproj" /p:NetCoreBuild=true /p:SystemDacpacsLocation="c:\\Users\\USER\\.azuredatastudio\\extensions\\microsoft.sql-database-projects-1.4.2\\BuildDirectory"   … errored out: Process exited with code 1

Note for the behavior with Visual Studio 2022 and classic sqlproj

Don't know if this will help, but before trying the package reference approach documented above, I was importing the data base with SSDT in Visual Studio 2022. Pretty much the same behavior was happening. Visual Studio was opened, got a NullReferenceException, restarted and went back to the error. A nice loop.

ErikEJ commented 3 months ago

@madjar4-cssmb You are in the wrong repo (and you use an old version of the SDK, I think latest is 0.1.15-preview. The correct place is: https://github.com/microsoft/DacFx

madjar4-cssmb commented 3 months ago

Thanks @ErikEJ! Will move it to the right repo. (I was using 0.1.15 as well, the log is in the issue. It just hides the error from what I see)