msbuild 忽略 ValidateCasingOnIdentifiers 生成 sql with SSDT sqlproj

msbuild ignores ValidateCasingOnIdentifiers generating sql with SSDT sqlproj

我将 sqlproj 设置为不验证标识符的大小写,但是当我使用 msbuild 生成 sql 脚本时,它似乎会忽略它并显示 warning SQL71558: The object reference [dbo].[table].[deleted] differs only by case from the object definition [dbo].[table].[Deleted]. 之类的警告。

请注意,在 visual studio 中构建时,警告不会像预期的那样显示。

这是我在 cmdline 运行 的情况:

"C:\Program Files (x86)\Microsoft Visual Studio17\Community\MSBuild.0\Bin\msbuild.exe" /p:Configuration=Release /p:Platform=AnyCpu /p:TargetDatabaseName=dbName /p:TargetConnectionString="Data Source=.\SQLExpress;Initial Catalog=dbName;Integrated Security=True" /p:DeployScriptFileName=publish.sql /p:UpdateDatabase=False /p:CommentOutSetVarDeclarations=True /t:Rebuild,Deploy "c:\dev\project\Sql.sqlproj"

我也尝试将 /p:ValidateCasingOnIdentifiers=False 添加到 msbuild 命令,但那也没有用。

我确认我的 sqlproj 有行 <ValidateCasingOnIdentifiers>False</ValidateCasingOnIdentifiers>,当我在 visual studio 的项目属性 GUI 中单击项目设置中的复选框时,它被放在那里。

我通过在我的 sqlproj 文件中添加一行来让它工作,就在我 <ValidateCasingOnIdentifiers>False</ValidateCasingOnIdentifiers>:

的位置下面

<SuppressTSqlWarnings>71558</SuppressTSqlWarnings>

这篇文章让我发现:https://developercommunity.visualstudio.com/content/problem/19394/unable-to-suppress-build-warnings-for-sql-db-proje.html