msbuild忽略ValidateCasingOnIdentifiers用SSDT sqlproj生成sql

时间:2019-02-17 16:47:18

标签: msbuild sql-server-data-tools 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 Studio\2017\Community\MSBuild\15.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命令中,但这也不起作用。

我确认当我在Visual Studio的项目属性GUI中单击项目设置中的复选框时,我的sqlproj已插入行<ValidateCasingOnIdentifiers>False</ValidateCasingOnIdentifiers>

1 个答案:

答案 0 :(得分:1)

通过在sqlproj文件中的<ValidateCasingOnIdentifiers>False</ValidateCasingOnIdentifiers>的正下方添加一行来使它起作用:

<SuppressTSqlWarnings>71558</SuppressTSqlWarnings>

本文使我发现:lcov source code