From 9bd5c0b3fab25697e076b24ab210f76f2460b679 Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Tue, 24 Sep 2024 08:32:27 +0200 Subject: [PATCH 01/16] Support NuGet based code analyzers --- src/DacpacTool/BuildOptions.cs | 1 + src/DacpacTool/DacpacTool.csproj | 6 +++--- src/DacpacTool/PackageAnalyzer.cs | 9 +++++++-- src/DacpacTool/Program.cs | 3 ++- src/MSBuild.Sdk.SqlProj/Sdk/Sdk.targets | 3 ++- test/DacpacTool.Tests/PackageAnalyzerTests.cs | 13 +++++++------ .../Rules/SqlServer.Dac.dll | Bin 50176 -> 0 bytes .../Rules/SqlServer.Rules.dll | Bin 229376 -> 0 bytes .../TestProjectWithAnalyzers.csproj | 9 ++++----- 9 files changed, 26 insertions(+), 18 deletions(-) delete mode 100644 test/TestProjectWithAnalyzers/Rules/SqlServer.Dac.dll delete mode 100644 test/TestProjectWithAnalyzers/Rules/SqlServer.Rules.dll diff --git a/src/DacpacTool/BuildOptions.cs b/src/DacpacTool/BuildOptions.cs index 3f8b488a..c6d67dec 100644 --- a/src/DacpacTool/BuildOptions.cs +++ b/src/DacpacTool/BuildOptions.cs @@ -22,6 +22,7 @@ public class BuildOptions : BaseOptions public bool RunCodeAnalysis { get; set; } public string CodeAnalysisRules { get; set; } + public FileInfo[] CodeAnalysisAssembly { get; set; } public bool WarnAsError { get; set; } public string SuppressWarnings { get; set; } public FileInfo SuppressWarningsListFile { get; set; } diff --git a/src/DacpacTool/DacpacTool.csproj b/src/DacpacTool/DacpacTool.csproj index ca2cf296..9364f66d 100644 --- a/src/DacpacTool/DacpacTool.csproj +++ b/src/DacpacTool/DacpacTool.csproj @@ -17,10 +17,10 @@ - - + + - + diff --git a/src/DacpacTool/PackageAnalyzer.cs b/src/DacpacTool/PackageAnalyzer.cs index 8fb374d6..920fa04a 100644 --- a/src/DacpacTool/PackageAnalyzer.cs +++ b/src/DacpacTool/PackageAnalyzer.cs @@ -39,7 +39,7 @@ public void AddRulesFile(FileInfo inputFile) } } - public void Analyze(TSqlModel model, FileInfo outputFile) + public void Analyze(TSqlModel model, FileInfo outputFile, FileInfo[] analyzers) { ArgumentNullException.ThrowIfNull(model); ArgumentNullException.ThrowIfNull(outputFile); @@ -48,7 +48,12 @@ public void Analyze(TSqlModel model, FileInfo outputFile) try { var factory = new CodeAnalysisServiceFactory(); - var service = factory.CreateAnalysisService(model); + var settings = new CodeAnalysisServiceSettings + { + AssemblyLookupPath = string.Join(';', analyzers.Select(a => a.DirectoryName)), + }; + + var service = factory.CreateAnalysisService(model, settings); if (_ignoredRules.Count > 0 || _ignoredRuleSets.Count > 0) { diff --git a/src/DacpacTool/Program.cs b/src/DacpacTool/Program.cs index 29f18c05..ab63acfb 100644 --- a/src/DacpacTool/Program.cs +++ b/src/DacpacTool/Program.cs @@ -33,6 +33,7 @@ static async Task Main(string[] args) new Option(new string[] { "--runcodeanalysis", "-an" }, "Run static code analysis"), new Option(new string[] { "--codeanalysisrules", "-ar" }, "List of rules to suppress in format '-Microsoft.Rules.Data.SR0001;-Microsoft.Rules.Data.SR0008'"), + new Option(new string[] { "--codeanalysisassembly", "-aa" }, "Custom code analysis rule assembly to use"), new Option(new string[] { "--warnaserror" }, "Treat T-SQL Warnings As Errors"), new Option(new string[] { "--generatecreatescript", "-gcs" }, "Generate create script for package"), @@ -212,7 +213,7 @@ private static int BuildDacpac(BuildOptions options) analyzer.AddRulesFile(inputFile); } - analyzer.Analyze(packageBuilder.Model, options.Output); + analyzer.Analyze(packageBuilder.Model, options.Output, options.CodeAnalysisAssembly ?? Array.Empty()); } return 0; diff --git a/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.targets b/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.targets index 4598709d..0a2170a4 100644 --- a/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.targets +++ b/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.targets @@ -229,6 +229,7 @@ @(PostDeploy->'--postdeploy %(Identity)', ' ') @(RefactorLog->'--refactorlog %(Identity)', ' ') -an + @(Analyzer->'-aa "%(Identity)"', ' ') -ar "$(CodeAnalysisRules)" --debug --warnaserror @@ -236,7 +237,7 @@ -tdn "$(TargetDatabaseName)" -spw "$(SuppressTSqlWarnings)" -spl "$(IntermediateOutputPath)$(MSBuildProjectName).WarningsSuppression.txt" - dotnet "$(DacpacToolExe)" build $(OutputPathArgument) $(MetadataArguments) $(SqlServerVersionArgument) $(InputFileArguments) $(ReferenceArguments) $(SqlCmdVariableArguments) $(BuildPropertyArguments) $(DeployPropertyArguments) $(PreDeploymentScriptArgument) $(PostDeploymentScriptArgument) $(RefactorLogScriptArgument) $(TreatTSqlWarningsAsErrorsArgument) $(SuppressTSqlWarningsArgument) $(WarningsSuppressionListArgument) $(DebugArgument) $(GenerateCreateScriptArgument) $(TargetDatabaseNameArgument) $(RunSqlCodeAnalysisArgument) $(CodeAnalysisRulesArgument) + dotnet "$(DacpacToolExe)" build $(OutputPathArgument) $(MetadataArguments) $(SqlServerVersionArgument) $(InputFileArguments) $(ReferenceArguments) $(SqlCmdVariableArguments) $(BuildPropertyArguments) $(DeployPropertyArguments) $(PreDeploymentScriptArgument) $(PostDeploymentScriptArgument) $(RefactorLogScriptArgument) $(TreatTSqlWarningsAsErrorsArgument) $(SuppressTSqlWarningsArgument) $(WarningsSuppressionListArgument) $(DebugArgument) $(GenerateCreateScriptArgument) $(TargetDatabaseNameArgument) $(RunSqlCodeAnalysisArgument) $(CodeAnalysisRulesArgument) $(CodeAnalysisAssemblyLookupPathsArgument) diff --git a/test/DacpacTool.Tests/PackageAnalyzerTests.cs b/test/DacpacTool.Tests/PackageAnalyzerTests.cs index 7d9a9d87..b6e102b5 100644 --- a/test/DacpacTool.Tests/PackageAnalyzerTests.cs +++ b/test/DacpacTool.Tests/PackageAnalyzerTests.cs @@ -1,4 +1,5 @@ -using System.IO; +using System; +using System.IO; using System.Linq; using Microsoft.SqlServer.Dac.Model; using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -21,7 +22,7 @@ public void RunsAnalyzer() var packageAnalyzer = new PackageAnalyzer(_console, null); // Act - packageAnalyzer.Analyze(result.model, result.fileInfo); + packageAnalyzer.Analyze(result.model, result.fileInfo, Array.Empty()); // Assert testConsole.Lines.Count.ShouldBe(15); @@ -42,7 +43,7 @@ public void RunsAnalyzerWithSupressions() var packageAnalyzer = new PackageAnalyzer(_console, "-SqlServer.Rules.SRD0006;-Smells.SML005;-SqlServer.Rules.SRD999;+!SqlServer.Rules.SRN0002;"); // Act - packageAnalyzer.Analyze(result.model, result.fileInfo); + packageAnalyzer.Analyze(result.model, result.fileInfo, Array.Empty()); // Assert testConsole.Lines.Count.ShouldBe(13); @@ -64,7 +65,7 @@ public void RunsAnalyzerWithWildcardSupressions() var packageAnalyzer = new PackageAnalyzer(_console, "-SqlServer.Rules.SRD*"); // Act - packageAnalyzer.Analyze(result.model, result.fileInfo); + packageAnalyzer.Analyze(result.model, result.fileInfo, Array.Empty()); // Assert testConsole.Lines.Count.ShouldBe(13); @@ -84,7 +85,7 @@ public void RunsAnalyzerWithWarningsAsErrors() var packageAnalyzer = new PackageAnalyzer(_console, "+!SqlServer.Rules.SRD0006"); // Act - packageAnalyzer.Analyze(result.model, result.fileInfo); + packageAnalyzer.Analyze(result.model, result.fileInfo, Array.Empty()); // Assert testConsole.Lines.Count.ShouldBe(15); @@ -105,7 +106,7 @@ public void RunsAnalyzerWithWarningsAsErrorsUsingWildcard() var packageAnalyzer = new PackageAnalyzer(_console, "+!SqlServer.Rules.SRD*"); // Act - packageAnalyzer.Analyze(result.model, result.fileInfo); + packageAnalyzer.Analyze(result.model, result.fileInfo, Array.Empty()); // Assert testConsole.Lines.Count.ShouldBe(15); diff --git a/test/TestProjectWithAnalyzers/Rules/SqlServer.Dac.dll b/test/TestProjectWithAnalyzers/Rules/SqlServer.Dac.dll deleted file mode 100644 index 6ea8cd1f7080179c35fe22446142e38b2a4b4eea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50176 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 diff --git a/test/TestProjectWithAnalyzers/Rules/SqlServer.Rules.dll b/test/TestProjectWithAnalyzers/Rules/SqlServer.Rules.dll deleted file mode 100644 index e3b9fab35960bd47373c14a5c4274b0e347cb9a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229376 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%0DK$Nf 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
OAh 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 diff --git a/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj b/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj index 7d49d0aa..b90b018e 100644 --- a/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj +++ b/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj @@ -2,16 +2,15 @@ - netstandard2.0 + netstandard2.1 Sql150 True -SqlServer.Rules.SRD0006;-Smells.*;+!SqlServer.Rules.SRN0002 - - - - + + + \ No newline at end of file From 005fa9360e6ff060913e5fb253b276f55c791246 Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Tue, 24 Sep 2024 10:08:20 +0200 Subject: [PATCH 02/16] Move 3rd party analyzser packages to template --- src/DacpacTool/DacpacTool.csproj | 4 ---- .../templates/sqlproj/sqlproj.csproj | 6 ++++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/DacpacTool/DacpacTool.csproj b/src/DacpacTool/DacpacTool.csproj index 9364f66d..40d77225 100644 --- a/src/DacpacTool/DacpacTool.csproj +++ b/src/DacpacTool/DacpacTool.csproj @@ -16,10 +16,6 @@ - - - - diff --git a/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj b/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj index 18b7c0ab..34d46ee9 100644 --- a/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj +++ b/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj @@ -6,6 +6,12 @@ + + + + + + From 319ad4a75525506c7adb3f5dab817068051b2174 Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Tue, 24 Sep 2024 10:32:18 +0200 Subject: [PATCH 03/16] fix tests --- test/DacpacTool.Tests/DacpacTool.Tests.csproj | 12 +++++++++ test/DacpacTool.Tests/PackageAnalyzerTests.cs | 24 ++++++++++++++---- test/DacpacTool.Tests/SqlServer.Dac.dll | Bin 0 -> 50176 bytes test/DacpacTool.Tests/SqlServer.Rules.dll | Bin 0 -> 229376 bytes test/DacpacTool.Tests/TSQLSmellSCA.dll | Bin 0 -> 80896 bytes 5 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 test/DacpacTool.Tests/SqlServer.Dac.dll create mode 100644 test/DacpacTool.Tests/SqlServer.Rules.dll create mode 100644 test/DacpacTool.Tests/TSQLSmellSCA.dll diff --git a/test/DacpacTool.Tests/DacpacTool.Tests.csproj b/test/DacpacTool.Tests/DacpacTool.Tests.csproj index e45c0a5b..92fa53e7 100644 --- a/test/DacpacTool.Tests/DacpacTool.Tests.csproj +++ b/test/DacpacTool.Tests/DacpacTool.Tests.csproj @@ -8,6 +8,18 @@ 9.0 + + + Always + + + Always + + + Always + + + diff --git a/test/DacpacTool.Tests/PackageAnalyzerTests.cs b/test/DacpacTool.Tests/PackageAnalyzerTests.cs index b6e102b5..99c6f989 100644 --- a/test/DacpacTool.Tests/PackageAnalyzerTests.cs +++ b/test/DacpacTool.Tests/PackageAnalyzerTests.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.IO; using System.Linq; using Microsoft.SqlServer.Dac.Model; @@ -22,7 +23,7 @@ public void RunsAnalyzer() var packageAnalyzer = new PackageAnalyzer(_console, null); // Act - packageAnalyzer.Analyze(result.model, result.fileInfo, Array.Empty()); + packageAnalyzer.Analyze(result.model, result.fileInfo, CollectAssemblyPaths()); // Assert testConsole.Lines.Count.ShouldBe(15); @@ -33,6 +34,8 @@ public void RunsAnalyzer() testConsole.Lines.ShouldContain($"Successfully analyzed package '{result.fileInfo.FullName}'"); } + + [TestMethod] public void RunsAnalyzerWithSupressions() { @@ -43,7 +46,7 @@ public void RunsAnalyzerWithSupressions() var packageAnalyzer = new PackageAnalyzer(_console, "-SqlServer.Rules.SRD0006;-Smells.SML005;-SqlServer.Rules.SRD999;+!SqlServer.Rules.SRN0002;"); // Act - packageAnalyzer.Analyze(result.model, result.fileInfo, Array.Empty()); + packageAnalyzer.Analyze(result.model, result.fileInfo, CollectAssemblyPaths()); // Assert testConsole.Lines.Count.ShouldBe(13); @@ -65,7 +68,7 @@ public void RunsAnalyzerWithWildcardSupressions() var packageAnalyzer = new PackageAnalyzer(_console, "-SqlServer.Rules.SRD*"); // Act - packageAnalyzer.Analyze(result.model, result.fileInfo, Array.Empty()); + packageAnalyzer.Analyze(result.model, result.fileInfo, CollectAssemblyPaths()); // Assert testConsole.Lines.Count.ShouldBe(13); @@ -85,7 +88,7 @@ public void RunsAnalyzerWithWarningsAsErrors() var packageAnalyzer = new PackageAnalyzer(_console, "+!SqlServer.Rules.SRD0006"); // Act - packageAnalyzer.Analyze(result.model, result.fileInfo, Array.Empty()); + packageAnalyzer.Analyze(result.model, result.fileInfo, CollectAssemblyPaths()); // Assert testConsole.Lines.Count.ShouldBe(15); @@ -106,7 +109,7 @@ public void RunsAnalyzerWithWarningsAsErrorsUsingWildcard() var packageAnalyzer = new PackageAnalyzer(_console, "+!SqlServer.Rules.SRD*"); // Act - packageAnalyzer.Analyze(result.model, result.fileInfo, Array.Empty()); + packageAnalyzer.Analyze(result.model, result.fileInfo, CollectAssemblyPaths()); // Assert testConsole.Lines.Count.ShouldBe(15); @@ -129,5 +132,16 @@ private static (FileInfo fileInfo, TSqlModel model) BuildSimpleModel() return (new FileInfo(packagePath), model); } + + private FileInfo[] CollectAssemblyPaths() + { + var result = new List(); + var path = Path.GetDirectoryName(Path.Combine(System.Reflection.Assembly.GetAssembly(typeof(PackageAnalyzerTests)).Location)); + result.Add(new FileInfo(Path.Combine(path, "SqlServer.Dac.dll"))); + result.Add(new FileInfo(Path.Combine(path, "SqlServer.Rules.dll"))); + result.Add(new FileInfo(Path.Combine(path, "TSQLSmellSCA.dll"))); + + return result.ToArray(); + } } } diff --git a/test/DacpacTool.Tests/SqlServer.Dac.dll b/test/DacpacTool.Tests/SqlServer.Dac.dll new file mode 100644 index 0000000000000000000000000000000000000000..09d9b6c786596ce04f1754872f26f2e3b9ca6c18 GIT binary patch literal 50176 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 literal 0 HcmV?d00001 diff --git a/test/DacpacTool.Tests/SqlServer.Rules.dll b/test/DacpacTool.Tests/SqlServer.Rules.dll new file mode 100644 index 0000000000000000000000000000000000000000..163c94ae44bcd33d5558c63d932a7da91526e6d4 GIT binary patch literal 229376 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≫CtV#TitUF+ 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®dqDot0VNjV zepy1{eb`{9G}U1Y7}arGw{4=>6zp%PE7*k{p`T;n15F%zo$`q8+#&*V+=;%Urbft&rco`LkL^C;K=KTKVCGQt8$&r$%Qj zqSMnb?$IFdn6Odk5I5x{dZo1ANbehVTSD77zpSrEz*-}_c8gTzG*GDf zzW#FVbRnefW8t!yA#%KWPOG)5_`s;4spDDsnk*?q@`jZAR>~(=5?grOP^V9VM{Ql{ z9gI2cy4?l@T|CbhL`NR@QirOWUF9$Fw*($P#&TEQDwEHRVpDuLr$c<^Zi+Hh{fPy# zo4WcyW~W@&q+ud}j@@D@d>jnN*f{6n^ez4b zeGpbE(LAVWQ0MLkEBqtdM*R^`S{5w1mYT)j{yCijHMcTJrTNza+S+t9IJ`Tff1dx$ z03C~$jrLJzySsK99Q+O3_R^7@jxKrMcV{xkZ5Avaxrmu|?sU2M6#C9Pho+y9%sCtYoZx8yo|0e7*J%i{m>uT3ao^qpgcEKeRJW)a&&HXse zD%Wyvcp82Ho}K0sZzQ^9T)vAx6Avq@<<|-fmf5H&JTJSGb^c)F-KH?LG`Kzc3Ow)z zu^#|3|IBe%rI^HMIu0$%3u$Iqm5_>`pRgi<3%FmY{&u?PT^y*7_acei7xk#K9 zL28LPNqZ(jr%SjrZmA^;)0>-}PWS{)uB%mOHo$hU)G`OpAA9s`@a&(wds;^|@|WHo z=|q1U^DW0OJsjY&cV!u1>a(JR zl4(TH*iP3*=Yi$qus|il0mkX8Y1IAC44;&ZH)ZkWrF&kc6C{gAveS#&=?Ur%ashf} z|F1=9uPF31^e5u0`juOlWAOuTp@g&^Dedg^XH^T!E@S(B8JyfN0+`OOj%S->>XywY zgtw7TUWGCJIj6JFI&9=or+N%`JuF#@DV0L14%Vx=xg2o3$)&EYY4Kd;KIfzSK%{rkW>UW~LJnCND}C3_ z<^8tLwcNuxz|aTQ0>LlwS|@l<=x=-pxMC%V&hh;nfSvKmXCt6ip^3_39r`*Jg7!?7 z5M?vZ;GuZL)QpNMq_Wo5UMX66+0j>^SMxB#3s9Xdl;Zi~;Ji@e_QC8M&Wi=*XZ9bu zmXz)jnzA<9pEt;ps?S-H0vNdTA2p*xGJ!N0dpvH#vHc~YE;VKY8j`(*u9}x`4CZAt z7}SmQV>F9WFhQvc-pI-2#as2PkGfrXGY)BC`D`+b$8@g_7>tQ$>L^4+9hKr2XM`zw z!NG%sRSprtUoz{AXnZ7MuE+~mY0JyNHRP@S<+7zfb3h$08DrYBBZ2Y6KweGO^!>2y zJHpYd8L^%E837NYE@FYTu^(0x>2oR2L+m927~%T2RIl9In(E+ceLS7^t#TA}q&~8% z-6Jax>@I1Bj+ZM8sb!+)x}AU?{0-d5(9R0a-KpKL&F3HNA`48*;GJTj&zu|kz6#jO zj%~dqzN3I_5~w+pep%a)a1=TYer=Cir~h)~Ft_vPaWdtIMf{9!iQpAK$Kl%5JD#48 z_}RnlJf)U}%rH5W^=_}pf8Upku}MrrQwhu@HSuP29{IU;WnDRHZTM;G&n@U`nzc{b z8Ve<-b%m`pqBoNV{~_|>aB=r&RLk0j46|g~mX=ykoiKanl(7*!oUu%AHAJ`)!eiP9 zNCXB%%3=$zj`DlP2bu0fv+3)PBhXRf`FxLG&&iP+yg;CB5j<=?MdFigzRlcKs^VHK z+L>^9g=5p#_6LRlP4 zj|f;Y+)YpFSAAuA(l0O3tM$4it&+6I?q^;&()wL>YhLTTJ|6KgOQO}!oua-A?H$Zk zvz8VaPY48cY>%yB1xr)EAzw{0ZpAi##xVeA$?3dsGgH1>#1(Ju*QQz3dyb#S$2Ty# z6ZWFs8ynvIo;{a87@G}mIO@IbQ zbu2(SS8~LyKI?cX3TYc0r+_>p6Oue$c}&D0c;|ZeZ6qWkm#-&m2Y?VDQ_wtX&ak1e zTIVWZuy|#9{(K{Msjsaju^{AKnUuy?NMha%8c^iWmqSkNWU0?;*EWHo#iE`wInuk1 zsLwt(K&iviB`tLrHZ?a}E%(1pg9FksoG2gf7St+E9=Po$YY)H$fwR^-SlMe%xX)*| zcgxiKN)4+uzJ_bt(_#(%(Gq2Mt!ZtpZDt!XiML|+OgVJ+uq`cWX)z6|G#`oWM>qXK zUPCt$WJK)uWiS*KAqWj2ECxz5P!Lr_ERKi?STTTV8u@%b%DcGpJ*6c(2M}LH<$(9x{ z!|1QG4n@i*V8@``HjJIZ<0+|y`e+%Otg;#^g?M50$*ok{Kctb=7pZ;@pS>H$XM7RY z0ur5$JkC$+^;PrbjK}q58qL@2-CS@t)%s;3HXUy4(a)+?A%J$iu zJ8!p5Va#wZlfq8|I7}s{W7z^Ss&%`C;iVNSj>5S0E!5==r&*$lH*K1C{(?`4XHG-X zwZm6T$-H9pE%4OgUDcDAaA9Sy%oaW0$1DWC&xQR``9%{s{LyjOJKkW6MPR%?QBhPd z{jnk2{TGXg0!UvD{{Xl&Et@!8Q#|K2rdsi8FE41S-ZLKovlb45j@rA|u)w#2-ymYVJdnerMf zzD3X7!VfmwmD4_@upn7(b&3At48IrVX;HQuSp@kuCw0w4Gt_D=7)lP-$*Mu~MKnEo z<%$&QANkr>u@9OfSJQ0%T0c2O(+cN=ygesYRj_tPD2xSbvgo&YDts)s4~*UiVBCMn z3FvZM>dktub9YW%mU1{I;cckC%7tt)MD~@ zM0vMAk~%iaNv;%yr3l)tj;}0zUf6%X`G*vRo(R+yXPoHYE3qtr{X!*x?K|ET!@EE( z=MSCd1C{zhr>~+;CbfNlDC0m5Xoo&x28P@6gP3(KnVzY+6!^zh; zdXEpzGN;cZ3JxC!scuv>sc9Blvy+caVCslELMxj&va}g<_n_9yuo5vW0PQQXp`>9r zX|PT~PX=SyFLkBm#Ik8AneSHEQ#wV}A4LVzq^+hSkslF$2A_H8G^(_$D1`M74vM(P z_-!DbV+pjL}XT;MBAEoC5{=uJm3FV>LjUh}YZ zy}mrQhWQMp|3Hbl8nxp)Oe{Iglv)hL810Q#t4SzP41O%RSHczmoyy?{Sm|8~*ZP4A zKt#FXx6D&x`B!z9k(CgO)6O4B6;MinSGs$jbpo`W_kB=m51U=Im?k(VLw?RREIY=+7;MlNG)Vm5@zTxib|-TpR*?-N-Y#cN5E@pGQXb*M7?sb*;TW z4C;a_%?aQ(V9@$`#Zm=e>PyxM=0fPMF6UtJSyoh|C$}>JQ^-vurzqjD_k$_MQoFPo za)$9pm5t$-aO^(__Nmbp)A=7MG!pjGiTUGgR=@#YO(=ew5HFl14%M(2O(N>nFTU3M zmY3VV28c$BKL~>M;J$SS`_zCHG+8ii))>!G6Lm~{foNu(idKB5m1$Q-`z;L(qzxGR zd0b8zUxj>ci{tHQ!R%3>k|5%OANWS7v07|Ycy-AxGI+2fF4;a=N7#<|*}5nhs)yg6 zrFj*}l(X0##h#qi;(oEwhB73@vUL`m$Yb)6XGOPnGsP2(npZtE{i(%G$4tRZ5tgUi z`!@SH@=zP8z4j}iH#sx$g}mqld!qD1?VlAJe_F(;(!N|vUP-_%J&tB97{vy@tN}0Z zZr?)NPbMD<0C^!Enb!B?bF}&t98TCeLBIL#Y*@{+@kxt_K-OYbzIZ;I!h4lF0sbWK z7{GK?Cz&|{+h^{d0Uooqs-H+I4uC$ZHUKe~%krhL0NGzIVMg+7_ zym7M+mpgZnFVkB?N51ncPcBD0xXyS;6mJID0co^S^8hZthX9O^2gS?$qe2nd(Rd7f zr^MDHSr~AEcNEu`)~NaL9aP%JC{8tLC$>~a`HtO7=K~J#jNSsCcqc2EpPd^G3*#3& z*b>DzVxb9EqhUURju@&s3l>eHJa98rVXPjACxY01&9;nFAlBEd6b0k?cor+pq56#p zByK6=RKlXK_S<>nV~3_UB^}4w97-+;2=om4CJFO5F`H>5D^Yy>u-wIC#A~^__&R_J z<40S_{jLcqeBvio8szsgjC+rO7H=S5n4Y4lUzv??R__m2((VvWzx!+t?;X`o^5bWh z@py?0*#^ZI{Kk?u)0XzSYMXtm!yXzb6v2Wf$!p17#8jME$i$X_^3HK(<_zJ=S2hx3 z*#)~~Q(fT6!UKUjLgz^}s|a;yaSigd52%=lwk%e1?CKb%<+e}9lDuMx-xhC7Fqncf z0bw37vi@t8TDZAy@#1H^!_+UbzuxHroS_IK)WQe*dLN1F6F;LDe5Khd?xMcHm*jD`~ry(vz}!HFdJ? zNr#aW#KP3Atm~mYV5}lMTGd%(7N&%ykS`19o#MI|qb{eNXn%6SD9BMo z*Zm;ZI>4p7x>Id&KW;3CcT~DKgTI2I?2UKv@BS;>) zaIe@ntS`v^^WB^6Xz$pV`XjLsp^RzfXb=Hb|V~K@w9Zreu{@Z9zwl zdZA=exClc+d52GAopU5wJV!dm81WT(Dqre@8T_(LfF?5e1#0{-O|FuJO61GlkV5#p zSb)^K6y>Z6IA#*yD_=ZTNe^JNK5I@d%c%I?aemNvrF?`dc}tm*jP3aQO*-`3@_JVa zcSMVARzW)LZ4$P<#?6z+&C5fY0(Gw`Mhi$s_S2h`*-UjO-Uto(IP6a3u0nzKB2sU_ zG@E9rr$0V1e46354JXG4_PwKFyw*VZuy!gjyYy6EEjJ-*MCP{UO*9%tI3&I2XOr>vFM+GrNlGOwOdDmGV)X3-r8vz-#tG=o3G@ zPo~K{;Dio{6r0BB}g7f_>n#-s=No!aS&3so6{Y5a9ZtEl>yuYpT$i&9CK+S)FT&@>G|aS7Wft^U z+)!yXn%78-KC3dbZtK~y+Nm$B0v@fGPC(P7mB7fSfKFpMj}T;1IKc$>o>7tP2u`a% z{yagORdgcO*CGXMIwc>5cVJkQMfp`K2ONgPFT!^n#z)f=zVbqUG=(F>?#-emNU-7| zGhAQ%_)~K@=RjH$t{l2|0&7fjl*gFU(?rX9hb2pu;o}L+C?`YITRC1S8*VUvVu{vQ znvPQrv-c?vP{m8|7H}AAdZh3L?yU3p458@y7;$alvtv2%3I11y$R^GF@$*pJ+i8+Bf@5;L@9#O|; zWO)4wloPQ;zH(z{X4OLL0%<)?a>q&Jh6D5jUVb6=j6{<8$jf~i`W_kO&}XQa`_&XC zW|+?}#}iOfwgNNk+>?m&x$~K&se|MJ&VP_KGHv1ycLzIrk9&9#0c4dl+u=?3v`LM0 zXatYX-!^Z*a9CvPo-@GPjVh+Za>ihD}>gQ5KTca}_i&AMyR^q6v5m_k<*&JsT$Kn2m@{2zfm0z*P z)_>K`!O-^xqo$AO?e%!E;?E9+G$6~E0qmb8mXE1m(`qp2G*kd!WcN1enM*agDC(_@ zvjGQ!H2m&Ox!+9=qI*ot4)Fd1zc;a~ae&(n*|cT}J-}*h! z04`Am)2)+c+c?&ATm4s{+%J6NO~Z{`((9D|T4d>`%8b$z_A#AxKc<{Tm-c+sjhq1W z)-%J`r_glI+=)bG$?Eh?%N}n;xZXjxWe9MYc}A1S=odX^iZWZ z<$W8!{R!MSG`|Hz8F9>8F0E%phCN)+a?;0Mp|ant4e)B#>YW2S%h$(RgPh00Ij^2k zpyO%tUf_A>Y5$wAvVlBL3lB~RONln#t+03?q1~cyHnXrDum`Hw`~7{ai}i?!O;+g) z0Pl9myy--M?SQ*|r{$=`5c|G48qO?Q7mkT`6`{2N3FFd6GN8^|JRajUGw|9Kk^S(+ zJDc)wuu8j9WoNtJ{eW0aJ@Xy<;|ZI7A(n9cDtT#pH%P9CRpeH;&rlWm=MPdwgV^%! zQQjtT4DZp~7YmJdkQd?#j21i5i>8-iss&Gk5~Z&?W58?#c`6rTZ)l?79a3sGFd~3V zZP#BorDG(#BZPnQvqP8Lwrj3XWB^vY?R0#=`byag@-jbz zdd=$Y+`fHY^Gep&h~X8)Z6N(5NA4h+<-D@pU<@B1*6~}>fFnqJOviDYx3*^mnLPRUk4`Qb-1WLs zs;$!?{nG*N?hihUL0V&0M8(EvMi3RPpxzv1|Azd++OW!@4ZP>4XY=Im{qbf=MvS5h z=)uCU2+p2PYZxkimtTp57bJwravPD{cx=II`ySo<>zQ^DvLPdHQHEe@qRK4A>zV+Y z-K!65KbW_-&E`>MJY8et4=zlxm$nFz2tbO5YnKwXAe6Dkh>LFRGw z(MN2C=Z)~jJvtg>v*Sx?`a#TK4k|!RsjUcVdPTpjD+4>sewnif~jsK0Fp# zVJ()dge5K}2hTW)(^7(&4Fa0&DjmkjX&IF8g9ycbsl-gI>L4oW95s)qF`_=Vr>2l? zKc#t-8%ea4o_A5o2dZc*SdGDB@SXxzLHLekI6cdyZ-090_i}rd76iP9F2+sJ;yJtU zOlMB)d_@IEac6Cjo6U8}qsLeDdd64@UoUp>r! z=O7<|y7bAzA&LUEAQ5p{1 zs(pfSe#gm94$9R#gaE8)O}c%E_!JRjxid~ais-7pYje5VvOFzK{~>IkR8`b(Kybo7 zX@5;0)6p;SkP#@sq1wgA%s;-jlX$pxnvW2&tv;8-*>OUan{oVBH7*HCNkM(lzhnt& zA=xk$6PU+33m}%PLHUCx5fqf6;j#e!)FPjv=5CWhTVh-cMqitHFxSj1xBX$UL7aS# zM6--Vd)l(v^zsY-VOVudu&NgD)!Wgv*BDIRu&9>i;5wU)#6~c{ zUZM0olqxqjaIKV|jX;dF^-6<+w=%%PD$Rkqp_~se+k9f1nu6S`0Ef?0_PG_;p%j!$ z|LG!rjMB+dqKj)~<80AZZhawM4Jm`Whk8&;IH(rx*im*7n(vcp=RmITIj&QbnoMc- z{_v6C9@~L;{Dek(FTvKQ)md#c))Cp|4+$$Fb~3Vw2j4rztUjyVp>G~|P@bO`i27qn zPI?7-cg!L6nY~uyoAh@N)~vh~ywau?#M{Q|QKPSOoNQE~+a)xoyxsYJD-#0v&gf!( zeHNJ33Q4gb;PpfcR)d<^{ZZ5wL!kWJ2>$`bE5H6X$ysK#@9iv<(afw*W5MfL!j{#g zayc#GOfWxx{#*_~y|HjB;#KvOCc5L4W+R|%70TUgf}D`%=A(B^QUT#d{q^|s>5+cm zsXotAK$us3@rjtfh4t5D&yl(KlO&iCXZeC6GX=)3K$KJVCM$5g(YPBwVp68#PsmPW zBrNClj`Y^i#y8B-am*p5lRn3_plXLA_NSwq^9AL*g&WivTl6GYhnUp1C97Uc&JxXy zidsT+{Z1QS-ED^ldUZmBSd9)V!VKsnc?of~shI{>;nJK2l$T zm2ZpTiF}s<^f%AOgLZ1);+lO~yd%eWA~B}qE=)4hJXjA;D_1%}Ie5>^#oQ`t{855) zP{l`4-}|7dnJSgM-_q}kbcHmH;wy5D0f0Z6S+Gah=s0;B zTZE@)0*l!W={|C!Mux%V%Of^i!^REQn8`SQB|s4)JxQa{Ex3o1?Lx2f{e7069OKbq z!F+5jq2eo$dM%f`d~fBc>fm{ z=xP+!_1^yU7L;L1g?S`itwq zn)KR=+`+n^_cK_s>qn=d>n~I<89-s6^+mE zTnpFv%CQ)=?5lB{M89;mFA{w!0IHY|(qb3mz~Q-4Xi063$TfDw?whw!Uwo6@3Y-04 zoTyWE)NBk1lk@-sopUOLC^|FE9JVF86&pmW{q9ttg#?%Zlu`&_`1m0JYrgGnBSEea zIAUiC&|G)@D0{rmqTYVTvGZ8({_5r9hp><#-7SAByZ}qa((T@H7lWazl+Np!8iT?=^!>M=e@Xk%h!4D#h=%hDOl3SPy33h$Mu(&yv=A)**;Rn+el8Cm^TkDS_ zSIp8s^t1-B3q~Aggk~>saaYsl{3k|av`lt&vmV@2B<-a0jK!B>&kt$GDo>9+##0xL zC`FYMCC2zEzQOUY376 zz=kZ9CaLYN72m<4bw!Ehn0nzV(2N=OZ>HBB>tV=Qrq3*D#e}lT%ROd?JnhjMX>i5k z0mqL$)vxZ40?bR?^wzb*Y|8VBSJBcRDu-DX<`hdD#23eW#cvXiqs)dz7LMBP8bzIF zR}<8`+0Q>cbfoPE$etnaA5#QAgwo?0dy4O=Jge+!ze?$$mMymha!hHdNz=VgXa3V4 zvFDgFb>zX8Yx!I&+GXj5>8iV6vSXpLZR#reah`<&;|v!oP+5STA~`()Hn_h8Q}E!0 zJuHZvx&>(5{gc{YbueL)i(PlS!8aJzQB3dIVGJR@KPkO+a z4iFx5C@Uyq2&WB{36$;M@vnaaHmX2I4IsUakZ}VjCkW0K()yQF^}ZKk5Hv(5CkV~gfjZeWA~rtA%L>$2nEquDhFEV0<^ESoQz$bCI~3$rfr3)_JD>c&_W$FFf9Cr) z+x}_&zs<|~*Ioq(pDjceXNX^%AXn-?TmA3${$n>36z5+VL5N=*AxLY8m#rY068|6N dAfo@1{<|KCfq_DVa7=RicZvQ-{{Kf0{4e8N_^|*0 literal 0 HcmV?d00001 diff --git a/test/DacpacTool.Tests/TSQLSmellSCA.dll b/test/DacpacTool.Tests/TSQLSmellSCA.dll new file mode 100644 index 0000000000000000000000000000000000000000..ed71901d5134946e0a72b01078f14ed33b6065ab GIT binary patch literal 80896 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 Ad;kCd literal 0 HcmV?d00001 From 7102e0a847cd5a0f1a56f8c8bf340f845f4673db Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Tue, 24 Sep 2024 13:22:17 +0200 Subject: [PATCH 04/16] Update docs Remove file based "bring your own rules" support --- README.md | 64 +++++++++++-------- src/DacpacTool/PackageAnalyzer.cs | 17 ----- src/DacpacTool/PackageBuilder.cs | 7 -- src/DacpacTool/Program.cs | 6 -- test/DacpacTool.Tests/PackageAnalyzerTests.cs | 3 +- 5 files changed, 38 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index e20a2356..ce824721 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ dotnet new sqlproj -s Sql130 You should now have a project file with the following contents: ```xml - + netstandard2.0 Sql130 @@ -94,7 +94,7 @@ If you already have a SSDT (.sqlproj) project in your solution, you can keep tha There are a lot of properties that can be set on the model in the resulting `.dacpac` file which can be influenced by setting those properties in the project file using the same name. For example, the snippet below sets the `RecoveryMode` property to `Simple`: ```xml - + netstandard2.0 Simple @@ -112,7 +112,7 @@ Like `.sqlproj` projects `MSBuild.Sdk.SqlProj` supports controlling T-SQL build Treating warnings as errors can be optionally enabled by adding a property `TreatTSqlWarningsAsErrors` to the project file: ```xml - + True ... @@ -124,7 +124,7 @@ Treating warnings as errors can be optionally enabled by adding a property `Trea To suppress specific warnings from being treated as errors, add a comma-separated list of warning codes to `SuppressTSqlWarnings` property in the project file: ```xml - + 71558,71502 True @@ -136,7 +136,7 @@ To suppress specific warnings from being treated as errors, add a comma-separate You can suppress warnings for a specific file by adding `SuppressTSqlWarnings` for this file: ```xml - + ... @@ -156,7 +156,7 @@ Support for pre- and post-deployment scripts has been added in version 1.1.0. Th To include these scripts into your `.dacpac` add the following to your `.csproj`: ```xml - + ... @@ -173,7 +173,7 @@ It is important to note that scripts in the `Pre-Deployment` and `Post-Deploymen By default the pre- and/or post-deployment script of referenced packages (both [PackageReference](#package-references) and [ProjectReference](#project-references)) are not run when using `dotnet publish`. As of version 1.11.0 this can be optionally enabled by adding a property `RunScriptsFromReferences` to the project file as in the below example: ```xml - + True ... @@ -189,7 +189,7 @@ By default the pre- and/or post-deployment script of referenced packages (both [ Especially when using pre- and post-deployment scripts, but also in other scenario's, it might be useful to define variables that can be controlled at deployment time. This is supported using SQLCMD variables, added in version 1.1.0. These variables can be defined in your project file using the following syntax: ```xml - + ... @@ -213,7 +213,7 @@ Especially when using pre- and post-deployment scripts, but also in other scenar `MSBuild.Sdk.SqlProj` supports referencing NuGet packages that contain `.dacpac` packages. These can be referenced by using the `PackageReference` format familiar to .NET developers. They can also be installed through the NuGet Package Manager in Visual Studio. ```xml - + netstandard2.0 @@ -227,7 +227,7 @@ Especially when using pre- and post-deployment scripts, but also in other scenar It will assume that the `.dacpac` file is inside the `tools` folder of the referenced package and that it has the same name as the NuGet package. Referenced packages that do not adhere to this convention will be silently ignored. However, you have the ability to override this convention by using the `DacpacName` attribute on the `PackageReference` (introduced in version 2.5.0). For example: ```xml - + netstandard2.0 Sql160 @@ -244,7 +244,7 @@ This will add a reference to the `tools\SomeOtherDacpac.dacpac` file inside the By default, the package reference is treated as being part of the same database. For example, if the reference package contains a `.dacpac` that has a table and a stored procedure and you would `dotnet publish` the project the table and stored procedure from that package will be deployed along with the contents of your project to the same database. If this is not desired, you can add the `DatabaseVariableLiteralValue` item metadata to the `PackageReference` specifying a different database name: ```xml - + netstandard2.0 @@ -261,7 +261,7 @@ You can also use SQLCMD variables to set references, similar to the behavior of >Note: Don't forget to define appropriate [SQLCMD variables](#sqlcmd-variables) ```xml - + netstandard2.0 @@ -302,7 +302,7 @@ sqlpackage Microsoft has recently released NuGet packages containing the definitions of the `master` and `msdb` databases. This is useful if you want to reference objects from those databases within your own projects without getting warnings. To reference these, you'll need to use at least version 2.5.0 of MSBuild.Sdk.SqlProj as you'll need to use the `DacpacName` feature for package references described above. For example: ```xml - + netstandard2.0 160 @@ -322,7 +322,7 @@ For other variants of SQL Server / Azure SQL Database there are dedicated packag Similar to package references you can also reference another project by using a `ProjectReference`. These references can be added manually to the project file or they can be added through Visual Studio. For example, consider the following example: ```xml - + netstandard2.0 @@ -336,7 +336,7 @@ Similar to package references you can also reference another project by using a This will ensure that `MyOtherProject` is built first and the resulting `.dacpac` will be referenced by this project. This means you can use the objects defined in the other project within the scope of this project. If the other project is representing an entirely different database, you can also use `DatabaseVariableLiteralValue` or SQLCMD variables on the `ProjectReference` similar to `PackageReference`: ```xml - + netstandard2.0 @@ -370,7 +370,7 @@ In order to solve circular references between databases that may have been incor `SuppressMissingDependenciesErrors` to both [Package References](#package-references) and [ProjectReferences](#project-references)): ```xml - + netstandard2.0 @@ -392,7 +392,7 @@ In order to solve circular references between databases that may have been incor You'll need to set the `PackageProjectUrl` property in the `.csproj` like this: ```xml - + ... your-project-url @@ -464,7 +464,7 @@ To further customize the deployment process, you can use the following propertie In addition to these properties, you can also set any of the [documented](https://docs.microsoft.com/dotnet/api/microsoft.sqlserver.dac.dacdeployoptions) deployment options. These are typically set in the project file, for example: ```xml - + ... True @@ -487,7 +487,7 @@ Most of those properties are simple values (like booleans, strings and integers) Instead of using `dotnet publish` to deploy changes to a database, you can also have a full SQL script generated that will create the database from scratch and then run that script against a SQL Server. This can be achieved by adding the following to the project file: ```xml - + True True @@ -507,20 +507,22 @@ The database name for the create script gets resolved in the following manner: Starting with version 2.7.0 of the SDK, there is support for running static code analysis during build. The SDK includes the following sets of rules: - Microsoft.Rules ([1](https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/dd193411(v=vs.100)), [2](https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/dd193246(v=vs.100)) and [3](https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/dd172117(v=vs.100))) -- [SqlServer.Rules](https://github.com/tcartwright/SqlServer.Rules/blob/master/docs/table_of_contents.md) -- [Smells](https://github.com/davebally/TSQL-Smells) Static code analysis can be enabled by adding the `RunSqlCodeAnalysis` property to the project file: ```xml - + + + netstandard2.1 True -SqlServer.Rules.SRD0006;-Smells.* ``` +> Notice that the target framework should be set to `netstandard2.1` if you add NuGet based additional rules. + A xml file with the analysis results is created in the output folder. The optional `CodeAnalysisRules` property allows you to disable individual rules or groups of rules. @@ -530,7 +532,7 @@ Any rule violations found during analysis are reported as build warnings. Individual rule violations or groups of rules can be configured to be reported as build errors as shown below. ```xml - + True +!SqlServer.Rules.SRN0005;+!SqlServer.Rules.SRD* @@ -538,16 +540,24 @@ Individual rule violations or groups of rules can be configured to be reported a ``` -You can also bring your own rules. For an example of custom rules, see [this repository](https://github.com/ErikEJ/SqlServer.Rules). +You can also build your own rules. For an example of how to build a custom rule, see [this blog post](https://erikej.github.io/dacfx/dotnet/2024/04/04/dacfx-rules.html). + +To publish your own custom rules, pack your rule .dll in a NuGet package as shown in the rule project file[here](https://github.com/ErikEJ/SqlServer.Rules/blob/master/SqlServer.Rules/SqlServer.Rules.csproj. -To use custom rules, place the rule .dll files in a `Rules` folder in the project, and add them as Content items: +We know of the following public rules NuGet packages, that you can add to your project. ```xml - + + ``` +They are based on these older repositories: + +- [SqlServer.Rules](https://github.com/tcartwright/SqlServer.Rules/blob/master/docs/table_of_contents.md) +- [Smells](https://github.com/davebally/TSQL-Smells) + ## Integrations `MSBuild.Sdk.SqlProj` integrates with a number of other technologies and tools. Here are some examples: @@ -556,7 +566,7 @@ To use custom rules, place the rule .dll files in a `Rules` folder in the projec - [dotnet-sqltest](https://github.com/cagrin/dotnet-sqltest) - Command line tool for running tSQLt unit tests from MSBuild.Sdk.SqlProj projects. -- [EF Core Power Tools](https://marketplace.visualstudio.com/items?itemName=ErikEJ.EFCorePowerTools&ssr=false#overview) - Visual Studio extension that can generate an Entity Framework Core DbContext and model classes directly from your `MSBuild.Sdk.SqlProj` project. +- [EF Core Power Tools](https://marketplace.visualstudio.com/items?itemName=ErikEJ.EFCorePowerTools&ssr=false#overview) - Visual Studio extension that can generate an Entity Framework Core DbContext and model classes, and variuos diagrams directly from your `MSBuild.Sdk.SqlProj` project. ## Workaround for parser errors (SQL46010) This project relies on the publicly available T-SQL parser which may not support all T-SQL syntax constructions. Therefore, you might encounter a SQL46010 error if you have a script file that contains unsupported syntax. If that happens, there's a couple of workarounds you can try: diff --git a/src/DacpacTool/PackageAnalyzer.cs b/src/DacpacTool/PackageAnalyzer.cs index 920fa04a..5ed51eca 100644 --- a/src/DacpacTool/PackageAnalyzer.cs +++ b/src/DacpacTool/PackageAnalyzer.cs @@ -22,23 +22,6 @@ public PackageAnalyzer(IConsole console, string rulesExpression) BuildRuleLists(rulesExpression); } - public void AddRulesFile(FileInfo inputFile) - { - ArgumentNullException.ThrowIfNull(inputFile); - - // Make sure the file exists - if (!inputFile.Exists) - { - throw new ArgumentException($"Unable to find rules file {inputFile}", nameof(inputFile)); - } - - if (inputFile.Directory.Name.Equals("rules", StringComparison.OrdinalIgnoreCase) - && inputFile.Extension.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) - { - CopyAdditionalRulesFile(inputFile); - } - } - public void Analyze(TSqlModel model, FileInfo outputFile, FileInfo[] analyzers) { ArgumentNullException.ThrowIfNull(model); diff --git a/src/DacpacTool/PackageBuilder.cs b/src/DacpacTool/PackageBuilder.cs index 9dcbdbd1..43c2e913 100644 --- a/src/DacpacTool/PackageBuilder.cs +++ b/src/DacpacTool/PackageBuilder.cs @@ -78,13 +78,6 @@ public bool AddInputFile(FileInfo inputFile) throw new ArgumentException($"Unable to find input file {inputFile}", nameof(inputFile)); } - // Skip custom rules files, they will be added to the tools folder later by the analyzer - if (inputFile.Directory.Name.Equals("rules", StringComparison.OrdinalIgnoreCase) - && inputFile.Extension.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) - { - return true; - } - _console.WriteLine($"Adding {inputFile.FullName} to the model"); try diff --git a/src/DacpacTool/Program.cs b/src/DacpacTool/Program.cs index ab63acfb..5457df17 100644 --- a/src/DacpacTool/Program.cs +++ b/src/DacpacTool/Program.cs @@ -207,12 +207,6 @@ private static int BuildDacpac(BuildOptions options) { var analyzer = new PackageAnalyzer(new ActualConsole(), options.CodeAnalysisRules); - foreach (var line in File.ReadLines(options.InputFile.FullName)) - { - FileInfo inputFile = new FileInfo(line); // Validation occurs in AddRulesFile - analyzer.AddRulesFile(inputFile); - } - analyzer.Analyze(packageBuilder.Model, options.Output, options.CodeAnalysisAssembly ?? Array.Empty()); } diff --git a/test/DacpacTool.Tests/PackageAnalyzerTests.cs b/test/DacpacTool.Tests/PackageAnalyzerTests.cs index 99c6f989..88cb5fbf 100644 --- a/test/DacpacTool.Tests/PackageAnalyzerTests.cs +++ b/test/DacpacTool.Tests/PackageAnalyzerTests.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.IO; using System.Linq; using Microsoft.SqlServer.Dac.Model; From fd3809c844cac49532359232ee3bf284284b3aca Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Wed, 25 Sep 2024 10:22:44 +0200 Subject: [PATCH 05/16] Log analyzer load and warn if none --- src/DacpacTool/PackageAnalyzer.cs | 15 ++++++-- test/DacpacTool.Tests/PackageAnalyzerTests.cs | 36 +++++++++++++++---- 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/src/DacpacTool/PackageAnalyzer.cs b/src/DacpacTool/PackageAnalyzer.cs index 5ed51eca..4704bfef 100644 --- a/src/DacpacTool/PackageAnalyzer.cs +++ b/src/DacpacTool/PackageAnalyzer.cs @@ -26,15 +26,24 @@ public void Analyze(TSqlModel model, FileInfo outputFile, FileInfo[] analyzers) { ArgumentNullException.ThrowIfNull(model); ArgumentNullException.ThrowIfNull(outputFile); + ArgumentNullException.ThrowIfNull(analyzers); _console.WriteLine($"Analyzing package '{outputFile.FullName}'"); try { var factory = new CodeAnalysisServiceFactory(); - var settings = new CodeAnalysisServiceSettings + var settings = new CodeAnalysisServiceSettings(); + + if (analyzers.Length == 0) { - AssemblyLookupPath = string.Join(';', analyzers.Select(a => a.DirectoryName)), - }; + // warning SR0016: Microsoft.Rules.Data : Stored procedure(sp_Test) includes sp_ prefix in its name. + _console.WriteLine("DacpacTool warning SQLPROJ0001: No additional rules files found, consider adding more rules via PackageReference - see the readme here: https://github.com/rr-wfm/MSBuild.Sdk.SqlProj."); + } + else + { + _console.WriteLine("Loading analyzers: " + string.Join(", ", analyzers.Select(a => a.FullName))); + settings.AssemblyLookupPath = string.Join(';', analyzers.Select(a => a.DirectoryName)); + } var service = factory.CreateAnalysisService(model, settings); diff --git a/test/DacpacTool.Tests/PackageAnalyzerTests.cs b/test/DacpacTool.Tests/PackageAnalyzerTests.cs index 88cb5fbf..944acf0a 100644 --- a/test/DacpacTool.Tests/PackageAnalyzerTests.cs +++ b/test/DacpacTool.Tests/PackageAnalyzerTests.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.IO; using System.Linq; using Microsoft.SqlServer.Dac.Model; @@ -25,7 +26,7 @@ public void RunsAnalyzer() packageAnalyzer.Analyze(result.model, result.fileInfo, CollectAssemblyPaths()); // Assert - testConsole.Lines.Count.ShouldBe(15); + testConsole.Lines.Count.ShouldBe(16); testConsole.Lines.ShouldContain($"Analyzing package '{result.fileInfo.FullName}'"); testConsole.Lines.ShouldContain($"proc1.sql(1,47): Warning SRD0006 : SqlServer.Rules : Avoid using SELECT *."); @@ -48,7 +49,7 @@ public void RunsAnalyzerWithSupressions() packageAnalyzer.Analyze(result.model, result.fileInfo, CollectAssemblyPaths()); // Assert - testConsole.Lines.Count.ShouldBe(13); + testConsole.Lines.Count.ShouldBe(14); testConsole.Lines.ShouldContain($"Analyzing package '{result.fileInfo.FullName}'"); testConsole.Lines.Any(l => l.Contains("SRD0006")).ShouldBeFalse(); @@ -70,7 +71,7 @@ public void RunsAnalyzerWithWildcardSupressions() packageAnalyzer.Analyze(result.model, result.fileInfo, CollectAssemblyPaths()); // Assert - testConsole.Lines.Count.ShouldBe(13); + testConsole.Lines.Count.ShouldBe(14); testConsole.Lines.ShouldContain($"Analyzing package '{result.fileInfo.FullName}'"); testConsole.Lines.Any(l => l.Contains("SRD")).ShouldBeFalse(); @@ -90,7 +91,7 @@ public void RunsAnalyzerWithWarningsAsErrors() packageAnalyzer.Analyze(result.model, result.fileInfo, CollectAssemblyPaths()); // Assert - testConsole.Lines.Count.ShouldBe(15); + testConsole.Lines.Count.ShouldBe(16); testConsole.Lines.ShouldContain($"Analyzing package '{result.fileInfo.FullName}'"); testConsole.Lines.ShouldContain($"proc1.sql(1,47): Error SRD0006 : SqlServer.Rules : Avoid using SELECT *."); @@ -111,15 +112,38 @@ public void RunsAnalyzerWithWarningsAsErrorsUsingWildcard() packageAnalyzer.Analyze(result.model, result.fileInfo, CollectAssemblyPaths()); // Assert - testConsole.Lines.Count.ShouldBe(15); + testConsole.Lines.Count.ShouldBe(16); + testConsole.Lines.Count(l => l.Contains("Loading analyzers: ")).ShouldBe(1); testConsole.Lines.ShouldContain($"Analyzing package '{result.fileInfo.FullName}'"); + testConsole.Lines.ShouldNotContain("DacpacTool warning SQLPROJ0001: No additional rules files found, consider adding more rules via PackageReference - see the readme here: https://github.com/rr-wfm/MSBuild.Sdk.SqlProj."); testConsole.Lines.ShouldContain($"proc1.sql(1,47): Error SRD0006 : SqlServer.Rules : Avoid using SELECT *."); testConsole.Lines.ShouldContain($"-1(1,1): Error SRD0002 : SqlServer.Rules : Table does not have a primary key."); testConsole.Lines.Count(l => l.Contains("): Error ")).ShouldBe(2); testConsole.Lines.ShouldContain($"Successfully analyzed package '{result.fileInfo.FullName}'"); } + [TestMethod] + public void RunsAnalyzerWithoutAdditionalAnalyzers() + { + // Arrange + var testConsole = (TestConsole)_console; + testConsole.Lines.Clear(); + var result = BuildSimpleModel(); + var packageAnalyzer = new PackageAnalyzer(_console, null); + + // Act + packageAnalyzer.Analyze(result.model, result.fileInfo, Array.Empty()); + + // Assert + testConsole.Lines.Count.ShouldBe(16); + + testConsole.Lines[1].ShouldBe("DacpacTool warning SQLPROJ0001: No additional rules files found, consider adding more rules via PackageReference - see the readme here: https://github.com/rr-wfm/MSBuild.Sdk.SqlProj."); + testConsole.Lines.ShouldContain($"Analyzing package '{result.fileInfo.FullName}'"); + testConsole.Lines.Count(l => l.Contains("): Error ")).ShouldBe(0); + testConsole.Lines.ShouldContain($"Successfully analyzed package '{result.fileInfo.FullName}'"); + } + private static (FileInfo fileInfo, TSqlModel model) BuildSimpleModel() { var tmodel = new TestModelBuilder() From ba02323835cd8870e3c8df53b62f6bb70e0809e5 Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Wed, 25 Sep 2024 10:48:16 +0200 Subject: [PATCH 06/16] Update template to netstandard2.1 --- .../templates/sqlproj/sqlproj.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj b/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj index 34d46ee9..ff0ec342 100644 --- a/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj +++ b/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj @@ -1,6 +1,6 @@ - netstandard2.0 + netstandard2.1 #{SqlServerVersion} #{CodeAnalysis} From d9226fdec78827d55c4905c43f8ccbb4c1c7daf3 Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Thu, 26 Sep 2024 14:59:22 +0200 Subject: [PATCH 07/16] Update README.md Co-authored-by: Jeff Rosenberg --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ce824721..c2684e51 100644 --- a/README.md +++ b/README.md @@ -521,7 +521,7 @@ Static code analysis can be enabled by adding the `RunSqlCodeAnalysis` property ``` -> Notice that the target framework should be set to `netstandard2.1` if you add NuGet based additional rules. +> Notice that the target framework should be set to `netstandard2.1` if you add additional NuGet-based rules. A xml file with the analysis results is created in the output folder. From 92f1d3328ba4fa3f5c3ab6108c120aed53538599 Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Thu, 26 Sep 2024 14:59:48 +0200 Subject: [PATCH 08/16] Update README.md Co-authored-by: Jeff Rosenberg --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c2684e51..bb397fbf 100644 --- a/README.md +++ b/README.md @@ -542,7 +542,7 @@ Individual rule violations or groups of rules can be configured to be reported a You can also build your own rules. For an example of how to build a custom rule, see [this blog post](https://erikej.github.io/dacfx/dotnet/2024/04/04/dacfx-rules.html). -To publish your own custom rules, pack your rule .dll in a NuGet package as shown in the rule project file[here](https://github.com/ErikEJ/SqlServer.Rules/blob/master/SqlServer.Rules/SqlServer.Rules.csproj. +To publish your own custom rules, pack your rule .dll in a NuGet package as shown in the rule project file [here](https://github.com/ErikEJ/SqlServer.Rules/blob/master/SqlServer.Rules/SqlServer.Rules.csproj). We know of the following public rules NuGet packages, that you can add to your project. From 4d41d0e94820f9ee4fb551d81fb512bf8f2ba41e Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Thu, 26 Sep 2024 15:00:02 +0200 Subject: [PATCH 09/16] Update README.md Co-authored-by: Jeff Rosenberg --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bb397fbf..9642816a 100644 --- a/README.md +++ b/README.md @@ -566,7 +566,7 @@ They are based on these older repositories: - [dotnet-sqltest](https://github.com/cagrin/dotnet-sqltest) - Command line tool for running tSQLt unit tests from MSBuild.Sdk.SqlProj projects. -- [EF Core Power Tools](https://marketplace.visualstudio.com/items?itemName=ErikEJ.EFCorePowerTools&ssr=false#overview) - Visual Studio extension that can generate an Entity Framework Core DbContext and model classes, and variuos diagrams directly from your `MSBuild.Sdk.SqlProj` project. +- [EF Core Power Tools](https://marketplace.visualstudio.com/items?itemName=ErikEJ.EFCorePowerTools&ssr=false#overview) - Visual Studio extension that can generate an Entity Framework Core DbContext and model classes, and various diagrams directly from your `MSBuild.Sdk.SqlProj` project. ## Workaround for parser errors (SQL46010) This project relies on the publicly available T-SQL parser which may not support all T-SQL syntax constructions. Therefore, you might encounter a SQL46010 error if you have a script file that contains unsupported syntax. If that happens, there's a couple of workarounds you can try: From 13a01ef80d170679e04bbaf52beea094c751a210 Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Mon, 30 Sep 2024 11:08:39 +0200 Subject: [PATCH 10/16] Update readme --- README.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index ce824721..2fc96e62 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ You should now have a project file with the following contents: ```xml - netstandard2.0 + netstandard2.1 Sql130 @@ -55,11 +55,13 @@ You should now have a project file with the following contents: ``` -Then run a `dotnet build` and you'll find a .dacpac file with the same name as your project file in the `bin\Debug\netstandard2.0` folder. If you want to change the name of the `.dacpac` file you can set the `` property in your project file to something else. +Then run a `dotnet build` and you'll find a .dacpac file with the same name as your project file in the `bin\Debug\netstandard2.1 +` folder. If you want to change the name of the `.dacpac` file you can set the `` property in your project file to something else. > Note: For PackageReferences this SDK currently assumes that the `.dacpac` file has the same name as the package. If you plan to create a NuGet package out of your project (see [below](#packaging-support)) then make sure that `` matches the ID of your package. -> Note: Ensure you **do not** change the `TargetFramework` element from `netstandard2.0` to anything else. Otherwise, you will see errors like `The "CopyRefAssembly" task was not given a value for the required parameter "SourcePath"`. +> Note: Ensure you **do not** change the `TargetFramework` element from `netstandard2.1 +` to anything else. Otherwise, you will see errors like `The "CopyRefAssembly" task was not given a value for the required parameter "SourcePath"`. ## Editing the Project file The project file can have extension `.csproj` or `.fsproj`. @@ -96,7 +98,7 @@ There are a lot of properties that can be set on the model in the resulting `.da ```xml - netstandard2.0 + netstandard2.1 Simple SqlAzure @@ -215,7 +217,7 @@ Especially when using pre- and post-deployment scripts, but also in other scenar ```xml - netstandard2.0 + netstandard2.1 @@ -229,7 +231,7 @@ It will assume that the `.dacpac` file is inside the `tools` folder of the refer ```xml - netstandard2.0 + netstandard2.1 Sql160 @@ -246,7 +248,7 @@ By default, the package reference is treated as being part of the same database. ```xml - netstandard2.0 + netstandard2.1 @@ -263,7 +265,7 @@ You can also use SQLCMD variables to set references, similar to the behavior of ```xml - netstandard2.0 + netstandard2.1 @@ -304,7 +306,7 @@ Microsoft has recently released NuGet packages containing the definitions of the ```xml - netstandard2.0 + netstandard2.1 160 @@ -324,7 +326,7 @@ Similar to package references you can also reference another project by using a ```xml - netstandard2.0 + netstandard2.1 @@ -338,7 +340,7 @@ This will ensure that `MyOtherProject` is built first and the resulting `.dacpac ```xml - netstandard2.0 + netstandard2.1 @@ -372,7 +374,7 @@ In order to solve circular references between databases that may have been incor ```xml - netstandard2.0 + netstandard2.1 From 0e12bd2b71c4ee77a97b554ab99a84d85de66b8a Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Mon, 30 Sep 2024 11:10:57 +0200 Subject: [PATCH 11/16] fix up --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 11faaa94..8f299163 100644 --- a/README.md +++ b/README.md @@ -55,8 +55,7 @@ You should now have a project file with the following contents: ``` -Then run a `dotnet build` and you'll find a .dacpac file with the same name as your project file in the `bin\Debug\netstandard2.1 -` folder. If you want to change the name of the `.dacpac` file you can set the `` property in your project file to something else. +Then run a `dotnet build` and you'll find a .dacpac file with the same name as your project file in the `bin\Debug\netstandard2.1` folder. If you want to change the name of the `.dacpac` file you can set the `` property in your project file to something else. > Note: For PackageReferences this SDK currently assumes that the `.dacpac` file has the same name as the package. If you plan to create a NuGet package out of your project (see [below](#packaging-support)) then make sure that `` matches the ID of your package. From e5acb953b785b61c4d22de683f66cd5f2f4fc783 Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Mon, 30 Sep 2024 16:15:24 +0200 Subject: [PATCH 12/16] Clean up --- src/DacpacTool/PackageAnalyzer.cs | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/DacpacTool/PackageAnalyzer.cs b/src/DacpacTool/PackageAnalyzer.cs index 4704bfef..7635a942 100644 --- a/src/DacpacTool/PackageAnalyzer.cs +++ b/src/DacpacTool/PackageAnalyzer.cs @@ -36,12 +36,11 @@ public void Analyze(TSqlModel model, FileInfo outputFile, FileInfo[] analyzers) if (analyzers.Length == 0) { - // warning SR0016: Microsoft.Rules.Data : Stored procedure(sp_Test) includes sp_ prefix in its name. _console.WriteLine("DacpacTool warning SQLPROJ0001: No additional rules files found, consider adding more rules via PackageReference - see the readme here: https://github.com/rr-wfm/MSBuild.Sdk.SqlProj."); } else { - _console.WriteLine("Loading analyzers: " + string.Join(", ", analyzers.Select(a => a.FullName))); + _console.WriteLine("Using additional analyzers: " + string.Join(", ", analyzers.Select(a => a.FullName))); settings.AssemblyLookupPath = string.Join(';', analyzers.Select(a => a.DirectoryName)); } @@ -122,16 +121,5 @@ private static string GetOutputFileName(FileInfo outputFile) } return outputFileName + ".CodeAnalysis.xml"; } - - private void CopyAdditionalRulesFile(FileInfo rulesFile) - { - var destPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); - - var dest = Path.Combine(destPath, rulesFile.Name); - - rulesFile.CopyTo(dest, overwrite: true); - - _console.WriteLine($"Adding additional rules file from '{rulesFile.FullName}' to '{dest}'"); - } } } From 94d114467e71d2158cf73849e448536fdf9e40ab Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Mon, 30 Sep 2024 16:23:03 +0200 Subject: [PATCH 13/16] fix test --- test/DacpacTool.Tests/PackageAnalyzerTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/DacpacTool.Tests/PackageAnalyzerTests.cs b/test/DacpacTool.Tests/PackageAnalyzerTests.cs index 944acf0a..99c84a68 100644 --- a/test/DacpacTool.Tests/PackageAnalyzerTests.cs +++ b/test/DacpacTool.Tests/PackageAnalyzerTests.cs @@ -114,7 +114,7 @@ public void RunsAnalyzerWithWarningsAsErrorsUsingWildcard() // Assert testConsole.Lines.Count.ShouldBe(16); - testConsole.Lines.Count(l => l.Contains("Loading analyzers: ")).ShouldBe(1); + testConsole.Lines.Count(l => l.Contains("Using additional analyzers: ")).ShouldBe(1); testConsole.Lines.ShouldContain($"Analyzing package '{result.fileInfo.FullName}'"); testConsole.Lines.ShouldNotContain("DacpacTool warning SQLPROJ0001: No additional rules files found, consider adding more rules via PackageReference - see the readme here: https://github.com/rr-wfm/MSBuild.Sdk.SqlProj."); testConsole.Lines.ShouldContain($"proc1.sql(1,47): Error SRD0006 : SqlServer.Rules : Avoid using SELECT *."); From b6928367cd0b4cce0954299f98cd7bf9e4e5f462 Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Tue, 1 Oct 2024 08:18:12 +0200 Subject: [PATCH 14/16] Address review comments --- src/DacpacTool/BuildOptions.cs | 2 +- src/DacpacTool/Program.cs | 4 ++-- .../templates/sqlproj/sqlproj.csproj | 1 + test/DacpacTool.Tests/PackageAnalyzerTests.cs | 1 - test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/DacpacTool/BuildOptions.cs b/src/DacpacTool/BuildOptions.cs index c6d67dec..cc3adc63 100644 --- a/src/DacpacTool/BuildOptions.cs +++ b/src/DacpacTool/BuildOptions.cs @@ -22,7 +22,7 @@ public class BuildOptions : BaseOptions public bool RunCodeAnalysis { get; set; } public string CodeAnalysisRules { get; set; } - public FileInfo[] CodeAnalysisAssembly { get; set; } + public FileInfo[] CodeAnalysisAssemblies { get; set; } public bool WarnAsError { get; set; } public string SuppressWarnings { get; set; } public FileInfo SuppressWarningsListFile { get; set; } diff --git a/src/DacpacTool/Program.cs b/src/DacpacTool/Program.cs index 5457df17..a182ff53 100644 --- a/src/DacpacTool/Program.cs +++ b/src/DacpacTool/Program.cs @@ -33,7 +33,7 @@ static async Task Main(string[] args) new Option(new string[] { "--runcodeanalysis", "-an" }, "Run static code analysis"), new Option(new string[] { "--codeanalysisrules", "-ar" }, "List of rules to suppress in format '-Microsoft.Rules.Data.SR0001;-Microsoft.Rules.Data.SR0008'"), - new Option(new string[] { "--codeanalysisassembly", "-aa" }, "Custom code analysis rule assembly to use"), + new Option(new string[] { "--codeanalysisassemblies", "-aa" }, "Custom code analysis rule assemblies to use"), new Option(new string[] { "--warnaserror" }, "Treat T-SQL Warnings As Errors"), new Option(new string[] { "--generatecreatescript", "-gcs" }, "Generate create script for package"), @@ -207,7 +207,7 @@ private static int BuildDacpac(BuildOptions options) { var analyzer = new PackageAnalyzer(new ActualConsole(), options.CodeAnalysisRules); - analyzer.Analyze(packageBuilder.Model, options.Output, options.CodeAnalysisAssembly ?? Array.Empty()); + analyzer.Analyze(packageBuilder.Model, options.Output, options.CodeAnalysisAssemblies ?? Array.Empty()); } return 0; diff --git a/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj b/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj index ff0ec342..dc21a380 100644 --- a/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj +++ b/src/MSBuild.Sdk.SqlProj.Templates/templates/sqlproj/sqlproj.csproj @@ -8,6 +8,7 @@ + diff --git a/test/DacpacTool.Tests/PackageAnalyzerTests.cs b/test/DacpacTool.Tests/PackageAnalyzerTests.cs index 99c84a68..caffa77c 100644 --- a/test/DacpacTool.Tests/PackageAnalyzerTests.cs +++ b/test/DacpacTool.Tests/PackageAnalyzerTests.cs @@ -160,7 +160,6 @@ private FileInfo[] CollectAssemblyPaths() { var result = new List(); var path = Path.GetDirectoryName(Path.Combine(System.Reflection.Assembly.GetAssembly(typeof(PackageAnalyzerTests)).Location)); - result.Add(new FileInfo(Path.Combine(path, "SqlServer.Dac.dll"))); result.Add(new FileInfo(Path.Combine(path, "SqlServer.Rules.dll"))); result.Add(new FileInfo(Path.Combine(path, "TSQLSmellSCA.dll"))); diff --git a/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj b/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj index b90b018e..807e575f 100644 --- a/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj +++ b/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj @@ -9,7 +9,7 @@ - + From 90ae90562491025a5b8e0fc53d8e515cbd4e8d11 Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Tue, 1 Oct 2024 11:51:47 +0200 Subject: [PATCH 15/16] Always enable code analysis --- src/MSBuild.Sdk.SqlProj/Sdk/Sdk.props | 1 + test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.props b/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.props index 8426e615..b6d33cf8 100644 --- a/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.props +++ b/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.props @@ -10,6 +10,7 @@ $(MSBuildAllProjects);$(MsBuildThisFileFullPath) Sql150 .dacpac + True diff --git a/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj b/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj index 807e575f..a3b565f6 100644 --- a/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj +++ b/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj @@ -4,7 +4,6 @@ netstandard2.1 Sql150 - True -SqlServer.Rules.SRD0006;-Smells.*;+!SqlServer.Rules.SRN0002 From 3648688e4640ce26fdbae952daa0388838ef8bcb Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Tue, 1 Oct 2024 13:32:20 +0200 Subject: [PATCH 16/16] revert --- src/MSBuild.Sdk.SqlProj/Sdk/Sdk.props | 1 - test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.props b/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.props index b6d33cf8..8426e615 100644 --- a/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.props +++ b/src/MSBuild.Sdk.SqlProj/Sdk/Sdk.props @@ -10,7 +10,6 @@ $(MSBuildAllProjects);$(MsBuildThisFileFullPath) Sql150 .dacpac - True diff --git a/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj b/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj index a3b565f6..7d170a01 100644 --- a/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj +++ b/test/TestProjectWithAnalyzers/TestProjectWithAnalyzers.csproj @@ -5,6 +5,7 @@ netstandard2.1 Sql150 -SqlServer.Rules.SRD0006;-Smells.*;+!SqlServer.Rules.SRN0002 + true