From f41f035b1da7510efa22f5fc4931f50de8fc4327 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 20 Nov 2023 09:06:24 -0500 Subject: [PATCH 01/49] Updated projects to target .NET 4.7.2 --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 02ddbb2..437b8ef 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ _ReSharper.* *.swp *.resharper.user *.rptproj.user -*.db \ No newline at end of file +*.db +/.vs From 6c7130aafb2690909f212112564c4f5bf51159b7 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 20 Nov 2023 09:25:07 -0500 Subject: [PATCH 02/49] Removed artifacts folder. --- Humpback/Artifacts/Humpback.Smo.dll | Bin 4608 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Humpback/Artifacts/Humpback.Smo.dll diff --git a/Humpback/Artifacts/Humpback.Smo.dll b/Humpback/Artifacts/Humpback.Smo.dll deleted file mode 100644 index 509c7c9c0711af0e55d459f21d7bc9ab7d173c8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4608 zcmeHKU2Ggz75-+|UT>Vl)Nb?B1ckAjNHH{{^$)}erCrDC#HO*GcsFiZ8IsxA>&-N? zGn<*&#s&ngXdfaT+CmGd)Q1)cp-6ow0g3V_K_8G1Luj&JkuHhR;*TIj!QcTl<8O-esiRo30$_q zD0Dc|zGX?sMu|fmElcmMP>(zDy~JIA>`gtAN(K8!{~`TRgFYwF zgTbRZBRG}+^eLm^jl}lsxRtTSGGikr#JO&GM31o!eG&LQ`yX=;hw^dg`sGM8Ug7zX zeHgls$LpjeB|~Q}%;wm?#qkUs9XjO&MUJJ>gmGq10Rt_-BntL!^f^p3r#BSTs_2LF3mn=Pixz8^0j` zLy3PHk7J0-r?8k9O{5SKdvQDQdZG_IlJ6%5G`$xWlB3C91j*%O3g1qi)V_(A;;Vt@ znB;>vOrK?R&J_OFc>?O*lf!WWMfBrE=IddNgBpi5j%YlgaZ=-~#`DBIcuLc@MpxrC zjcddMxIr}WGVusr)BHDyqxcSS0zbePl1E5CmwXIw;v2~+{0!eE$HGo}W#K`3Wzl!R zAzUGTO!LQZo%AO){|SwG+$6`ryTq&bH8H|I!@}ob62FXLV+LL83{-Z!)#O%^7p&O~ zjA(Kr?N7RBwAJ#G3Zrc!Kka&Ii*VDj4LPqL6zs69;?w*Ts_Q{#2#qN@*Dm`(6uVA@oGRAJ zWqX5nbsjD8q%eR@3o)K5{Ruk*Bt!4YqVnujO-1eS8i|p46ct_1jXQR!>60DX&6RSb zt^74_%5#+;L#Wmv!<_4cK@_aSq9H!0&}xfk{gq%_l{wqD%c??q)UH$lAN9HIsoPHD ztFbM=!9_B_P@C7Wp6%x=u2Pu>+N46{r%4^FFic|-i>Y~(tUkhreSDEbd&0zlyRDK zjr5J@KXYe&{Z}swf8c_~^Iawe2u8ZErzbfuH}F)t-@vZU+ksyheTnxO*wM;Ac%k87 z>m4%Ry=As!=4fVw7uc|Y!zV^R@$r?+O7WO|{J3*$yi}SvRvb~zF=tGviHWgsXKcl0 z^yTc9p4~UUihdYzkMx;CiHEY}SKvqdv*!?W25no>idKCO4woMohhcqk4P0Yn4U~`V>>kCBM9lrGnPU zFz))_I4cY0fc33ZN>j8~K~=A@#)xc=e-{ zr*AW;X{$xrb6B}p^sz!K(lUH~+BTMGBczpfTp4PQ@{wNr%&~$qbY^0$>(i#!;px5B zvQVO)RMx;Ut1Sa(IlruDOVm}Y>8zDmfk|vzc_wc01=^Yilm2B`Q`M`gv)aFfhAr6z z@voU98PzlTpZNKx&hI&$^%8UF(6i1xxt9%zaa`whYZPlm^= hm^_smcV+WDS?|7TX8kwgW&L~VzVht<&ioHD@NWp{>$?B| From 6e7cc6e7b3352f91904c3463a994d0247d4974ad Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 20 Nov 2023 09:27:35 -0500 Subject: [PATCH 03/49] Ignored packages, use Nuget for package managment. --- .gitignore | 1 + packages/xunit.1.9.0.1566/lib/xunit.dll | Bin 68608 -> 0 bytes packages/xunit.1.9.0.1566/lib/xunit.dll.tdnet | 5 - .../lib/xunit.runner.msbuild.dll | Bin 24576 -> 0 bytes .../lib/xunit.runner.tdnet.dll | Bin 8704 -> 0 bytes .../lib/xunit.runner.utility.dll | Bin 46592 -> 0 bytes packages/xunit.1.9.0.1566/lib/xunit.xml | 2604 ----------------- .../xunit.1.9.0.1566/xunit.1.9.0.1566.nupkg | Bin 100229 -> 0 bytes 8 files changed, 1 insertion(+), 2609 deletions(-) delete mode 100644 packages/xunit.1.9.0.1566/lib/xunit.dll delete mode 100644 packages/xunit.1.9.0.1566/lib/xunit.dll.tdnet delete mode 100644 packages/xunit.1.9.0.1566/lib/xunit.runner.msbuild.dll delete mode 100644 packages/xunit.1.9.0.1566/lib/xunit.runner.tdnet.dll delete mode 100644 packages/xunit.1.9.0.1566/lib/xunit.runner.utility.dll delete mode 100644 packages/xunit.1.9.0.1566/lib/xunit.xml delete mode 100644 packages/xunit.1.9.0.1566/xunit.1.9.0.1566.nupkg diff --git a/.gitignore b/.gitignore index 437b8ef..c8c495a 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ _ReSharper.* *.rptproj.user *.db /.vs +/packages \ No newline at end of file diff --git a/packages/xunit.1.9.0.1566/lib/xunit.dll b/packages/xunit.1.9.0.1566/lib/xunit.dll deleted file mode 100644 index 86168af5382a7ae15cbaa37b811c9f454c5671e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68608 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 diff --git a/packages/xunit.1.9.0.1566/lib/xunit.dll.tdnet b/packages/xunit.1.9.0.1566/lib/xunit.dll.tdnet deleted file mode 100644 index 4d8afc8..0000000 --- a/packages/xunit.1.9.0.1566/lib/xunit.dll.tdnet +++ /dev/null @@ -1,5 +0,0 @@ - - xUnit.net {0}.{1}.{2} build {3} - xunit.runner.tdnet.dll - Xunit.Runner.TdNet.TdNetRunner - \ No newline at end of file diff --git a/packages/xunit.1.9.0.1566/lib/xunit.runner.msbuild.dll b/packages/xunit.1.9.0.1566/lib/xunit.runner.msbuild.dll deleted file mode 100644 index ac2065d024f7634f49d51dda6e3a5d70c62156d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 zcmeHvdw5(|k!Ri8@7BZa?zj~vc5*GpaZ8q3k}VTkmKE8u94qlFmi)+zq}6>Tb=>N! z+-}(tPC({kvXdFYBd{M#*c}qX2Zo(t;Uf%$*Cw-&?=vh5;W4}>nZOKz-H#pkJ_a^3 z1IhlX&b|GXaOS}uJJWX8JyoYpRh>F@>YRJ;X&t)#ZR8;$FTSt5Li8zI`77Bovf)$O!LMwXn8_B5Ioq1HQ?o`omCsv6W70J2`Mik`XS?osKnfth6h)8%QLNWP z7#P+ODKrsm@ndsc;AxU`gy;eK&<;Knyvv)Tjw=;B921mfS$M# zSC|eqZ)dDGKyQGZFgv23V^ZAif!3=Y21N_|C=q0t_STZAB$tfd&{wEnhqRov!Ta1?6E%q z6<50Ec-WEz+~9{oj9FM2-Rc!uT-b!()+w_3t7LgCbS7NErCQtHhKjZd6(Rw?@zG6H z?d{*x+R_?mU`(*q7`@e(z@Yg%F%YVco2uom(rOIA$cIaJ~W$Z}>N2O}NvbY-0WZ$!Q06;|xAHUPFgi~-e}0&$UXArQCPL2Zt= zY}p(PJ?c2#K2)+i=8bsc{tFSW#WF%|rx3x2$Zu4H91@+E$Hh;HQeT)Bw^JoCh&fMU zBP1jshDVvh3U=4G`S@kDxuHgnN2j^9rIB`2Afl8m#CE0Dx)@?x8^jQkmyIDmjn&xj zSVJ2SNv;vWN+Wa+f(N7MN5PxG$VwC)Za`)q?XJ<)>ZzPOj@-8DZt5PmTYZ##lv&nw zxT?IM#%K<*%Cn@>#l<(|iI6 z$}e-LX5L;v`?57N}r>1p`Pd6bY3G=$;>ykmK)4sB3xoZ}#g!J+T#afy4-) zvUX^Mmqn@{-dM@r7|TTl{?!I8sk+&XnFt10xMI^t*Z!g}I0%(KJ(2%0DMv2lS& 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 diff --git a/packages/xunit.1.9.0.1566/lib/xunit.runner.tdnet.dll b/packages/xunit.1.9.0.1566/lib/xunit.runner.tdnet.dll deleted file mode 100644 index f7d0639ae4f20d1e6af3e88860f48bbe3efccf53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8704 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 UG&KI3MDLPk<@?C{_r0tC1D08R*Z=?k diff --git a/packages/xunit.1.9.0.1566/lib/xunit.runner.utility.dll b/packages/xunit.1.9.0.1566/lib/xunit.runner.utility.dll deleted file mode 100644 index cc1f21bf8b4bae32e2ae8f2d09aa14dc89888d4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46592 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 e|Nr0ratj=k|Hk%m{ - - - xunit - - - - - Contains various static methods that are used to verify that conditions are met during the - process of running tests. - - - - - Initializes a new instance of the class. - - - - - Verifies that a collection contains a given object. - - The type of the object to be verified - The object expected to be in the collection - The collection to be inspected - Thrown when the object is not present in the collection - - - - Verifies that a collection contains a given object, using an equality comparer. - - The type of the object to be verified - The object expected to be in the collection - The collection to be inspected - The comparer used to equate objects in the collection with the expected object - Thrown when the object is not present in the collection - - - - Verifies that a string contains a given sub-string, using the current culture. - - The sub-string expected to be in the string - The string to be inspected - Thrown when the sub-string is not present inside the string - - - - Verifies that a string contains a given sub-string, using the given comparison type. - - The sub-string expected to be in the string - The string to be inspected - The type of string comparison to perform - Thrown when the sub-string is not present inside the string - - - - Verifies that a collection does not contain a given object. - - The type of the object to be compared - The object that is expected not to be in the collection - The collection to be inspected - Thrown when the object is present inside the container - - - - Verifies that a collection does not contain a given object, using an equality comparer. - - The type of the object to be compared - The object that is expected not to be in the collection - The collection to be inspected - The comparer used to equate objects in the collection with the expected object - Thrown when the object is present inside the container - - - - Verifies that a string does not contain a given sub-string, using the current culture. - - The sub-string which is expected not to be in the string - The string to be inspected - Thrown when the sub-string is present inside the string - - - - Verifies that a string does not contain a given sub-string, using the current culture. - - The sub-string which is expected not to be in the string - The string to be inspected - The type of string comparison to perform - Thrown when the sub-string is present inside the given string - - - - Verifies that a block of code does not throw any exceptions. - - A delegate to the code to be tested - - - - Verifies that a collection is empty. - - The collection to be inspected - Thrown when the collection is null - Thrown when the collection is not empty - - - - Verifies that two objects are equal, using a default comparer. - - The type of the objects to be compared - The expected value - The value to be compared against - Thrown when the objects are not equal - - - - Verifies that two objects are equal, using a custom equatable comparer. - - The type of the objects to be compared - The expected value - The value to be compared against - The comparer used to compare the two objects - Thrown when the objects are not equal - - - - Verifies that two values are equal, within the number of decimal - places given by . - - The expected value - The value to be compared against - The number of decimal places (valid values: 0-15) - Thrown when the values are not equal - - - - Verifies that two values are equal, within the number of decimal - places given by . - - The expected value - The value to be compared against - The number of decimal places (valid values: 0-15) - Thrown when the values are not equal - - - - Verifies that two sequences are equivalent, using a default comparer. - - The type of the objects to be compared - The expected value - The value to be compared against - Thrown when the objects are not equal - - - - Verifies that two sequences are equivalent, using a custom equatable comparer. - - The type of the objects to be compared - The expected value - The value to be compared against - The comparer used to compare the two objects - Thrown when the objects are not equal - - - Do not call this method. - - - - Verifies that the condition is false. - - The condition to be tested - Thrown if the condition is not false - - - - Verifies that the condition is false. - - The condition to be tested - The message to show when the condition is not false - Thrown if the condition is not false - - - - Verifies that a value is within a given range. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - Thrown when the value is not in the given range - - - - Verifies that a value is within a given range, using a comparer. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - The comparer used to evaluate the value's range - Thrown when the value is not in the given range - - - - Verifies that an object is of the given type or a derived type. - - The type the object should be - The object to be evaluated - The object, casted to type T when successful - Thrown when the object is not the given type - - - - Verifies that an object is of the given type or a derived type. - - The type the object should be - The object to be evaluated - Thrown when the object is not the given type - - - - Verifies that an object is not exactly the given type. - - The type the object should not be - The object to be evaluated - Thrown when the object is the given type - - - - Verifies that an object is not exactly the given type. - - The type the object should not be - The object to be evaluated - Thrown when the object is the given type - - - - Verifies that an object is exactly the given type (and not a derived type). - - The type the object should be - The object to be evaluated - The object, casted to type T when successful - Thrown when the object is not the given type - - - - Verifies that an object is exactly the given type (and not a derived type). - - The type the object should be - The object to be evaluated - Thrown when the object is not the given type - - - - Verifies that a collection is not empty. - - The collection to be inspected - Thrown when a null collection is passed - Thrown when the collection is empty - - - - Verifies that two objects are not equal, using a default comparer. - - The type of the objects to be compared - The expected object - The actual object - Thrown when the objects are equal - - - - Verifies that two objects are not equal, using a custom equality comparer. - - The type of the objects to be compared - The expected object - The actual object - The comparer used to examine the objects - Thrown when the objects are equal - - - - Verifies that two sequences are not equivalent, using a default comparer. - - The type of the objects to be compared - The expected object - The actual object - Thrown when the objects are equal - - - - Verifies that two sequences are not equivalent, using a custom equality comparer. - - The type of the objects to be compared - The expected object - The actual object - The comparer used to compare the two objects - Thrown when the objects are equal - - - - Verifies that a value is not within a given range, using the default comparer. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - Thrown when the value is in the given range - - - - Verifies that a value is not within a given range, using a comparer. - - The type of the value to be compared - The actual value to be evaluated - The (inclusive) low value of the range - The (inclusive) high value of the range - The comparer used to evaluate the value's range - Thrown when the value is in the given range - - - - Verifies that an object reference is not null. - - The object to be validated - Thrown when the object is not null - - - - Verifies that two objects are not the same instance. - - The expected object instance - The actual object instance - Thrown when the objects are the same instance - - - - Verifies that an object reference is null. - - The object to be inspected - Thrown when the object reference is not null - - - - Verifies that the provided object raised INotifyPropertyChanged.PropertyChanged - as a result of executing the given test code. - - The object which should raise the notification - The property name for which the notification should be raised - The test code which should cause the notification to be raised - Thrown when the notification is not raised - - - - Verifies that two objects are the same instance. - - The expected object instance - The actual object instance - Thrown when the objects are not the same instance - - - - Verifies that the given collection contains only a single - element of the given type. - - The collection. - The single item in the collection. - Thrown when the collection does not contain - exactly one element. - - - - Verifies that the given collection contains only a single - element of the given value. The collection may or may not - contain other values. - - The collection. - The value to find in the collection. - The single item in the collection. - Thrown when the collection does not contain - exactly one element. - - - - Verifies that the given collection contains only a single - element of the given type. - - The collection type. - The collection. - The single item in the collection. - Thrown when the collection does not contain - exactly one element. - - - - Verifies that the given collection contains only a single - element of the given type which matches the given predicate. The - collection may or may not contain other values which do not - match the given predicate. - - The collection type. - The collection. - The item matching predicate. - The single item in the filtered collection. - Thrown when the filtered collection does - not contain exactly one element. - - - - Verifies that the exact exception is thrown (and not a derived exception type). - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that the exact exception is thrown (and not a derived exception type). - Generally used to test property accessors. - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that the exact exception is thrown (and not a derived exception type). - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that the exact exception is thrown (and not a derived exception type). - Generally used to test property accessors. - - The type of the exception expected to be thrown - A delegate to the code to be tested - The exception that was thrown, when successful - Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown - - - - Verifies that an expression is true. - - The condition to be inspected - Thrown when the condition is false - - - - Verifies that an expression is true. - - The condition to be inspected - The message to be shown when the condition is false - Thrown when the condition is false - - - - Used by the PropertyChanged. - - - - - Used by the Throws and DoesNotThrow methods. - - - - - Used by the Throws and DoesNotThrow methods. - - - - - This command sets up the necessary trace listeners and standard - output/error listeners to capture Assert/Debug.Trace failures, - output to stdout/stderr, and Assert/Debug.Write text. It also - captures any exceptions that are thrown and packages them as - FailedResults, including the possibility that the configuration - file is messed up (which is exposed when we attempt to manipulate - the trace listener list). - - - - - Base class used by commands which delegate to inner commands. - - - - - Interface which represents the ability to invoke of a test method. - - - - - Executes the test method. - - The instance of the test class - Returns information about the test run - - - - Creates the start XML to be sent to the callback when the test is about to start - running. - - Return the of the start node, or null if the test - is known that it will not be running. - - - - Gets the display name of the test method. - - - - - Determines if the test runner infrastructure should create a new instance of the - test class before running the test. - - - - - Determines if the test should be limited to running a specific amount of time - before automatically failing. - - The timeout value, in milliseconds; if zero, the test will not have - a timeout. - - - - Creates a new instance of the class. - - The inner command to delegate to. - - - - - - - - - - - - - - - - - - - - - - Initializes a new instance of the - class. - - The command that will be wrapped. - The test method. - - - - - - - Represents an implementation of to be used with - tests which are decorated with the . - - - - - Represents an xUnit.net test command. - - - - - The method under test. - - - - - Initializes a new instance of the class. - - The method under test. - The display name of the test. - The timeout, in milliseconds. - - - - - - - - - - - - - Gets the name of the method under test. - - - - - - - - - - - Gets the name of the type under test. - - - - - Initializes a new instance of the class. - - The test method. - - - - - - - Base class for exceptions that have actual and expected values - - - - - The base assert exception class - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The user message to be displayed - - - - Initializes a new instance of the class. - - The user message to be displayed - The inner exception - - - - Initializes a new instance of the class. - - The user message to be displayed - The stack trace to be displayed - - - - - - - Determines whether to exclude a line from the stack frame. By default, this method - removes all stack frames from methods beginning with Xunit.Assert or Xunit.Sdk. - - The stack frame to be filtered. - Return true to exclude the line from the stack frame; false, otherwise. - - - - Filters the stack trace to remove all lines that occur within the testing framework. - - The original stack trace - The filtered stack trace - - - - - - - Gets a string representation of the frames on the call stack at the time the current exception was thrown. - - A string that describes the contents of the call stack, with the most recent method call appearing first. - - - - Gets the user message - - - - - Creates a new instance of the class. - - The expected value - The actual value - The user message to be shown - - - - Creates a new instance of the class. - - The expected value - The actual value - The user message to be shown - Set to true to skip the check for difference position - - - - - - - - - - Gets the actual value. - - - - - Gets the expected value. - - - - - Gets a message that describes the current exception. Includes the expected and actual values. - - The error message that explains the reason for the exception, or an empty string(""). - 1 - - - - Exception thrown when a collection unexpectedly does not contain the expected value. - - - - - Creates a new instance of the class. - - The expected object value - - - - Creates a new instance of the class. - - The expected object value - The actual value - - - - - - - Exception to be thrown from when the number of - parameter values does not the test method signature. - - - - - - - - - - - Exception thrown when code unexpectedly fails change a property. - - - - - Creates a new instance of the class. Call this constructor - when no exception was thrown. - - The name of the property that was expected. - - - - - - - Exception thrown when the collection did not contain exactly one element. - - - - - Initializes a new instance of the class. - - The numbers of items in the collection. - - - - Initializes a new instance of the class. - - The numbers of items in the collection. - The object expected to be in the collection. - - - - - - - Internal class used for version-resilient test runners. DO NOT CALL DIRECTLY. - Version-resilient runners should link against xunit.runner.utility.dll and use - ExecutorWrapper instead. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Exception thrown when the value is unexpectedly not of the given type or a derived type. - - - - - Creates a new instance of the class. - - The expected type - The actual object value - - - - - - - Allows the user to record actions for a test. - - - - - Records any exception which is thrown by the given code. - - The code which may thrown an exception. - Returns the exception that was thrown by the code; null, otherwise. - - - - Records any exception which is thrown by the given code that has - a return value. Generally used for testing property accessors. - - The code which may thrown an exception. - Returns the exception that was thrown by the code; null, otherwise. - - - - Exception that is thrown when one or more exceptions are thrown from - the After method of a . - - - - - Initializes a new instance of the class. - - The exceptions. - - - - Initializes a new instance of the class. - - The exceptions. - - - - - - - - - - Gets the list of exceptions thrown in the After method. - - - - - Gets a message that describes the current exception. - - - - - Gets a string representation of the frames on the call stack at the time the current exception was thrown. - - - - - Implementation of which executes the - instances attached to a test method. - - - - - Initializes a new instance of the class. - - The inner command. - The method. - - - - Executes the test method. - - The instance of the test class - Returns information about the test run - - - - This class supports the xUnit.net infrastructure and is not intended to be used - directly from your code. - - - - - This API supports the xUnit.net infrastructure and is not intended to be used - directly from your code. - - - - - This API supports the xUnit.net infrastructure and is not intended to be used - directly from your code. - - - - - This API supports the xUnit.net infrastructure and is not intended to be used - directly from your code. - - - - - Guard class, used for guard clauses and argument validation - - - - - - - - - - - - - - Base class which contains XML manipulation helper methods - - - - - Interface that represents a single test result. - - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - The amount of time spent in execution - - - - - Adds the test execution time to the XML node. - - The XML node. - - - - - - - - - - Utility methods for dealing with exceptions. - - - - - Gets the message for the exception, including any inner exception messages. - - The exception - The formatted message - - - - Gets the stack trace for the exception, including any inner exceptions. - - The exception - The formatted stack trace - - - - Rethrows an exception object without losing the existing stack trace information - - The exception to re-throw. - - For more information on this technique, see - http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx - - - - - A dictionary which contains multiple unique values for each key. - - The type of the key. - The type of the value. - - - - Adds the value for the given key. If the key does not exist in the - dictionary yet, it will add it. - - The key. - The value. - - - - Removes all keys and values from the dictionary. - - - - - Determines whether the dictionary contains to specified key and value. - - The key. - The value. - - - - Calls the delegate once for each key/value pair in the dictionary. - - - - - Removes the given key and all of its values. - - - - - Removes the given value from the given key. If this was the - last value for the key, then the key is removed as well. - - The key. - The value. - - - - Gets the values for the given key. - - - - - Gets the count of the keys in the dictionary. - - - - - Gets the keys. - - - - - - - - XML utility methods - - - - - Adds an attribute to an XML node. - - The XML node. - The attribute name. - The attribute value. - - - - Adds a child element to an XML node. - - The parent XML node. - The child element name. - The new child XML element. - - - - Exception that is thrown when a call to Debug.Assert() fails. - - - - - Creates a new instance of the class. - - The original assert message - - - - Creates a new instance of the class. - - The original assert message - The original assert detailed message - - - - - - - - - - Gets the original assert detailed message. - - - - - Gets the original assert message. - - - - - Gets a message that describes the current exception. - - - - - Exception thrown when a collection unexpectedly contains the expected value. - - - - - Creates a new instance of the class. - - The expected object value - - - - - - - Exception thrown when code unexpectedly throws an exception. - - - - - Creates a new instance of the class. - - Actual exception - - - - THIS CONSTRUCTOR IS FOR UNIT TESTING PURPOSES ONLY. - - - - - - - - - - - Gets a string representation of the frames on the call stack at the time the current exception was thrown. - - A string that describes the contents of the call stack, with the most recent method call appearing first. - - - - Exception thrown when a collection is unexpectedly not empty. - - - - - Creates a new instance of the class. - - - - - - - - Exception thrown when two values are unexpectedly not equal. - - - - - Creates a new instance of the class. - - The expected object value - The actual object value - - - - Creates a new instance of the class. - - The expected object value - The actual object value - Set to true to skip the check for difference position - - - - - - - Exception thrown when a value is unexpectedly true. - - - - - Creates a new instance of the class. - - The user message to be display, or null for the default message - - - - - - - Exception thrown when a value is unexpectedly not in the given range. - - - - - Creates a new instance of the class. - - The actual object value - The low value of the range - The high value of the range - - - - - - - - - - Gets the actual object value - - - - - Gets the high value of the range - - - - - Gets the low value of the range - - - - - Gets a message that describes the current exception. - - The error message that explains the reason for the exception, or an empty string(""). - - - - Exception thrown when the value is unexpectedly of the exact given type. - - - - - Creates a new instance of the class. - - The expected type - The actual object value - - - - - - - Exception thrown when the value is unexpectedly not of the exact given type. - - - - - Creates a new instance of the class. - - The expected type - The actual object value - - - - - - - Used to decorate xUnit.net test classes that utilize fixture classes. - An instance of the fixture data is initialized just before the first - test in the class is run, and if it implements IDisposable, is disposed - after the last test in the class is run. - - The type of the fixture - - - - Called on the test class just before each test method is run, - passing the fixture data so that it can be used for the test. - All test runs share the same instance of fixture data. - - The fixture data - - - - Exception thrown when a value is unexpectedly in the given range. - - - - - Creates a new instance of the class. - - The actual object value - The low value of the range - The high value of the range - - - - - - - - - - Gets the actual object value - - - - - Gets the high value of the range - - - - - Gets the low value of the range - - - - - Gets a message that describes the current exception. - - The error message that explains the reason for the exception, or an empty string(""). - - - - Base attribute which indicates a test method interception (allows code to be run before and - after the test is run). - - - - - This method is called after the test method is executed. - - The method under test - - - - This method is called before the test method is executed. - - The method under test - - - - - - - Exception thrown when a collection is unexpectedly empty. - - - - - Creates a new instance of the class. - - - - - - - - Exception thrown when two values are unexpectedly equal. - - - - - Creates a new instance of the class. - - - - - - - - Exception thrown when an object is unexpectedly null. - - - - - Creates a new instance of the class. - - - - - - - - Exception thrown when two values are unexpected the same instance. - - - - - Creates a new instance of the class. - - - - - - - - Exception thrown when an object reference is unexpectedly not null. - - - - - Creates a new instance of the class. - - - - - - - - - Command that automatically creates the instance of the test class - and disposes it (if it implements ). - - - - - Creates a new instance of the object. - - The command that is bring wrapped - The method under test - - - - Executes the test method. Creates a new instance of the class - under tests and passes it to the inner command. Also catches - any exceptions and converts them into s. - - The instance of the test class - Returns information about the test run - - - - Command used to wrap a which has associated - fixture data. - - - - - Creates a new instance of the class. - - The inner command - The fixtures to be set on the test class - - - - Sets the fixtures on the test class by calling SetFixture, then - calls the inner command. - - The instance of the test class - Returns information about the test run - - - - A timer class used to figure out how long tests take to run. On most .NET implementations - this will use the class because it's a high - resolution timer; however, on Silverlight/CoreCLR, it will use - (which will provide lower resolution results). - - - - - Creates a new instance of the class. - - - - - Starts timing. - - - - - Stops timing. - - - - - Gets how long the timer ran, in milliseconds. In order for this to be valid, - both and must have been called. - - - - - Attribute used to decorate a test method with arbitrary name/value pairs ("traits"). - - - - - Creates a new instance of the class. - - The trait name - The trait value - - - - Gets the trait name. - - - - - - - - Gets the trait value. - - - - - Runner that executes an synchronously. - - - - - Execute the . - - The test class command to execute - The methods to execute; if null or empty, all methods will be executed - The start run callback - The end run result callback - A with the results of the test run - - - - Factory for objects, based on the type under test. - - - - - Creates the test class command, which implements , for a given type. - - The type under test - The test class command, if the class is a test class; null, otherwise - - - - Creates the test class command, which implements , for a given type. - - The type under test - The test class command, if the class is a test class; null, otherwise - - - - Represents an xUnit.net test class - - - - - Interface which describes the ability to executes all the tests in a test class. - - - - - Allows the test class command to choose the next test to be run from the list of - tests that have not yet been run, thereby allowing it to choose the run order. - - The tests remaining to be run - The index of the test that should be run - - - - Execute actions to be run after all the test methods of this test class are run. - - Returns the thrown during execution, if any; null, otherwise - - - - Execute actions to be run before any of the test methods of this test class are run. - - Returns the thrown during execution, if any; null, otherwise - - - - Enumerates the test commands for a given test method in this test class. - - The method under test - The test commands for the given test method - - - - Enumerates the methods which are test methods in this test class. - - The test methods - - - - Determines if a given refers to a test method. - - The test method to validate - True if the method is a test method; false, otherwise - - - - Gets the object instance that is under test. May return null if you wish - the test framework to create a new object instance for each test method. - - - - - Gets or sets the type that is being tested - - - - - Creates a new instance of the class. - - - - - Creates a new instance of the class. - - The type under test - - - - Creates a new instance of the class. - - The type under test - - - - Chooses the next test to run, randomly, using the . - - The tests remaining to be run - The index of the test that should be run - - - - Execute actions to be run after all the test methods of this test class are run. - - Returns the thrown during execution, if any; null, otherwise - - - - Execute actions to be run before any of the test methods of this test class are run. - - Returns the thrown during execution, if any; null, otherwise - - - - Enumerates the test commands for a given test method in this test class. - - The method under test - The test commands for the given test method - - - - Enumerates the methods which are test methods in this test class. - - The test methods - - - - Determines if a given refers to a test method. - - The test method to validate - True if the method is a test method; false, otherwise - - - - Gets the object instance that is under test. May return null if you wish - the test framework to create a new object instance for each test method. - - - - - Gets or sets the randomizer used to determine the order in which tests are run. - - - - - Sets the type that is being tested - - - - - Implementation of that represents a skipped test. - - - - - Creates a new instance of the class. - - The method that is being skipped - The display name for the test. If null, the fully qualified - type name is used. - The reason the test was skipped. - - - - - - - - - - Gets the skip reason. - - - - - - - - Factory for creating objects. - - - - - Make instances of objects for the given class and method. - - The class command - The method under test - The set of objects - - - - A command wrapper which times the running of a command. - - - - - Creates a new instance of the class. - - The command that will be timed. - - - - Executes the inner test method, gathering the amount of time it takes to run. - - Returns information about the test run - - - - Wraps a command which should fail if it runs longer than the given timeout value. - - - - - Creates a new instance of the class. - - The command to be run - The timout, in milliseconds - The method under test - - - - Executes the test method, failing if it takes too long. - - Returns information about the test run - - - - - - - Attributes used to decorate a test fixture that is run with an alternate test runner. - The test runner must implement the interface. - - - - - Creates a new instance of the class. - - The class which implements ITestClassCommand and acts as the runner - for the test fixture. - - - - Gets the test class command. - - - - - Exception thrown when two object references are unexpectedly not the same instance. - - - - - Creates a new instance of the class. - - The expected object reference - The actual object reference - - - - - - - Contains the test results from an assembly. - - - - - Contains multiple test results, representing them as a composite test result. - - - - - Adds a test result to the composite test result list. - - - - - - Gets the test results. - - - - - Creates a new instance of the class. - - The filename of the assembly - - - - Creates a new instance of the class. - - The filename of the assembly - The configuration filename - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Gets the fully qualified filename of the configuration file. - - - - - Gets the directory where the assembly resides. - - - - - Gets the number of failed results. - - - - - Gets the fully qualified filename of the assembly. - - - - - Gets the number of passed results. - - - - - Gets the number of skipped results. - - - - - Contains the test results from a test class. - - - - - Creates a new instance of the class. - - The type under test - - - - Creates a new instance of the class. - - The simple name of the type under test - The fully qualified name of the type under test - The namespace of the type under test - - - - Sets the exception thrown by the test fixture. - - The thrown exception - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Gets the fully qualified test fixture exception type, when an exception has occurred. - - - - - Gets the number of tests which failed. - - - - - Gets the fully qualified name of the type under test. - - - - - Gets the test fixture exception message, when an exception has occurred. - - - - - Gets the simple name of the type under test. - - - - - Gets the namespace of the type under test. - - - - - Gets the number of tests which passed. - - - - - Gets the number of tests which were skipped. - - - - - Gets the test fixture exception stack trace, when an exception has occurred. - - - - - Represents a failed test result. - - - - - Represents the results from running a test method - - - - - Initializes a new instance of the class. The traits for - the test method are discovered using reflection. - - The method under test. - The display name for the test. If null, the fully qualified - type name is used. - - - - Initializes a new instance of the class. - - The name of the method under test. - The type of the method under test. - The display name for the test. If null, the fully qualified - type name is used. - The traits. - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Gets or sets the display name of the method under test. This is the value that's shown - during failures and in the resulting output XML. - - - - - Gets the name of the method under test. - - - - - Gets or sets the standard output/standard error from the test that was captured - while the test was running. - - - - - Gets the traits attached to the test method. - - - - - Gets the name of the type under test. - - - - - Creates a new instance of the class. - - The method under test - The exception throw by the test - The display name for the test. If null, the fully qualified - type name is used. - - - - Creates a new instance of the class. - - The name of the method under test - The name of the type under test - The display name of the test - The custom properties attached to the test method - The full type name of the exception throw - The exception message - The exception stack trace - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Gets the exception type thrown by the test method. - - - - - Gets the exception message thrown by the test method. - - - - - Gets the stack trace of the exception thrown by the test method. - - - - - Represents a passing test result. - - - - - Create a new instance of the class. - - The method under test - The display name for the test. If null, the fully qualified - type name is used. - - - - Create a new instance of the class. - - The name of the method under test - The name of the type under test - The display name for the test. If null, the fully qualified - type name is used. - The custom properties attached to the test method - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Represents a skipped test result. - - - - - Creates a new instance of the class. Uses reflection to discover - the skip reason. - - The method under test - The display name for the test. If null, the fully qualified - type name is used. - The reason the test was skipped. - - - - Creates a new instance of the class. - - The name of the method under test - The name of the type under test - The display name for the test. If null, the fully qualified - type name is used. - The traits attached to the method under test - The skip reason - - - - Converts the test result into XML that is consumed by the test runners. - - The parent node. - The newly created XML node. - - - - Gets the skip reason. - - - - - Represents information about an attribute. - - - - - Gets the instance of the attribute, if available. - - The type of the attribute - The instance of the attribute, if available. - - - - Gets an initialized property value of the attribute. - - The type of the property - The name of the property - The property value - - - - Represents information about a method. - - - - - Creates an instance of the type where this test method was found. If using - reflection, this should be the ReflectedType. - - A new instance of the type. - - - - Gets all the custom attributes for the method that are of the given type. - - The type of the attribute - The matching attributes that decorate the method - - - - Determines if the method has at least one instance of the given attribute type. - - The type of the attribute - True if the method has at least one instance of the given attribute type; false, otherwise - - - - Invokes the test on the given class, with the given parameters. - - The instance of the test class (may be null if - the test method is static). - The parameters to be passed to the test method. - - - - Gets a value which represents the class that this method was - reflected from (i.e., equivalent to MethodInfo.ReflectedType) - - - - - Gets a value indicating whether the method is abstract. - - - - - Gets a value indicating whether the method is static. - - - - - Gets the underlying for the method, if available. - - - - - Gets the name of the method. - - - - - Gets the fully qualified type name of the return type. - - - - - Gets the fully qualified type name of the type that this method belongs to. If - using reflection, this should be the ReflectedType. - - - - - Represents information about a type. - - - - - Gets all the custom attributes for the type that are of the given attribute type. - - The type of the attribute - The matching attributes that decorate the type - - - - Gets a test method by name. - - The name of the method - The method, if it exists; null, otherwise. - - - - Gets all the methods - - - - - - Determines if the type has at least one instance of the given attribute type. - - The type of the attribute - True if the type has at least one instance of the given attribute type; false, otherwise - - - - Determines if the type implements the given interface. - - The type of the interface - True if the type implements the given interface; false, otherwise - - - - Gets a value indicating whether the type is abstract. - - - - - Gets a value indicating whether the type is sealed. - - - - - Gets the underlying object, if available. - - - - - Utility class which inspects methods for test information - - - - - Gets the display name. - - The method to be inspected - The display name - - - - Gets the skip reason from a test method. - - The method to be inspected - The skip reason - - - - Gets the test commands for a test method. - - The method to be inspected - The objects for the test method - - - - Gets the timeout value for a test method. - - The method to be inspected - The timeout, in milliseconds - - - - Gets the traits on a test method. - - The method to be inspected - A dictionary of the traits - - - - Determines whether a test method has a timeout. - - The method to be inspected - True if the method has a timeout; false, otherwise - - - - Determines whether a test method has traits. - - The method to be inspected - True if the method has traits; false, otherwise - - - - Determines whether a test method should be skipped. - - The method to be inspected - True if the method should be skipped; false, otherwise - - - - Determines whether a method is a test method. A test method must be decorated - with the (or derived class) and must not be abstract. - - The method to be inspected - True if the method is a test method; false, otherwise - - - - Wrapper to implement and using reflection. - - - - - Converts an into an using reflection. - - - - - - - Converts a into an using reflection. - - The method to wrap - The wrapper - - - - Converts a into an using reflection. - - The type to wrap - The wrapper - - - - Utility class which inspects types for test information - - - - - Determines if a type contains any test methods - - The type to be inspected - True if the class contains any test methods; false, otherwise - - - - Retrieves the type to run the test class with from the , if present. - - The type to be inspected - The type of the test class runner, if present; null, otherwise - - - - Retrieves a list of the test methods from the test class. - - The type to be inspected - The test methods - - - - Determines if the test class has a applied to it. - - The type to be inspected - True if the test class has a run with attribute; false, otherwise - - - - Determines if the type implements . - - The type to be inspected - True if the type implements ; false, otherwise - - - - Determines whether the specified type is abstract. - - The type. - - true if the specified type is abstract; otherwise, false. - - - - - Determines whether the specified type is static. - - The type. - - true if the specified type is static; otherwise, false. - - - - - Determines if a class is a test class. - - The type to be inspected - True if the type is a test class; false, otherwise - - - - Attribute that is applied to a method to indicate that it is a fact that should be run - by the test runner. It can also be extended to support a customized definition of a - test method. - - - - - Creates instances of which represent individual intended - invocations of the test method. - - The method under test - An enumerator through the desired test method invocations - - - - Enumerates the test commands represented by this test method. Derived classes should - override this method to return instances of , one per execution - of a test method. - - The test method - The test commands which will execute the test runs for the given method - - - - Gets the name of the test to be used when the test is skipped. Defaults to - null, which will cause the fully qualified test name to be used. - - - - - Obsolete. Please use the property instead. - - - - - Marks the test so that it will not be run, and gets or sets the skip reason - - - - - Marks the test as failing if it does not finish running within the given time - period, in milliseconds; set to 0 or less to indicate the method has no timeout - - - - - Exception thrown when code unexpectedly fails to throw an exception. - - - - - Creates a new instance of the class. Call this constructor - when no exception was thrown. - - The type of the exception that was expected - - - - Creates a new instance of the class. Call this constructor - when an exception of the wrong type was thrown. - - The type of the exception that was expected - The actual exception that was thrown - - - - - - - THIS CONSTRUCTOR IS FOR UNIT TESTING PURPOSES ONLY. - - - - - - - - Gets a string representation of the frames on the call stack at the time the current exception was thrown. - - A string that describes the contents of the call stack, with the most recent method call appearing first. - - - - Exception thrown when a test method exceeds the given timeout value - - - - - Creates a new instance of the class. - - The timeout value, in milliseconds - - - - - - - Exception thrown when a value is unexpectedly false. - - - - - Creates a new instance of the class. - - The user message to be displayed, or null for the default message - - - - - - diff --git a/packages/xunit.1.9.0.1566/xunit.1.9.0.1566.nupkg b/packages/xunit.1.9.0.1566/xunit.1.9.0.1566.nupkg deleted file mode 100644 index 6fa93047b6b4279c4becaeea92e4dfd5cf19cfa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100229 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 T Date: Mon, 20 Nov 2023 09:29:30 -0500 Subject: [PATCH 04/49] Updated projects to .NET 4.7.2 --- .../Humpback.Interfaces.csproj | 7 ++-- Humpback.Smo/Humpback.Smo.csproj | 10 ++++-- Humpback.Tests/Humpback.Tests.csproj | 35 ++++++++++++++++--- Humpback.Tests/packages.config | 8 ++++- Humpback/Humpback.csproj | 14 +++++--- Humpback/app.config | 4 +-- 6 files changed, 62 insertions(+), 16 deletions(-) diff --git a/Humpback.Interfaces/Humpback.Interfaces.csproj b/Humpback.Interfaces/Humpback.Interfaces.csproj index a52fc7d..3c0db87 100644 --- a/Humpback.Interfaces/Humpback.Interfaces.csproj +++ b/Humpback.Interfaces/Humpback.Interfaces.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -10,8 +10,9 @@ Properties Humpback.Interfaces Humpback.Interfaces - v4.0 + v4.7.2 512 + true @@ -21,6 +22,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -29,6 +31,7 @@ TRACE prompt 4 + false diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index 0cb774b..113fe79 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -10,8 +10,9 @@ Properties Humpback.Smo Humpback.Smo - v4.0 + v4.7.2 512 + true @@ -21,6 +22,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -29,6 +31,7 @@ TRACE prompt 4 + false @@ -50,7 +53,8 @@ - xcopy $(TargetPath) $(SolutionDir)Humpback\Artifacts /Y + + \ No newline at end of file diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index 682c9e2..b1e2c6f 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -1,18 +1,17 @@  - + + Debug AnyCPU - 8.0.30703 - 2.0 - {347115FF-034F-4257-B873-88C4B6D42FDC} + {804678AE-B193-4A4E-ADE7-B02B66361F73} Library Properties Humpback.Smo Humpback.Smo v4.7.2 512 - + true @@ -24,7 +23,6 @@ DEBUG;TRACE prompt 4 - false pdbonly @@ -33,50 +31,49 @@ TRACE prompt 4 - false - - ..\packages\Azure.Core.1.25.0\lib\net461\Azure.Core.dll + + ..\packages\Azure.Core.1.36.0\lib\net472\Azure.Core.dll - - ..\packages\Azure.Identity.1.7.0\lib\netstandard2.0\Azure.Identity.dll + + ..\packages\Azure.Identity.1.10.4\lib\netstandard2.0\Azure.Identity.dll - - ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll - ..\packages\Microsoft.Data.SqlClient.5.1.1\lib\net462\Microsoft.Data.SqlClient.dll + ..\packages\Microsoft.Data.SqlClient.5.1.2\lib\net462\Microsoft.Data.SqlClient.dll ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.Data.Tools.Sql.BatchParser.dll - - ..\packages\Microsoft.Identity.Client.4.47.2\lib\net461\Microsoft.Identity.Client.dll + + ..\packages\Microsoft.Identity.Client.4.57.0\lib\net461\Microsoft.Identity.Client.dll - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.2.19.3\lib\net45\Microsoft.Identity.Client.Extensions.Msal.dll + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.57.0\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll - - ..\packages\Microsoft.IdentityModel.Abstractions.6.24.0\lib\net472\Microsoft.IdentityModel.Abstractions.dll + + ..\packages\Microsoft.IdentityModel.Abstractions.7.0.3\lib\net472\Microsoft.IdentityModel.Abstractions.dll - - ..\packages\Microsoft.IdentityModel.JsonWebTokens.6.24.0\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll + + ..\packages\Microsoft.IdentityModel.JsonWebTokens.7.0.3\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll - - ..\packages\Microsoft.IdentityModel.Logging.6.24.0\lib\net472\Microsoft.IdentityModel.Logging.dll + + ..\packages\Microsoft.IdentityModel.Logging.7.0.3\lib\net472\Microsoft.IdentityModel.Logging.dll - - ..\packages\Microsoft.IdentityModel.Protocols.6.24.0\lib\net472\Microsoft.IdentityModel.Protocols.dll + + ..\packages\Microsoft.IdentityModel.Protocols.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.dll - - ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.6.24.0\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll + + ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll - - ..\packages\Microsoft.IdentityModel.Tokens.6.24.0\lib\net472\Microsoft.IdentityModel.Tokens.dll + + ..\packages\Microsoft.IdentityModel.Tokens.7.0.3\lib\net472\Microsoft.IdentityModel.Tokens.dll - ..\packages\Microsoft.SqlServer.Assessment.1.1.9\lib\net462\Microsoft.SqlServer.Assessment.dll + ..\packages\Microsoft.SqlServer.Assessment.1.1.17\lib\net462\Microsoft.SqlServer.Assessment.dll ..\packages\Microsoft.SqlServer.Assessment.Authoring.1.1.0\lib\net462\Microsoft.SqlServer.Assessment.Types.dll @@ -157,7 +154,7 @@ ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.WmiEnum.dll - ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -165,29 +162,33 @@ - - ..\packages\System.Configuration.ConfigurationManager.6.0.1\lib\net461\System.Configuration.ConfigurationManager.dll + + ..\packages\System.Configuration.ConfigurationManager.8.0.0\lib\net462\System.Configuration.ConfigurationManager.dll - - ..\packages\System.Diagnostics.DiagnosticSource.6.0.0\lib\net461\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.8.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll + - - ..\packages\System.IdentityModel.Tokens.Jwt.6.24.0\lib\net472\System.IdentityModel.Tokens.Jwt.dll + + ..\packages\System.IdentityModel.Tokens.Jwt.7.0.3\lib\net472\System.IdentityModel.Tokens.Jwt.dll ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll True True - - ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + ..\packages\System.IO.FileSystem.AccessControl.5.0.0\lib\net461\System.IO.FileSystem.AccessControl.dll - - ..\packages\System.Memory.Data.1.0.2\lib\net461\System.Memory.Data.dll + + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + ..\packages\System.Memory.Data.8.0.0\lib\net462\System.Memory.Data.dll @@ -199,8 +200,8 @@ ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + + ..\packages\System.Runtime.4.3.1\lib\net462\System.Runtime.dll True True @@ -217,7 +218,7 @@ ..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll - ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + ..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net463\System.Security.Cryptography.Algorithms.dll True True @@ -231,26 +232,26 @@ True True - - ..\packages\System.Security.Cryptography.ProtectedData.4.7.0\lib\net461\System.Security.Cryptography.ProtectedData.dll + + ..\packages\System.Security.Cryptography.ProtectedData.8.0.0\lib\net462\System.Security.Cryptography.ProtectedData.dll - - ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll True True - - ..\packages\System.Security.Permissions.6.0.0\lib\net461\System.Security.Permissions.dll + + ..\packages\System.Security.Permissions.8.0.0\lib\net462\System.Security.Permissions.dll ..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll - - ..\packages\System.Text.Encodings.Web.6.0.0\lib\net461\System.Text.Encodings.Web.dll + + ..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll - - ..\packages\System.Text.Json.4.7.2\lib\net461\System.Text.Json.dll + + ..\packages\System.Text.Json.8.0.0\lib\net462\System.Text.Json.dll ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll @@ -268,9 +269,6 @@ - - Properties\SharedVersionInfo.cs - @@ -279,22 +277,11 @@ - - - - - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - \ No newline at end of file diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index 279a3a0..922ec36 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -1,13 +1,13 @@  - + + + + Debug AnyCPU - - - 2.0 - {0973A5D4-8B5B-4FFB-89E3-F8E42613D680} + {6E00DC4B-EF35-41F3-9553-CE3F867F6AE6} Library Properties Humpback.Tests @@ -15,7 +15,11 @@ v4.7.2 512 {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - + 15.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages + False + UnitTest @@ -27,7 +31,6 @@ DEBUG;TRACE prompt 4 - false pdbonly @@ -36,23 +39,39 @@ TRACE prompt 4 - false + + ..\packages\Microsoft.TestPlatform.ObjectModel.17.8.0\lib\net462\Microsoft.TestPlatform.CoreUtilities.dll + + + ..\packages\Microsoft.TestPlatform.ObjectModel.17.8.0\lib\net462\Microsoft.TestPlatform.PlatformAbstractions.dll + + + ..\packages\Microsoft.TestPlatform.ObjectModel.17.8.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll + + + ..\packages\MSTest.TestFramework.3.1.1\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll + + + ..\packages\MSTest.TestFramework.3.1.1\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll + + + ..\packages\NuGet.Frameworks.6.5.0\lib\net472\NuGet.Frameworks.dll + - - - 3.5 + + ..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll - - - - ..\packages\System.Data.SqlServerCe_unofficial.4.0.8482.1\lib\net20\System.Data.SqlServerCe.dll + + + + ..\packages\System.Reflection.Metadata.1.6.0\lib\netstandard2.0\System.Reflection.Metadata.dll - + + - ..\packages\xunit.abstractions.2.0.3\lib\net35\xunit.abstractions.dll @@ -67,14 +86,6 @@ - - False - - - - - Properties\SharedVersionInfo.cs - @@ -86,35 +97,35 @@ - + + - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1} + {15eadec7-be27-4334-ba95-0ff3f6bd8a78} Humpback.Interfaces - - - + + {e7feaf88-d6c7-4804-9950-e5f21c1d5811} + Humpback + - + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + - + \ No newline at end of file diff --git a/Humpback.sln b/Humpback.sln index a1615d6..a66dee5 100644 --- a/Humpback.sln +++ b/Humpback.sln @@ -1,76 +1,45 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.7.34221.43 +VisualStudioVersion = 17.8.34309.116 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humpback", "Humpback\Humpback.csproj", "{2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humpback", "Humpback\Humpback.csproj", "{E7FEAF88-D6C7-4804-9950-E5F21C1D5811}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humpback.Tests", "Humpback.Tests\Humpback.Tests.csproj", "{0973A5D4-8B5B-4FFB-89E3-F8E42613D680}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humpback.Interfaces", "Humpback.Interfaces\Humpback.Interfaces.csproj", "{15EADEC7-BE27-4334-BA95-0FF3F6BD8A78}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5CC74F4A-4CAA-4124-8FC2-8F7B6F17B6EA}" - ProjectSection(SolutionItems) = preProject - SharedVersionInfo.cs = SharedVersionInfo.cs - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humpback.Smo", "Humpback.Smo\Humpback.Smo.csproj", "{804678AE-B193-4A4E-ADE7-B02B66361F73}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humpback.Interfaces", "Humpback.Interfaces\Humpback.Interfaces.csproj", "{B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humpback.Tests", "Humpback.Tests\Humpback.Tests.csproj", "{6E00DC4B-EF35-41F3-9553-CE3F867F6AE6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humpback.Smo", "Humpback.Smo\Humpback.Smo.csproj", "{347115FF-034F-4257-B873-88C4B6D42FDC}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{90DAD459-602D-4E95-9231-65E6F75BFBEC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3}.Debug|Any CPU.ActiveCfg = Debug|x86 - {2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3}.Debug|x86.ActiveCfg = Debug|x86 - {2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3}.Debug|x86.Build.0 = Debug|x86 - {2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3}.Release|Any CPU.ActiveCfg = Release|x86 - {2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3}.Release|Mixed Platforms.Build.0 = Release|x86 - {2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3}.Release|x86.ActiveCfg = Release|x86 - {2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3}.Release|x86.Build.0 = Release|x86 - {0973A5D4-8B5B-4FFB-89E3-F8E42613D680}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0973A5D4-8B5B-4FFB-89E3-F8E42613D680}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0973A5D4-8B5B-4FFB-89E3-F8E42613D680}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {0973A5D4-8B5B-4FFB-89E3-F8E42613D680}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0973A5D4-8B5B-4FFB-89E3-F8E42613D680}.Debug|x86.ActiveCfg = Debug|Any CPU - {0973A5D4-8B5B-4FFB-89E3-F8E42613D680}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0973A5D4-8B5B-4FFB-89E3-F8E42613D680}.Release|Any CPU.Build.0 = Release|Any CPU - {0973A5D4-8B5B-4FFB-89E3-F8E42613D680}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {0973A5D4-8B5B-4FFB-89E3-F8E42613D680}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {0973A5D4-8B5B-4FFB-89E3-F8E42613D680}.Release|x86.ActiveCfg = Release|Any CPU - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1}.Debug|x86.ActiveCfg = Debug|Any CPU - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1}.Release|Any CPU.Build.0 = Release|Any CPU - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1}.Release|x86.ActiveCfg = Release|Any CPU - {347115FF-034F-4257-B873-88C4B6D42FDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {347115FF-034F-4257-B873-88C4B6D42FDC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {347115FF-034F-4257-B873-88C4B6D42FDC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {347115FF-034F-4257-B873-88C4B6D42FDC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {347115FF-034F-4257-B873-88C4B6D42FDC}.Debug|x86.ActiveCfg = Debug|Any CPU - {347115FF-034F-4257-B873-88C4B6D42FDC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {347115FF-034F-4257-B873-88C4B6D42FDC}.Release|Any CPU.Build.0 = Release|Any CPU - {347115FF-034F-4257-B873-88C4B6D42FDC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {347115FF-034F-4257-B873-88C4B6D42FDC}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {347115FF-034F-4257-B873-88C4B6D42FDC}.Release|x86.ActiveCfg = Release|Any CPU + {E7FEAF88-D6C7-4804-9950-E5F21C1D5811}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E7FEAF88-D6C7-4804-9950-E5F21C1D5811}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E7FEAF88-D6C7-4804-9950-E5F21C1D5811}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E7FEAF88-D6C7-4804-9950-E5F21C1D5811}.Release|Any CPU.Build.0 = Release|Any CPU + {15EADEC7-BE27-4334-BA95-0FF3F6BD8A78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15EADEC7-BE27-4334-BA95-0FF3F6BD8A78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15EADEC7-BE27-4334-BA95-0FF3F6BD8A78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15EADEC7-BE27-4334-BA95-0FF3F6BD8A78}.Release|Any CPU.Build.0 = Release|Any CPU + {804678AE-B193-4A4E-ADE7-B02B66361F73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {804678AE-B193-4A4E-ADE7-B02B66361F73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {804678AE-B193-4A4E-ADE7-B02B66361F73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {804678AE-B193-4A4E-ADE7-B02B66361F73}.Release|Any CPU.Build.0 = Release|Any CPU + {6E00DC4B-EF35-41F3-9553-CE3F867F6AE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E00DC4B-EF35-41F3-9553-CE3F867F6AE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E00DC4B-EF35-41F3-9553-CE3F867F6AE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E00DC4B-EF35-41F3-9553-CE3F867F6AE6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(TestCaseManagementSettings) = postSolution - CategoryFile = Humpback.vsmdi + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {86269D65-173C-4EC3-A223-D17F1D9C4956} EndGlobalSection EndGlobal diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index b8bc9ec..c58122e 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -1,20 +1,17 @@  - + + Debug - x86 - 8.0.30703 - 2.0 - {2EA42E6C-D69E-46DD-AA57-5BDC47B1AFF3} + AnyCPU + {E7FEAF88-D6C7-4804-9950-E5F21C1D5811} Exe - Properties Humpback - Hump + Humpback v4.7.2 512 - - - + true + true AnyCPU @@ -25,7 +22,6 @@ DEBUG;TRACE prompt 4 - false AnyCPU @@ -35,295 +31,53 @@ TRACE prompt 4 - false - - ..\packages\Azure.Core.1.25.0\lib\net461\Azure.Core.dll - - - ..\packages\Azure.Identity.1.7.0\lib\netstandard2.0\Azure.Identity.dll - - - ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - - ..\packages\Microsoft.Data.SqlClient.5.1.1\lib\net462\Microsoft.Data.SqlClient.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.Data.Tools.Sql.BatchParser.dll - - - ..\packages\Microsoft.Identity.Client.4.47.2\lib\net461\Microsoft.Identity.Client.dll - - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.2.19.3\lib\net45\Microsoft.Identity.Client.Extensions.Msal.dll - - - ..\packages\Microsoft.IdentityModel.Abstractions.6.24.0\lib\net472\Microsoft.IdentityModel.Abstractions.dll - - - ..\packages\Microsoft.IdentityModel.JsonWebTokens.6.24.0\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll - - - ..\packages\Microsoft.IdentityModel.Logging.6.24.0\lib\net472\Microsoft.IdentityModel.Logging.dll - - - ..\packages\Microsoft.IdentityModel.Protocols.6.24.0\lib\net472\Microsoft.IdentityModel.Protocols.dll - - - ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.6.24.0\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll - - - ..\packages\Microsoft.IdentityModel.Tokens.6.24.0\lib\net472\Microsoft.IdentityModel.Tokens.dll - - - ..\packages\Microsoft.SqlServer.Assessment.1.1.9\lib\net462\Microsoft.SqlServer.Assessment.dll - - - ..\packages\Microsoft.SqlServer.Assessment.Authoring.1.1.0\lib\net462\Microsoft.SqlServer.Assessment.Types.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.ConnectionInfo.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Dmf.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Dmf.Common.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.Assessment.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.Collector.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.CollectorEnum.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.HadrData.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.HadrModel.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.RegisteredServers.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.Sdk.Sfc.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.SqlScriptPublish.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.XEvent.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScoped.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScopedEnum.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.XEventEnum.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.PolicyEnum.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.RegSvrEnum.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.ServiceBrokerEnum.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Smo.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Smo.Notebook.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.SmoExtended.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.SqlClrProvider.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.SqlEnum.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.SqlWmiManagement.dll - - - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.WmiEnum.dll - - - ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - - ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - - - - - ..\packages\System.Configuration.ConfigurationManager.6.0.1\lib\net461\System.Configuration.ConfigurationManager.dll - - - - ..\packages\System.Diagnostics.DiagnosticSource.6.0.0\lib\net461\System.Diagnostics.DiagnosticSource.dll - - - - - ..\packages\System.IdentityModel.Tokens.Jwt.6.24.0\lib\net472\System.IdentityModel.Tokens.Jwt.dll - - - ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll - True - True - - - ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - - - ..\packages\System.Memory.Data.1.0.2\lib\net461\System.Memory.Data.dll - - - - ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll - True - True - - - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll - True - True - - - ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll - True - True - - - - ..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll - - - ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll - True - True - - - ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll - True - True - - - ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll - True - True - - - ..\packages\System.Security.Cryptography.ProtectedData.4.7.0\lib\net461\System.Security.Cryptography.ProtectedData.dll - - - ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll - True - True - - - ..\packages\System.Security.Permissions.6.0.0\lib\net461\System.Security.Permissions.dll - - - ..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll - - - - ..\packages\System.Text.Encodings.Web.6.0.0\lib\net461\System.Text.Encodings.Web.dll - - - ..\packages\System.Text.Json.4.7.2\lib\net461\System.Text.Json.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - - ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll - - + + - - - Properties\SharedVersionInfo.cs - + - - - - + - + + + + - + + + - {B830E3E4-3942-48BB-97A8-3E9BB0E9F1E1} + {15eadec7-be27-4334-ba95-0ff3f6bd8a78} Humpback.Interfaces - {347115ff-034f-4257-b873-88c4b6d42fdc} + {804678ae-b193-4a4e-ade7-b02b66361f73} Humpback.Smo - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - \ No newline at end of file From da74d464726491f2ad693b315fa4becd458e40a7 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 20 Nov 2023 16:57:32 -0500 Subject: [PATCH 14/49] Removed accessor --- Humpback.Tests/Test References/Hump.accessor | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 Humpback.Tests/Test References/Hump.accessor diff --git a/Humpback.Tests/Test References/Hump.accessor b/Humpback.Tests/Test References/Hump.accessor deleted file mode 100644 index c6ec315..0000000 --- a/Humpback.Tests/Test References/Hump.accessor +++ /dev/null @@ -1,2 +0,0 @@ -Hump.exe -Desktop From e8a14db2e53c0b57b62126ad833034d481006b89 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 20 Nov 2023 16:58:44 -0500 Subject: [PATCH 15/49] updated app.config and repositories.config --- Humpback.Smo/app.config | 64 ++++++++++++++++++-- Humpback.Smo/packages.config | 55 +++++++++--------- Humpback.Tests/app.config | 103 +++++++++++++++++++++++++++++++++ Humpback.Tests/packages.config | 9 ++- Humpback/app.config | 73 ++++++++++++++++++++--- Humpback/packages.config | 45 -------------- packages/repositories.config | 4 -- 7 files changed, 263 insertions(+), 90 deletions(-) create mode 100644 Humpback.Tests/app.config delete mode 100644 Humpback/packages.config delete mode 100644 packages/repositories.config diff --git a/Humpback.Smo/app.config b/Humpback.Smo/app.config index 5862501..04ae3ba 100644 --- a/Humpback.Smo/app.config +++ b/Humpback.Smo/app.config @@ -4,11 +4,11 @@ - + - + @@ -24,7 +24,7 @@ - + @@ -36,12 +36,68 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Humpback.Smo/packages.config b/Humpback.Smo/packages.config index 72b0600..79089a4 100644 --- a/Humpback.Smo/packages.config +++ b/Humpback.Smo/packages.config @@ -1,45 +1,46 @@  - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - + + + - - + + + - + - + - - - + + + - - + + \ No newline at end of file diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config new file mode 100644 index 0000000..04ae3ba --- /dev/null +++ b/Humpback.Tests/app.config @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Humpback.Tests/packages.config b/Humpback.Tests/packages.config index 7389c46..0fad1ea 100644 --- a/Humpback.Tests/packages.config +++ b/Humpback.Tests/packages.config @@ -1,6 +1,12 @@  - + + + + + + + @@ -8,4 +14,5 @@ + \ No newline at end of file diff --git a/Humpback/app.config b/Humpback/app.config index 0afbcb0..5e8cb32 100644 --- a/Humpback/app.config +++ b/Humpback/app.config @@ -1,18 +1,17 @@  - - - + + + - - + - + @@ -28,7 +27,7 @@ - + @@ -40,12 +39,68 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/Humpback/packages.config b/Humpback/packages.config deleted file mode 100644 index 72b0600..0000000 --- a/Humpback/packages.config +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/repositories.config b/packages/repositories.config deleted file mode 100644 index e305eb2..0000000 --- a/packages/repositories.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file From 5ab19a8bb9f629c560f937ec4ee2efdd11223fc1 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 20 Nov 2023 17:02:39 -0500 Subject: [PATCH 16/49] Added shared assembly info --- Humpback.Interfaces/Properties/AssemblyInfo.cs | 8 ++++---- Humpback.Smo/Properties/AssemblyInfo.cs | 8 ++++---- Humpback.Tests/Properties/AssemblyInfo.cs | 12 ++---------- Humpback.sln | 3 +++ Humpback/Properties/AssemblyInfo.cs | 8 ++++---- 5 files changed, 17 insertions(+), 22 deletions(-) diff --git a/Humpback.Interfaces/Properties/AssemblyInfo.cs b/Humpback.Interfaces/Properties/AssemblyInfo.cs index a36551c..72aac81 100644 --- a/Humpback.Interfaces/Properties/AssemblyInfo.cs +++ b/Humpback.Interfaces/Properties/AssemblyInfo.cs @@ -1,7 +1,7 @@ using System.Reflection; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following +// General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Humpback.Interfaces")] @@ -13,10 +13,10 @@ [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("11266294-df7c-4416-8aae-9f9290fc8382")] +[assembly: Guid("15eadec7-be27-4334-ba95-0ff3f6bd8a78")] diff --git a/Humpback.Smo/Properties/AssemblyInfo.cs b/Humpback.Smo/Properties/AssemblyInfo.cs index e5b89c8..2142a86 100644 --- a/Humpback.Smo/Properties/AssemblyInfo.cs +++ b/Humpback.Smo/Properties/AssemblyInfo.cs @@ -1,7 +1,7 @@ using System.Reflection; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following +// General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Humpback.Smo")] @@ -13,10 +13,10 @@ [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("9265f0fb-a77c-4dd8-b1ec-c3ee8834c3fa")] +[assembly: Guid("804678ae-b193-4a4e-ade7-b02b66361f73")] diff --git a/Humpback.Tests/Properties/AssemblyInfo.cs b/Humpback.Tests/Properties/AssemblyInfo.cs index 779cde4..34c76a4 100644 --- a/Humpback.Tests/Properties/AssemblyInfo.cs +++ b/Humpback.Tests/Properties/AssemblyInfo.cs @@ -1,10 +1,6 @@ -using System.Reflection; -using System.Runtime.CompilerServices; +using System.Reflection; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. [assembly: AssemblyTitle("Humpback.Tests")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] @@ -14,10 +10,6 @@ [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("43ea995a-767b-499d-9628-3566ac6b60fc")] \ No newline at end of file +[assembly: Guid("6e00dc4b-ef35-41f3-9553-ce3f867f6ae6")] \ No newline at end of file diff --git a/Humpback.sln b/Humpback.sln index a66dee5..cae0c39 100644 --- a/Humpback.sln +++ b/Humpback.sln @@ -12,6 +12,9 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humpback.Tests", "Humpback.Tests\Humpback.Tests.csproj", "{6E00DC4B-EF35-41F3-9553-CE3F867F6AE6}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{90DAD459-602D-4E95-9231-65E6F75BFBEC}" + ProjectSection(SolutionItems) = preProject + SharedVersionInfo.cs = SharedVersionInfo.cs + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Humpback/Properties/AssemblyInfo.cs b/Humpback/Properties/AssemblyInfo.cs index 3febc3e..ebd73e9 100644 --- a/Humpback/Properties/AssemblyInfo.cs +++ b/Humpback/Properties/AssemblyInfo.cs @@ -1,7 +1,7 @@ using System.Reflection; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following +// General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Humpback")] @@ -13,10 +13,10 @@ [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("fbe207ef-760f-40d3-9821-604602de11de")] \ No newline at end of file +[assembly: Guid("e7feaf88-d6c7-4804-9950-e5f21c1d5811")] \ No newline at end of file From b53bb027b16eddb4b90782650fee0276e24f0725 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 20 Nov 2023 17:04:13 -0500 Subject: [PATCH 17/49] Added a default path for notepad.exe to fall back on. --- Humpback/Parts/SourceEditor.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Humpback/Parts/SourceEditor.cs b/Humpback/Parts/SourceEditor.cs index 5dcc83c..c293d5f 100644 --- a/Humpback/Parts/SourceEditor.cs +++ b/Humpback/Parts/SourceEditor.cs @@ -67,6 +67,12 @@ public static void OpenFileInDefaultEditor(string fileName) { Console.WriteLine("Opening {0} in the default editor.", fileName); var text_editor = (string)Registry.GetValue(@"HKEY_CLASSES_ROOT\txtfile\shell\open\command\", "", "notepad.exe"); + if (string.IsNullOrEmpty(text_editor) || !File.Exists(text_editor)) + { + string windowsDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Windows); + text_editor = Path.Combine(windowsDirectory, "notepad.exe"); + } + text_editor = text_editor.Replace("\"%1\"", "").Trim(); System.Diagnostics.Process.Start(text_editor, fileName); } From 74ddecb4f40370ad12a41ebb34f29d304896af92 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 20 Nov 2023 17:07:02 -0500 Subject: [PATCH 18/49] Updated database provider. --- .gitignore | 1 + Humpback/Humpback.csproj | 2 +- ...LCEDatabaseProvider.cs => HumbackDatabaseProvider.cs} | 9 +++++---- 3 files changed, 7 insertions(+), 5 deletions(-) rename Humpback/Parts/{SQLCEDatabaseProvider.cs => HumbackDatabaseProvider.cs} (93%) diff --git a/.gitignore b/.gitignore index f089311..1423320 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ _ReSharper.* /Humpback.Smo/.vs /Humpback/.vs /MigrationBackup +/Humpback.Interfaces/.vs diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index c58122e..733790d 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -59,7 +59,7 @@ - + diff --git a/Humpback/Parts/SQLCEDatabaseProvider.cs b/Humpback/Parts/HumbackDatabaseProvider.cs similarity index 93% rename from Humpback/Parts/SQLCEDatabaseProvider.cs rename to Humpback/Parts/HumbackDatabaseProvider.cs index 476ad27..c995c6d 100644 --- a/Humpback/Parts/SQLCEDatabaseProvider.cs +++ b/Humpback/Parts/HumbackDatabaseProvider.cs @@ -1,23 +1,24 @@ using Humpback.ConfigurationOptions; using Humpback.Interfaces; using System; +using System.Data.SqlClient; namespace Humpback.Parts { - public class SQLCEDatabaseProvider : IDatabaseProvider + public class HumpbackDatabaseProvider : IDatabaseProvider { private Configuration _configuration; private Settings _settings; private ISqlFormatter _sql_formatter; - private SqlCeConnection GetOpenConnection() + private SqlConnection GetOpenConnection() { - var rv = new SqlCeConnection(_settings.ConnectionString()); + var rv = new SqlConnection(_settings.ConnectionString()); rv.Open(); return rv; } - public SQLCEDatabaseProvider(Configuration configuration, Settings settings, ISqlFormatter sql_formatter) + public HumpbackDatabaseProvider(Configuration configuration, Settings settings, ISqlFormatter sql_formatter) { _configuration = configuration; _settings = settings; From 38a65c13693dbdbc8713048ae20394e3ccd7144a Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 20 Nov 2023 17:08:05 -0500 Subject: [PATCH 19/49] Standard grammer update. --- Humpback.Tests/ConfigurationTest.cs | 132 +++++++++++------- Humpback.Tests/DynamicTests.cs | 27 ++-- Humpback.Tests/GeneratorTest.cs | 75 ++++++---- Humpback.Tests/Impl/TestFileWriter.cs | 18 ++- .../Impl/TestSQLDatabaseProvider.cs | 64 +++++---- Humpback.Tests/SQLGeneratorTests.cs | 31 ++-- Humpback.Tests/SQLServerFormatterTest.cs | 125 +++++++++++------ Humpback.Tests/TestHelpers.cs | 26 ++-- 8 files changed, 308 insertions(+), 190 deletions(-) diff --git a/Humpback.Tests/ConfigurationTest.cs b/Humpback.Tests/ConfigurationTest.cs index a751386..25d99c8 100644 --- a/Humpback.Tests/ConfigurationTest.cs +++ b/Humpback.Tests/ConfigurationTest.cs @@ -1,22 +1,24 @@ -using System.Linq; -using Humpback.ConfigurationOptions; +using Humpback.ConfigurationOptions; using System; +using System.Linq; using Xunit; namespace Humpback.Tests { - - public class ConfigurationTest { + + public class ConfigurationTest + { /// ///A test for Configuration Constructor /// [Fact] - public void ConfigurationConstructorTestNullConstructorParam() { + public void ConfigurationConstructorTestNullConstructorParam() + { string[] options = null; // TODO: Initialize to an appropriate value Configuration target = new Configuration(options); Assert.True(target.WriteHelp); - Assert.Equal(0,target.MigrateToVersion); + Assert.Equal(0, target.MigrateToVersion); } @@ -24,7 +26,8 @@ public void ConfigurationConstructorTestNullConstructorParam() { ///A test for Configuration Constructor /// [Fact] - public void ConfigurationConstructorTestDefaultConstructor() { + public void ConfigurationConstructorTestDefaultConstructor() + { Configuration target = new Configuration(); Assert.True(target.WriteHelp); Assert.Equal(0, target.MigrateToVersion); @@ -35,27 +38,32 @@ public void ConfigurationConstructorTestDefaultConstructor() { ///A test for Help /// [Fact] - public void HelpTestDash() { - var target = new Configuration(new[]{"-?"}); + public void HelpTestDash() + { + var target = new Configuration(new[] { "-?" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpTest_h() { + public void HelpTest_h() + { var target = new Configuration(new[] { "-h" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpTest_H() { + public void HelpTest_H() + { var target = new Configuration(new[] { "-H" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpTest_HELP() { + public void HelpTest_HELP() + { var target = new Configuration(new[] { "-HELP" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpTest_help() { + public void HelpTest_help() + { var target = new Configuration(new[] { "-help" }); Assert.True(target.WriteHelp); } @@ -64,48 +72,57 @@ public void HelpTest_help() { ///A test for HelpModifier /// [Fact] - public void HelpModifierTest_Run() { + public void HelpModifierTest_Run() + { var target = new Configuration(new[] { "-?", "Migrate" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpModifierTest_RUN() { + public void HelpModifierTest_RUN() + { var target = new Configuration(new[] { "-?", "MIGRATE" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpModifierTest_List() { + public void HelpModifierTest_List() + { var target = new Configuration(new[] { "-?", "List" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpModifierTest_Generate() { + public void HelpModifierTest_Generate() + { var target = new Configuration(new[] { "-?", "Generate" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpModifierTest_Sql() { + public void HelpModifierTest_Sql() + { var target = new Configuration(new[] { "-?", "Sql" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpModifierTest_R() { + public void HelpModifierTest_R() + { var target = new Configuration(new[] { "-?", "M" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpModifierTest_L() { + public void HelpModifierTest_L() + { var target = new Configuration(new[] { "-?", "L" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpModifierTest_G() { - var target = new Configuration(new[] { "-?","G" }); + public void HelpModifierTest_G() + { + var target = new Configuration(new[] { "-?", "G" }); Assert.True(target.WriteHelp); } [Fact] - public void HelpModifierTest_S_and_Ensure_Run_Off() { + public void HelpModifierTest_S_and_Ensure_Run_Off() + { var target = new Configuration(new[] { "-?", "S" }); Assert.True(target.WriteHelp); Assert.False(target.Migrate); @@ -113,19 +130,22 @@ public void HelpModifierTest_S_and_Ensure_Run_Off() { [Fact] - public void BasicSqlTest() { + public void BasicSqlTest() + { Configuration target = new Configuration(new[] { "-S" }); Assert.True(target.Sql); } [Fact] - public void BasicSqlTest2() { + public void BasicSqlTest2() + { Configuration target = new Configuration(new[] { "--Sql" }); Assert.True(target.Sql); Assert.False(target.WriteHelp); Assert.False(target.Migrate); } [Fact] - public void BasicSqlTest3() { + public void BasicSqlTest3() + { Configuration target = new Configuration(new[] { "/Sql" }); Assert.True(target.Sql); Assert.False(target.WriteHelp); @@ -135,18 +155,23 @@ public void BasicSqlTest3() { } [Fact] - public void BasicGenerateErrorTest() { - try { - Configuration target = new Configuration(new[] {"-G"}); + public void BasicGenerateErrorTest() + { + try + { + Configuration target = new Configuration(new[] { "-G" }); Assert.True(false, "Configuration should have failed"); - } catch (Exception ex) { + } + catch (Exception ex) + { Assert.NotNull(ex); } } [Fact] - public void BasicGenerateTest() { - Configuration target = new Configuration(new[] { "-G","AddMyMigration" }); + public void BasicGenerateTest() + { + Configuration target = new Configuration(new[] { "-G", "AddMyMigration" }); Assert.True(target.Generate); Assert.False(target.WriteHelp); Assert.False(target.Migrate); @@ -154,26 +179,29 @@ public void BasicGenerateTest() { } [Fact] - public void GenerateTest() { + public void GenerateTest() + { Configuration target = new Configuration(new[] { "-G", "table", "first_name:string", "last_name:string" }); Assert.True(target.Generate); Assert.False(target.WriteHelp); Assert.False(target.Migrate); Assert.False(target.List); - Console.WriteLine(String.Join("|",target.Extra.ToArray())); + Console.WriteLine(String.Join("|", target.Extra.ToArray())); Assert.NotNull(target.Extra); Assert.True(target.Extra.Count() > 0); } [Fact] - public void GenerateTest_CreateTable() { + public void GenerateTest_CreateTable() + { Configuration target = new Configuration(new[] { "--G", "users", "first_name:string", "last_name" }); Assert.True(target.Generate); - Assert.Equal("users", target.GenerateString); + Assert.Equal("users", target.GenerateString); } [Fact] - public void GenerateTest_ModifyTable() { + public void GenerateTest_ModifyTable() + { Configuration target = new Configuration(new[] { "--G", "AddAgeToUsers", "first_name:string", "last_name" }); Assert.True(target.Generate); Assert.Equal("AddAgeToUsers", target.GenerateString); @@ -181,7 +209,8 @@ public void GenerateTest_ModifyTable() { [Fact] - public void BasicListTest() { + public void BasicListTest() + { Configuration target = new Configuration(new[] { "-List" }); Assert.True(target.List); Assert.False(target.WriteHelp); @@ -189,7 +218,8 @@ public void BasicListTest() { Assert.False(target.Generate); } [Fact] - public void BasicRunTest() { + public void BasicRunTest() + { Configuration target = new Configuration(new[] { "-m" }); Assert.True(target.Migrate); Assert.False(target.WriteHelp); @@ -199,7 +229,8 @@ public void BasicRunTest() { [Fact] - public void EnvironmentTest() { + public void EnvironmentTest() + { Configuration target = new Configuration(new[] { "-e" }); Assert.True(target.Env); Assert.False(target.WriteHelp); @@ -208,7 +239,8 @@ public void EnvironmentTest() { } [Fact] - public void EnvironmentTestSet() { + public void EnvironmentTestSet() + { Configuration target = new Configuration(new[] { "-e", "-set", "name" }); Assert.True(target.Env); Assert.Equal(target.set_current_settings, "name"); @@ -216,14 +248,16 @@ public void EnvironmentTestSet() { [Fact] - public void EnvironmentTestAdd() { + public void EnvironmentTestAdd() + { Configuration target = new Configuration(new[] { "-e", "-add", "name" }); Assert.True(target.Env); Assert.Equal(target.new_project_name, "name"); } [Fact] - public void EnvironmentTestRemove() { + public void EnvironmentTestRemove() + { Configuration target = new Configuration(new[] { "-e", "-remove", "name" }); Assert.True(target.Env); Assert.Equal(target.remove_project_name, "name"); @@ -231,28 +265,32 @@ public void EnvironmentTestRemove() { [Fact] - public void EnvironmentTestRename() { + public void EnvironmentTestRename() + { Configuration target = new Configuration(new[] { "-e", "-rename", "name" }); Assert.True(target.Env); Assert.Equal(target.settings_rename, "name"); } [Fact] - public void EnvironmentTestDir() { + public void EnvironmentTestDir() + { Configuration target = new Configuration(new[] { "-e", "-dir", "name" }); Assert.True(target.Env); Assert.Equal(target.settings_dir, "name"); } [Fact] - public void EnvironmentTestConnectionString() { + public void EnvironmentTestConnectionString() + { Configuration target = new Configuration(new[] { "-e", "-cs", "name" }); Assert.True(target.Env); Assert.Equal(target.settings_cs, "name"); } [Fact] - public void EnvironmentTestFlavor() { + public void EnvironmentTestFlavor() + { Configuration target = new Configuration(new[] { "-e", "-flavor", "name" }); Assert.True(target.Env); Assert.Equal(target.settings_flavor, "name"); diff --git a/Humpback.Tests/DynamicTests.cs b/Humpback.Tests/DynamicTests.cs index b072c14..84569d2 100644 --- a/Humpback.Tests/DynamicTests.cs +++ b/Humpback.Tests/DynamicTests.cs @@ -1,25 +1,25 @@ using System; -using System.Text; -using System.Collections.Generic; -using System.Linq; -using Humpback.Parts; using Xunit; -namespace Humpback.Tests { - public class DynamicTests { +namespace Humpback.Tests +{ + public class DynamicTests + { [Fact] - public void TestForArray() { + public void TestForArray() + { //dynamic d = new { name = "jason", things = new{val="stuff"} }; // throws error testing for Length property - dynamic e = new { name = "jason", things = new[]{"stuff","morestuff"} }; + dynamic e = new { name = "jason", things = new[] { "stuff", "morestuff" } }; Assert.NotNull(e.things.Length); } [Fact] - public void TestForArrayOnString() { + public void TestForArrayOnString() + { //dynamic d = new { name = "jason", things = new{val="stuff"} }; // throws error testing for Length property dynamic e = new { name = "jason", things = new[] { "stuff", "morestuff" } }; @@ -28,7 +28,8 @@ public void TestForArrayOnString() { } [Fact] - public void TestForString() { + public void TestForString() + { //dynamic d = new { name = "jason", things = new{val="stuff"} }; // throws error testing for Length property dynamic e = new { name = "jason", things = new[] { "stuff", "morestuff" } }; @@ -37,7 +38,8 @@ public void TestForString() { } [Fact] - public void TestForStringOnArray() { + public void TestForStringOnArray() + { //dynamic d = new { name = "jason", things = new{val="stuff"} }; // throws error testing for Length property dynamic e = new { name = "jason", things = new[] { "stuff", "morestuff" } }; @@ -46,7 +48,8 @@ public void TestForStringOnArray() { } [Fact] - public void TestForTypeOfArray() { + public void TestForTypeOfArray() + { //dynamic d = new { name = "jason", things = new{val="stuff"} }; // throws error testing for Length property dynamic e = new { name = new { name2 = "jason" }, things = new[] { new { name2 = "jason" }, new { name2 = "jason" } } }; diff --git a/Humpback.Tests/GeneratorTest.cs b/Humpback.Tests/GeneratorTest.cs index 12a4deb..e90ccc8 100644 --- a/Humpback.Tests/GeneratorTest.cs +++ b/Humpback.Tests/GeneratorTest.cs @@ -1,18 +1,18 @@ -using Humpback.Parts; +using Humpback.ConfigurationOptions; +using Humpback.Parts; using Humpback.Tests.Impl; -using System; -using Humpback.ConfigurationOptions; -using Humpback; -using System.Collections.Generic; using Xunit; namespace Humpback.Tests { - - public class GeneratorTest { - private static Settings Settings { - get { + public class GeneratorTest + { + + private static Settings Settings + { + get + { return TestHelpers.TestSettings; } @@ -21,9 +21,10 @@ private static Settings Settings { ///A test for Generator /// [Fact] - public void GeneratorAddTableNoColumnsSpecified() { - Configuration configuration = new Configuration(new[] { "-g","Users" }); - TestFileWriter file_writer = new TestFileWriter(); + public void GeneratorAddTableNoColumnsSpecified() + { + Configuration configuration = new Configuration(new[] { "-g", "Users" }); + TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); target.Execute(); Assert.True(file_writer.FileName.Contains("Users")); @@ -32,7 +33,8 @@ public void GeneratorAddTableNoColumnsSpecified() { } [Fact] - public void GeneratorAddTable1Column() { + public void GeneratorAddTable1Column() + { Configuration configuration = new Configuration(new[] { "-g", "Users", "first_name:string" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -47,7 +49,8 @@ public void GeneratorAddTable1Column() { } [Fact] - public void GeneratorAddTableMultipleColumn() { + public void GeneratorAddTableMultipleColumn() + { Configuration configuration = new Configuration(new[] { "-g", "Users", "first_name:string", "last_name:string" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -62,7 +65,8 @@ public void GeneratorAddTableMultipleColumn() { Assert.True(file_writer.FileContents.Contains("full_audit")); } [Fact] - public void GeneratorAddTableMultipleColumnWithNullable() { + public void GeneratorAddTableMultipleColumnWithNullable() + { Configuration configuration = new Configuration(new[] { "-g", "Users", "first_name:string:false", "last_name:string:true:'welty'" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -80,7 +84,8 @@ public void GeneratorAddTableMultipleColumnWithNullable() { } [Fact] - public void GeneratorDropTable() { + public void GeneratorDropTable() + { Configuration configuration = new Configuration(new[] { "-g", "DropUsers" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -93,7 +98,8 @@ public void GeneratorDropTable() { } [Fact] - public void GeneratorRemoveColumn() { + public void GeneratorRemoveColumn() + { Configuration configuration = new Configuration(new[] { "-g", "Removefirst_nameFromUsers" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -108,7 +114,8 @@ public void GeneratorRemoveColumn() { ///A test for AddColumn /// [Fact] - public void GeneratorAddSingleColumnTest() { + public void GeneratorAddSingleColumnTest() + { Configuration configuration = new Configuration(new[] { "-g", "addfirst_nametoUsers" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -121,7 +128,8 @@ public void GeneratorAddSingleColumnTest() { } [Fact] - public void GeneratorAddSingleColumnTest_Escaped_To() { + public void GeneratorAddSingleColumnTest_Escaped_To() + { Configuration configuration = new Configuration(new[] { "-g", "addcustomer_name_to_Users" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -134,7 +142,8 @@ public void GeneratorAddSingleColumnTest_Escaped_To() { } [Fact] - public void GeneratorAddSingleColumnTestDuplicateTo() { + public void GeneratorAddSingleColumnTestDuplicateTo() + { Configuration configuration = new Configuration(new[] { "-g", "addcustomernametoUsers" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -143,7 +152,8 @@ public void GeneratorAddSingleColumnTestDuplicateTo() { } [Fact] - public void GeneratorAddMultipleColumnTest() { + public void GeneratorAddMultipleColumnTest() + { Configuration configuration = new Configuration(new[] { "-g", "addfirst_nametoUsers", "first_name:string", "last_name:string" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -158,7 +168,8 @@ public void GeneratorAddMultipleColumnTest() { [Fact] - public void GeneratorAddReferenceColumnTest() { + public void GeneratorAddReferenceColumnTest() + { Configuration configuration = new Configuration(new[] { "-g", "AddUserToOrders", "User:reference" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -176,7 +187,8 @@ public void GeneratorAddReferenceColumnTest() { ///A test for AddColumn /// [Fact] - public void GeneratorChangeSingleColumnTest() { + public void GeneratorChangeSingleColumnTest() + { Configuration configuration = new Configuration(new[] { "-g", "ChangeUsers", "first_name:string" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -189,7 +201,8 @@ public void GeneratorChangeSingleColumnTest() { Assert.True(file_writer.FileContents.Contains("down")); } [Fact] - public void GeneratorChangeMultipleColumnTest() { + public void GeneratorChangeMultipleColumnTest() + { Configuration configuration = new Configuration(new[] { "-g", "ChangeUsers", "first_name:string", "last_name:string" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -206,7 +219,8 @@ public void GeneratorChangeMultipleColumnTest() { ///A test for AddIndex /// [Fact] - public void GeneratorAddIndexTest() { + public void GeneratorAddIndexTest() + { Configuration configuration = new Configuration(new[] { "-g", "addindextoUsers", "first_name", "last_name" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -219,7 +233,8 @@ public void GeneratorAddIndexTest() { Assert.True(file_writer.FileContents.Contains("last_name")); } [Fact] - public void GeneratorDropIndexTest() { + public void GeneratorDropIndexTest() + { Configuration configuration = new Configuration(new[] { "-g", "removeindexfromUsers", "first_name", "last_name" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -236,7 +251,8 @@ public void GeneratorDropIndexTest() { ///A test for File /// [Fact] - public void GeneratorFileTest() { + public void GeneratorFileTest() + { Configuration configuration = new Configuration(new[] { "-g", "File", "mysqlfile" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); @@ -245,7 +261,7 @@ public void GeneratorFileTest() { Assert.True(file_writer.FileContents.Contains("file")); Assert.True(file_writer.FileContents.Contains("mysqlfile")); Assert.True(file_writer.FileContents.Contains("up")); - + } @@ -253,7 +269,8 @@ public void GeneratorFileTest() { ///A test for Raw SQL /// [Fact] - public void GeneratorSqlTest() { + public void GeneratorSqlTest() + { Configuration configuration = new Configuration(new[] { "-g", "SQL", "CREATE TABLE Users (ID {pk}, first_name {string} NOT NULL, price_paid {money})" }); TestFileWriter file_writer = new TestFileWriter(); IHumpbackCommand target = new Generator(configuration, Settings, file_writer); diff --git a/Humpback.Tests/Impl/TestFileWriter.cs b/Humpback.Tests/Impl/TestFileWriter.cs index a573e70..cf147ce 100644 --- a/Humpback.Tests/Impl/TestFileWriter.cs +++ b/Humpback.Tests/Impl/TestFileWriter.cs @@ -1,20 +1,24 @@ -using System; -using Humpback.Interfaces; +using Humpback.Interfaces; +using System; -namespace Humpback.Tests.Impl { - public class TestFileWriter:IFileWriter { - public void WriteFile(string path, string contents) { +namespace Humpback.Tests.Impl +{ + public class TestFileWriter : IFileWriter + { + public void WriteFile(string path, string contents) + { FileContents += contents; FileName += path; Console.WriteLine(path); } - public bool FileExists(string path) { + public bool FileExists(string path) + { return false; } public string FileName { get; private set; } public string FileContents { get; private set; } - + } } diff --git a/Humpback.Tests/Impl/TestSQLDatabaseProvider.cs b/Humpback.Tests/Impl/TestSQLDatabaseProvider.cs index 48c4ed7..52e6f28 100644 --- a/Humpback.Tests/Impl/TestSQLDatabaseProvider.cs +++ b/Humpback.Tests/Impl/TestSQLDatabaseProvider.cs @@ -1,17 +1,17 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Humpback.ConfigurationOptions; +using Humpback.ConfigurationOptions; using Humpback.Interfaces; using Humpback.Parts; -namespace Humpback.Tests.Impl { - public class TestSQLDatabaseProvider : SQLDatabaseProvider { - public TestSQLDatabaseProvider(Configuration configuration, Settings settings, ISqlFormatter sql_formatter) : base(configuration, settings, sql_formatter) { +namespace Humpback.Tests.Impl +{ + public class TestSQLDatabaseProvider : SQLDatabaseProvider + { + public TestSQLDatabaseProvider(Configuration configuration, Settings settings, ISqlFormatter sql_formatter) : base(configuration, settings, sql_formatter) + { } - protected override int ExecuteCommand(string command) { + protected override int ExecuteCommand(string command) + { LastCommand = command; return 0; } @@ -19,45 +19,61 @@ protected override int ExecuteCommand(string command) { public string LastCommand { get; private set; } - public new virtual int ExecuteUpCommand(dynamic up) { + public new virtual int ExecuteUpCommand(dynamic up) + { var sql = _sql_formatter.GenerateSQLUp(up); // test for file bool has_filesmo = false; - try { + try + { bool fsmo = up.up.filesmo != null; has_filesmo = true; - } catch (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException) { + } + catch (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException) + { // intentionally let thru, no smo object } - if (has_filesmo) { + if (has_filesmo) + { LastCommand = sql[0]; - } else { - - foreach (var s in sql) { + } + else + { - LastCommand += s; - } + foreach (var s in sql) + { + + LastCommand += s; + } } return 1; } - public new virtual int ExecuteDownCommand(dynamic down) { + public new virtual int ExecuteDownCommand(dynamic down) + { var sql = _sql_formatter.GenerateSQLDown(down); // test for file bool has_filesmo = false; - try { + try + { bool fsmo = down.down.filesmo != null; has_filesmo = true; - } catch (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException) { + } + catch (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException) + { // intentionally let thru, no smo object } - if (has_filesmo) { + if (has_filesmo) + { LastCommand = sql[0]; - } else { + } + else + { - foreach (var s in sql) { + foreach (var s in sql) + { LastCommand += s; } diff --git a/Humpback.Tests/SQLGeneratorTests.cs b/Humpback.Tests/SQLGeneratorTests.cs index 121da90..393923a 100644 --- a/Humpback.Tests/SQLGeneratorTests.cs +++ b/Humpback.Tests/SQLGeneratorTests.cs @@ -1,19 +1,19 @@ -using System; -using System.Text; -using System.Collections.Generic; -using System.Linq; -using Humpback.ConfigurationOptions; +using Humpback.ConfigurationOptions; using Humpback.Interfaces; using Humpback.Parts; using Humpback.Tests.Impl; using Xunit; -namespace Humpback.Tests { - public class SQLGeneratorTests { +namespace Humpback.Tests +{ + public class SQLGeneratorTests + { - private static Settings Settings { - get { + private static Settings Settings + { + get + { return TestHelpers.TestSettings; } @@ -21,7 +21,8 @@ private static Settings Settings { [Fact] - public void TestGeneratePlainSQLString() { + public void TestGeneratePlainSQLString() + { var json = "{\"up\":\"DELETE FROM [Control] WHERE ControlName LIKE '%Date Label'\"}"; @@ -38,7 +39,8 @@ public void TestGeneratePlainSQLString() { } [Fact] - public void TestGeneratePlainSQLStringArray() { + public void TestGeneratePlainSQLStringArray() + { var json = "{\"up\":[\"DELETE FROM [Control] WHERE ControlName LIKE '%Date Label'\",\"DELETE FROM [Control] WHERE ControlName LIKE '%Date Label'\"]}"; @@ -59,7 +61,8 @@ public void TestGeneratePlainSQLStringArray() { [Fact] - public void TestGeneratePlainSQLStringDown() { + public void TestGeneratePlainSQLStringDown() + { var json = "{\"down\":\"DELETE FROM [Control] WHERE ControlName LIKE '%Date Label'\"}"; @@ -76,9 +79,9 @@ public void TestGeneratePlainSQLStringDown() { } [Fact] - public void TestGeneratePlainSQLStringArrayDown() { + public void TestGeneratePlainSQLStringArrayDown() + { var json = "{\"down\":[\"DELETE FROM [Control] WHERE ControlName LIKE '%Date Label'\",\"DELETE FROM [Control] WHERE ControlName LIKE '%Date Label'\"]}"; - //json = "{\"down\":[\"DELETE FROM [Control] WHERE ControlName = 'Facebook Status'\",\"DELETE FROM [ControlType] WHERE ControlTypeName = 'Facebook'\"]}"; Configuration configuration = new Configuration(new[] { "-s", "1" }); TestFileWriter file_writer = new TestFileWriter(); diff --git a/Humpback.Tests/SQLServerFormatterTest.cs b/Humpback.Tests/SQLServerFormatterTest.cs index c3e03cb..ab15d25 100644 --- a/Humpback.Tests/SQLServerFormatterTest.cs +++ b/Humpback.Tests/SQLServerFormatterTest.cs @@ -1,22 +1,27 @@ -using System.Collections.Generic; -using System.IO; +using Humpback.ConfigurationOptions; +using Humpback.Interfaces; using Humpback.Parts; using Humpback.Tests.Impl; using System; -using Humpback.ConfigurationOptions; -using Humpback.Interfaces; +using System.Collections.Generic; using Xunit; namespace Humpback.Tests { - public class SQLServerFormatterTest { + public class SQLServerFormatterTest + { - private static Settings Settings {get { - return TestHelpers.TestSettings; + private static Settings Settings + { + get + { + return TestHelpers.TestSettings; - }} + } + } [Fact] - public void SqlFormatterAddTableTest() { + public void SqlFormatterAddTableTest() + { Configuration configuration = new Configuration(new[] { "-s", "1" }); TestFileWriter file_writer = new TestFileWriter(); ISqlFormatter formatter = new SQLServerFormatter(configuration, Settings); @@ -33,9 +38,10 @@ public void SqlFormatterAddTableTest() { Assert.True(file_writer.FileContents.Contains("Id")); Assert.True(file_writer.FileContents.Contains("PRIMARY KEY")); } - + [Fact] - public void SqlFormatterAddTableTestWithNullableAndDefault() { + public void SqlFormatterAddTableTestWithNullableAndDefault() + { Configuration configuration = new Configuration(new[] { "-s", "11" }); TestFileWriter file_writer = new TestFileWriter(); ISqlFormatter formatter = new SQLServerFormatter(configuration, Settings); @@ -54,7 +60,8 @@ public void SqlFormatterAddTableTestWithNullableAndDefault() { Assert.True(file_writer.FileContents.Contains("[first_name] nvarchar(255) NOT NULL DEFAULT ('JASON')")); } [Fact] - public void SqlFormatterDropTableTest() { + public void SqlFormatterDropTableTest() + { Configuration configuration = new Configuration(new[] { "-s", "2" }); TestFileWriter file_writer = new TestFileWriter(); ISqlFormatter formatter = new SQLServerFormatter(configuration, Settings); @@ -68,7 +75,8 @@ public void SqlFormatterDropTableTest() { } [Fact] - public void SqlFormatterDrop2TableTest() { + public void SqlFormatterDrop2TableTest() + { Configuration configuration = new Configuration(new[] { "-s", "8" }); TestFileWriter file_writer = new TestFileWriter(); ISqlFormatter formatter = new SQLServerFormatter(configuration, Settings); @@ -84,7 +92,8 @@ public void SqlFormatterDrop2TableTest() { } [Fact] - public void SqlFormatterAddColumnTest() { + public void SqlFormatterAddColumnTest() + { Configuration configuration = new Configuration(new[] { "-s", "3" }); TestFileWriter file_writer = new TestFileWriter(); ISqlFormatter formatter = new SQLServerFormatter(configuration, Settings); @@ -98,9 +107,10 @@ public void SqlFormatterAddColumnTest() { Assert.True(file_writer.FileContents.Contains("ADD [name]")); Assert.True(file_writer.FileContents.Contains("nvarchar(255)")); } - + [Fact] - public void SqlFormatterAddColumnReferenceTest() { + public void SqlFormatterAddColumnReferenceTest() + { Configuration configuration = new Configuration(new[] { "-s", "9" }); TestFileWriter file_writer = new TestFileWriter(); ISqlFormatter formatter = new SQLServerFormatter(configuration, Settings); @@ -114,10 +124,11 @@ public void SqlFormatterAddColumnReferenceTest() { Assert.True(file_writer.FileContents.Contains("ALTER TABLE [Orders] ADD [UserId] INT NOT NULL")); Assert.True(file_writer.FileContents.Contains("ALTER TABLE [Orders] ADD CONSTRAINT [FK_orders_user_userid] FOREIGN KEY ([UserId]) REFERENCES [User] ([Id]) ON DELETE NO ACTION ON UPDATE NO ACTION")); } - + [Fact] - public void SqlFormatterAddTableReferenceTest() { + public void SqlFormatterAddTableReferenceTest() + { Configuration configuration = new Configuration(new[] { "-s", "10" }); TestFileWriter file_writer = new TestFileWriter(); ISqlFormatter formatter = new SQLServerFormatter(configuration, Settings); @@ -136,7 +147,8 @@ public void SqlFormatterAddTableReferenceTest() { [Fact] - public void SqlFormatterChangeColumnTest() { + public void SqlFormatterChangeColumnTest() + { Configuration configuration = new Configuration(new[] { "-s", "4" }); TestFileWriter file_writer = new TestFileWriter(); ISqlFormatter formatter = new SQLServerFormatter(configuration, Settings); @@ -151,7 +163,8 @@ public void SqlFormatterChangeColumnTest() { Assert.True(file_writer.FileContents.Contains("nvarchar(255)")); } [Fact] - public void SqlFormatterDropColumnTest() { + public void SqlFormatterDropColumnTest() + { Configuration configuration = new Configuration(new[] { "-s", "5" }); TestFileWriter file_writer = new TestFileWriter(); ISqlFormatter formatter = new SQLServerFormatter(configuration, Settings); @@ -165,7 +178,8 @@ public void SqlFormatterDropColumnTest() { Assert.True(file_writer.FileContents.Contains("DROP COLUMN [name]")); } [Fact] - public void SqlFormatterAddIndexTest() { + public void SqlFormatterAddIndexTest() + { Configuration configuration = new Configuration(new[] { "-s", "6" }); TestFileWriter file_writer = new TestFileWriter(); ISqlFormatter formatter = new SQLServerFormatter(configuration, Settings); @@ -178,7 +192,8 @@ public void SqlFormatterAddIndexTest() { Assert.True(file_writer.FileContents.Contains("CREATE NONCLUSTERED INDEX [IX_categories_title_slug] ON [categories] ( [title] ASC, [slug] ASC )")); } [Fact] - public void SqlFormatterDropIndexTest() { + public void SqlFormatterDropIndexTest() + { Configuration configuration = new Configuration(new[] { "-s", "7" }); TestFileWriter file_writer = new TestFileWriter(); ISqlFormatter formatter = new SQLServerFormatter(configuration, Settings); @@ -192,41 +207,50 @@ public void SqlFormatterDropIndexTest() { } } - public class TestMigrationProvider:IMigrationProvider { - public SortedDictionary GetMigrations() { + public class TestMigrationProvider : IMigrationProvider + { + public SortedDictionary GetMigrations() + { var rv = new SortedDictionary(); - foreach (var key in functions_dictionary.Keys) { + foreach (var key in functions_dictionary.Keys) + { rv.Add(key, key + "xxx.sql"); } return rv; } - public SortedDictionary GetMigrationsContents() { + public SortedDictionary GetMigrationsContents() + { var rv = new SortedDictionary(); - foreach(var key in functions_dictionary.Keys) { + foreach (var key in functions_dictionary.Keys) + { rv.Add(key, functions_dictionary[key]().Value); } return rv; } - public KeyValuePair GetMigrationWithContents(int migration_number) { - if (functions_dictionary.ContainsKey(migration_number)) { + public KeyValuePair GetMigrationWithContents(int migration_number) + { + if (functions_dictionary.ContainsKey(migration_number)) + { return functions_dictionary[migration_number](); } return functions_dictionary[1](); } private int migration_number = 0; - public int DatabaseMigrationNumber() { + public int DatabaseMigrationNumber() + { return migration_number; } - public void SetMigrationNumber(int number) { + public void SetMigrationNumber(int number) + { migration_number = number; } - private readonly Dictionary>> functions_dictionary = - new Dictionary>> { + private readonly Dictionary>> functions_dictionary = + new Dictionary>> { {1, CreateTable}, {2, DropTable}, {3, AddColumns}, @@ -242,41 +266,52 @@ public void SetMigrationNumber(int number) { - private static KeyValuePair CreateTable() { + private static KeyValuePair CreateTable() + { return new KeyValuePair("7xxx.sql", @"{'up':{'create_table':{'name':'tname','timestamps':true,'columns':[{'name':'first_name','type':'string'},{'name':'last_name','type':'money'}]}},'down':{'drop_table':'tname'}}"); } - private static KeyValuePair DropTable() { + private static KeyValuePair DropTable() + { return new KeyValuePair("7xxx.sql", @"{'up':{'drop_table':'tname'}}"); } - private static KeyValuePair Drop2Tables() { + private static KeyValuePair Drop2Tables() + { return new KeyValuePair("7xxx.sql", @"{'up':[{'drop_table':'tname1'},{'drop_table':'tname2'}]}"); } - private static KeyValuePair AddColumns() { + private static KeyValuePair AddColumns() + { return new KeyValuePair("7xxx.sql", @"{'up':{'add_column':{'table':'tname','columns':[{'name':'name','type':'string'}]}},'down':{'remove_column':{'table':'tname','column':'name'}}}"); } - private static KeyValuePair RemoveColumn() { + private static KeyValuePair RemoveColumn() + { return new KeyValuePair("7xxx.sql", @"{'up':{'remove_column':{'table':'tname','column':'name'}}}"); } - private static KeyValuePair ChangeColumns() { + private static KeyValuePair ChangeColumns() + { return new KeyValuePair("7xxx.sql", @"{'up':{'change_column':{'table':'tname','columns':[{'name':'name','type':'string'}]}}}"); } - private static KeyValuePair AddIndex() { + private static KeyValuePair AddIndex() + { return new KeyValuePair("7xxx.sql", @"{'up':{add_index:{table_name:'categories',columns:['title','slug']}}}"); } - private static KeyValuePair RemoveIndex() { + private static KeyValuePair RemoveIndex() + { return new KeyValuePair("7xxx.sql", @"{'up':{remove_index:{table_name:'categories',columns:['title','slug']}}}"); } - private static KeyValuePair AddColumnReference() { + private static KeyValuePair AddColumnReference() + { return new KeyValuePair("7xxx.sql", @"{'up': {'add_column': {'table': 'Orders','columns': [{'name': 'User','type': 'reference'}]}},'down': {'remove_column': {'table': 'Orders','column': 'UserId'}}}"); } - private static KeyValuePair AddTableTwoReference() { + private static KeyValuePair AddTableTwoReference() + { return new KeyValuePair("7xxx.sql", @"{'up': {'create_table': {'name': 'ApplicationControl','timestamps': true,'columns': [{'name': 'name','type': 'string'},{'name': 'ApplicationPage','type': 'reference'},{'name': 'Application','type': 'reference'}]}},'down': {'drop_table': 'ApplicationControl'}}"); } - private static KeyValuePair CreateTableWithNullAndDefault() { + private static KeyValuePair CreateTableWithNullAndDefault() + { return new KeyValuePair("7xxx.sql", @"{'up':{'create_table':{'name':'tname','timestamps':true,'columns':[{'name':'first_name','type':'string', 'nullable':false, default:""'JASON'""},{'name':'last_name','type':'money'}]}},'down':{'drop_table':'tname'}}"); } - + } } diff --git a/Humpback.Tests/TestHelpers.cs b/Humpback.Tests/TestHelpers.cs index 6935936..6465e09 100644 --- a/Humpback.Tests/TestHelpers.cs +++ b/Humpback.Tests/TestHelpers.cs @@ -1,22 +1,24 @@ -using System; -using System.Collections.Generic; +using Humpback.ConfigurationOptions; +using System; using System.IO; -using System.Linq; -using System.Text; -using Humpback.ConfigurationOptions; -namespace Humpback.Tests { - public static class TestHelpers { - public static Settings TestSettings { - get { - var project = new Project { - name="default", +namespace Humpback.Tests +{ + public static class TestHelpers + { + public static Settings TestSettings + { + get + { + var project = new Project + { + name = "default", connection_string = "server=.;database=northwind;Integrated Security=True;", directory = Path.Combine(Environment.CurrentDirectory, "db"), flavor = "sqlserver" }; return new Settings("default", - new [] { project }); + new[] { project }); } } From 3b7220a2d381070d4f5dc88a5f7b49cc4b828dab Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 20 Nov 2023 17:10:53 -0500 Subject: [PATCH 20/49] Updated Nuget packages. --- Humpback.Tests/Humpback.Tests.csproj | 25 +++++++++++++++++++------ Humpback.Tests/app.config | 8 ++++++++ Humpback.Tests/packages.config | 10 +++++++--- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index 922ec36..8e165aa 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -57,19 +57,32 @@ ..\packages\MSTest.TestFramework.3.1.1\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - - ..\packages\NuGet.Frameworks.6.5.0\lib\net472\NuGet.Frameworks.dll + + ..\packages\NuGet.Frameworks.6.8.0\lib\net472\NuGet.Frameworks.dll - - ..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\packages\System.Collections.Immutable.8.0.0\lib\net462\System.Collections.Immutable.dll - - ..\packages\System.Reflection.Metadata.1.6.0\lib\netstandard2.0\System.Reflection.Metadata.dll + + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Reflection.Metadata.8.0.0\lib\net462\System.Reflection.Metadata.dll + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index 04ae3ba..350cad3 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -98,6 +98,14 @@ + + + + + + + + \ No newline at end of file diff --git a/Humpback.Tests/packages.config b/Humpback.Tests/packages.config index 0fad1ea..b16d899 100644 --- a/Humpback.Tests/packages.config +++ b/Humpback.Tests/packages.config @@ -4,9 +4,13 @@ - - - + + + + + + + From 870e2f1796686b48d1e51d50e02976e8e5af0758 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 5 Dec 2023 12:23:46 -0500 Subject: [PATCH 21/49] Added Costura.Fody to compile portable, single executable file. --- Humpback/FodyWeavers.xml | 4 ++ Humpback/FodyWeavers.xsd | 111 +++++++++++++++++++++++++++++++++++++++ Humpback/Humpback.csproj | 42 +++++++++++++++ Humpback/packages.config | 5 ++ 4 files changed, 162 insertions(+) create mode 100644 Humpback/FodyWeavers.xml create mode 100644 Humpback/FodyWeavers.xsd create mode 100644 Humpback/packages.config diff --git a/Humpback/FodyWeavers.xml b/Humpback/FodyWeavers.xml new file mode 100644 index 0000000..4a3e403 --- /dev/null +++ b/Humpback/FodyWeavers.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Humpback/FodyWeavers.xsd b/Humpback/FodyWeavers.xsd new file mode 100644 index 0000000..44a5374 --- /dev/null +++ b/Humpback/FodyWeavers.xsd @@ -0,0 +1,111 @@ + + + + + + + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of unmanaged 32 bit assembly names to include, delimited with line breaks. + + + + + A list of unmanaged 64 bit assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of unmanaged 32 bit assembly names to include, delimited with |. + + + + + A list of unmanaged 64 bit assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index 733790d..e5b95d9 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -1,5 +1,6 @@  + Debug @@ -12,6 +13,23 @@ 512 true true + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + AnyCPU @@ -33,6 +51,9 @@ 4 + + ..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll + @@ -68,6 +89,7 @@ + @@ -79,5 +101,25 @@ Humpback.Smo + + + False + Microsoft .NET Framework 4.7.2 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + \ No newline at end of file diff --git a/Humpback/packages.config b/Humpback/packages.config new file mode 100644 index 0000000..2d6c75b --- /dev/null +++ b/Humpback/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file From d52f70bdc23a60f6f125cf030b843598a12fdca2 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 5 Dec 2023 16:26:54 -0500 Subject: [PATCH 22/49] Added quality of life change when debugging. --- Humpback/Program.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Humpback/Program.cs b/Humpback/Program.cs index e3767b8..f7444b2 100644 --- a/Humpback/Program.cs +++ b/Humpback/Program.cs @@ -90,9 +90,19 @@ static int Main(string[] args) } return -1; } - if (Debugger.IsAttached) + if (Debugger.IsAttached && Environment.UserInteractive) { - Console.ReadLine(); + string line = Console.ReadLine(); + if (string.IsNullOrWhiteSpace(line)) + { + return 0; + } + + string[] input = line.Split(); + if (input.Length > 0) + { + return Main(input); + } } return 0; } From be62526c2ef6e5c2d67104ca25572fcfbb8f646d Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 5 Dec 2023 17:24:21 -0500 Subject: [PATCH 23/49] Fixed debug input to allow connections strings to be entered with quotes. --- Humpback/Program.cs | 47 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/Humpback/Program.cs b/Humpback/Program.cs index f7444b2..082d835 100644 --- a/Humpback/Program.cs +++ b/Humpback/Program.cs @@ -2,7 +2,9 @@ using Humpback.Interfaces; using Humpback.Parts; using System; +using System.Collections.Generic; using System.Diagnostics; +using System.Text; namespace Humpback { @@ -92,19 +94,50 @@ static int Main(string[] args) } if (Debugger.IsAttached && Environment.UserInteractive) { - string line = Console.ReadLine(); - if (string.IsNullOrWhiteSpace(line)) + string[] inputs = ParseUserString(Console.ReadLine()); + if (inputs.Length > 0) { - return 0; + Main(inputs); + } + } + + return 0; + } + + private static string[] ParseUserString(string userString) + { + if (string.IsNullOrWhiteSpace(userString)) + { + return new string[0]; + } + + int start = 0; + bool quote = false; + List inputs = new List(); + for (int i = 0; i < userString.Length; i++) + { + if (userString[i] == '"' || (!quote && userString[i] == ' ')) + { + if (i - start > 0) + { + inputs.Add(userString.Substring(start, i - start)); + } + + start = i + 1; } - string[] input = line.Split(); - if (input.Length > 0) + if (userString[i] == '"') { - return Main(input); + quote = !quote; } } - return 0; + + if (userString.Length - start > 0) + { + inputs.Add(userString.Substring(start, userString.Length - start)); + } + + return inputs.ToArray(); } } From e30f094562e380273570d83295fc0a279e34dae3 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 5 Dec 2023 18:59:03 -0500 Subject: [PATCH 24/49] Simplified sql execution process. --- Humpback.Tests/app.config | 8 +- Humpback/Humpback.csproj | 139 +++++++++++++++++++++++++- Humpback/Parts/SQLDatabaseProvider.cs | 43 +------- Humpback/app.config | 10 +- Humpback/packages.config | 38 +++++++ 5 files changed, 187 insertions(+), 51 deletions(-) diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index 350cad3..b83a36b 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -4,11 +4,11 @@ - + - + @@ -24,7 +24,7 @@ - + @@ -36,7 +36,7 @@ - + diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index e5b95d9..a805493 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -51,18 +51,153 @@ 4 + + ..\packages\Azure.Core.1.25.0\lib\net461\Azure.Core.dll + + + ..\packages\Azure.Identity.1.7.0\lib\netstandard2.0\Azure.Identity.dll + ..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\packages\Microsoft.Data.SqlClient.5.1.2\lib\net462\Microsoft.Data.SqlClient.dll + + + ..\packages\Microsoft.Identity.Client.4.47.2\lib\net461\Microsoft.Identity.Client.dll + + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.2.19.3\lib\net45\Microsoft.Identity.Client.Extensions.Msal.dll + + + ..\packages\Microsoft.IdentityModel.Abstractions.6.24.0\lib\net472\Microsoft.IdentityModel.Abstractions.dll + + + ..\packages\Microsoft.IdentityModel.JsonWebTokens.6.24.0\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll + + + ..\packages\Microsoft.IdentityModel.Logging.6.24.0\lib\net472\Microsoft.IdentityModel.Logging.dll + + + ..\packages\Microsoft.IdentityModel.Protocols.6.24.0\lib\net472\Microsoft.IdentityModel.Protocols.dll + + + ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.6.24.0\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll + + + ..\packages\Microsoft.IdentityModel.Tokens.6.24.0\lib\net472\Microsoft.IdentityModel.Tokens.dll + + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + + + ..\packages\System.Configuration.ConfigurationManager.6.0.1\lib\net461\System.Configuration.ConfigurationManager.dll + + + + ..\packages\System.Diagnostics.DiagnosticSource.4.6.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + + + ..\packages\System.IdentityModel.Tokens.Jwt.6.24.0\lib\net472\System.IdentityModel.Tokens.Jwt.dll + + + ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll + True + True + + + ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + ..\packages\System.Memory.Data.1.0.2\lib\net461\System.Memory.Data.dll + + + + ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll + True + True + + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + True + True + + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + True + + + + ..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll + + + ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\packages\System.Security.Cryptography.ProtectedData.4.7.0\lib\net461\System.Security.Cryptography.ProtectedData.dll + + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True + + + ..\packages\System.Security.Permissions.6.0.0\lib\net461\System.Security.Permissions.dll + + + ..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll + + + + ..\packages\System.Text.Encodings.Web.6.0.0\lib\net461\System.Text.Encodings.Web.dll + + + ..\packages\System.Text.Json.4.7.2\lib\net461\System.Text.Json.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + + - + @@ -121,5 +256,7 @@ + + \ No newline at end of file diff --git a/Humpback/Parts/SQLDatabaseProvider.cs b/Humpback/Parts/SQLDatabaseProvider.cs index 8470638..93657b7 100644 --- a/Humpback/Parts/SQLDatabaseProvider.cs +++ b/Humpback/Parts/SQLDatabaseProvider.cs @@ -51,7 +51,7 @@ public virtual int ExecuteUpCommand(dynamic up) } if (has_filesmo) { - ExecuteSmo(_settings.ConnectionString(), sql[0]); + Smo.Executor.Execute(_settings.ConnectionString(), sql[0]); return 1; } else @@ -108,45 +108,6 @@ public virtual int ExecuteUpCommand(dynamic up) } } - // due to dependency, kinda pulling this out on an as needed basis - // this way if someone doenst' have smo, and doesnt try to call, never has an issue. - private int ExecuteSmo(string connection_string, string sql) - { - // Smo.Executor.Execute(_settings.ConnectionString(), sql[0]); - if (smo_assembly == null) - { - load_smo_assembly(); - } - var Executor = smo_assembly.GetType("Humpback.Smo.Executor"); - var Execute = Executor.GetMethod("Execute"); - return (int)Execute.Invoke(null, new[] { connection_string, sql }); - } - - private void load_smo_assembly() - { - var _assembly = Assembly.GetExecutingAssembly(); - using (var resource_stream = _assembly.GetManifestResourceStream("Humpback.Artifacts.Humpback.Smo.dll")) - { - smo_assembly = Assembly.Load(ReadFully(resource_stream)); - } - } - - // Thank you Jon Skeet! http://stackoverflow.com/questions/221925/creating-a-byte-array-from-a-stream/221941#221941 - public static byte[] ReadFully(Stream input) - { - var buffer = new byte[16 * 1024]; - using (var ms = new MemoryStream()) - { - int read; - while ((read = input.Read(buffer, 0, buffer.Length)) > 0) - { - ms.Write(buffer, 0, read); - } - return ms.ToArray(); - } - } - private Assembly smo_assembly; - public virtual int ExecuteDownCommand(dynamic down) { if (down.down == null) @@ -166,7 +127,7 @@ public virtual int ExecuteDownCommand(dynamic down) } if (has_filesmo) { - ExecuteSmo(_settings.ConnectionString(), sql[0]); + Smo.Executor.Execute(_settings.ConnectionString(), sql[0]); return 1; } using (var connection = GetOpenConnection()) diff --git a/Humpback/app.config b/Humpback/app.config index 5e8cb32..5a4fb0b 100644 --- a/Humpback/app.config +++ b/Humpback/app.config @@ -7,11 +7,11 @@ - + - + @@ -27,7 +27,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/Humpback/packages.config b/Humpback/packages.config index 2d6c75b..93b908c 100644 --- a/Humpback/packages.config +++ b/Humpback/packages.config @@ -1,5 +1,43 @@  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From e2e0c108145ba0e8832803c1611318d6091c9439 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 11 Dec 2023 14:47:25 -0500 Subject: [PATCH 25/49] Added while loop for inner exceptions. --- Humpback/Program.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Humpback/Program.cs b/Humpback/Program.cs index 082d835..77cce14 100644 --- a/Humpback/Program.cs +++ b/Humpback/Program.cs @@ -73,14 +73,13 @@ static int Main(string[] args) catch (Exception e) { Console.WriteLine(e.Message); - if (e.InnerException != null) + var inner = e.InnerException; + while(inner != null) { - Console.WriteLine(e.InnerException.Message); - if (e.InnerException.InnerException != null) - { - Console.WriteLine(e.InnerException.InnerException.Message); - } + Console.WriteLine(inner.Message); + inner = inner.InnerException; } + if (_configuration != null && _configuration.Verbose) { Console.WriteLine(e.ToString()); From 66aef69b04ef3cb9a8afeb36faf7884efe28c4c1 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 11 Dec 2023 16:16:03 -0500 Subject: [PATCH 26/49] Fixed execute SMO to work with updated .dll. --- Humpback.Smo/Executor.cs | 11 +++-------- Humpback/Parts/SQLDatabaseProvider.cs | 3 --- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/Humpback.Smo/Executor.cs b/Humpback.Smo/Executor.cs index d08de62..9ae6986 100644 --- a/Humpback.Smo/Executor.cs +++ b/Humpback.Smo/Executor.cs @@ -1,6 +1,5 @@ using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; -using System.Data.SqlClient; namespace Humpback.Smo { @@ -9,13 +8,9 @@ public static class Executor public static int Execute(string connection_string, string sql) { - using (var conn = new SqlConnection(connection_string)) - { - var serverConnection = new ServerConnection(connection_string); - var server = new Server(serverConnection); - conn.Open(); - return server.ConnectionContext.ExecuteNonQuery(sql); - } + var connection = new Microsoft.Data.SqlClient.SqlConnection(connection_string); + Server server = new Server(new ServerConnection(connection)); + return server.ConnectionContext.ExecuteNonQuery(sql); } } } diff --git a/Humpback/Parts/SQLDatabaseProvider.cs b/Humpback/Parts/SQLDatabaseProvider.cs index 93657b7..63d17c5 100644 --- a/Humpback/Parts/SQLDatabaseProvider.cs +++ b/Humpback/Parts/SQLDatabaseProvider.cs @@ -252,7 +252,6 @@ public int GetMigrationVersion() } } - private void EnsureSchemaInfo() { try @@ -265,7 +264,5 @@ private void EnsureSchemaInfo() ExecuteCommand(_sql_formatter.sql_initialize_schema_info); } } - - } } From 912e69fb13269d791a0c4127ec18c40bb6f9441c Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 11 Dec 2023 16:21:14 -0500 Subject: [PATCH 27/49] Added comments. --- Humpback.Smo/Executor.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Humpback.Smo/Executor.cs b/Humpback.Smo/Executor.cs index 9ae6986..4d39249 100644 --- a/Humpback.Smo/Executor.cs +++ b/Humpback.Smo/Executor.cs @@ -5,7 +5,12 @@ namespace Humpback.Smo { public static class Executor { - + /// + /// Execute TSQL strings using Microsoft.SqlServer.Management.Smo. + /// + /// Config connection string + /// Compiled TSQL script. + /// number of records affected. public static int Execute(string connection_string, string sql) { var connection = new Microsoft.Data.SqlClient.SqlConnection(connection_string); From 6fc505f1dbaab5692b1cd0cba294990835536b75 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 11 Dec 2023 16:27:47 -0500 Subject: [PATCH 28/49] case 38185 --- Humpback.Smo/Executor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Humpback.Smo/Executor.cs b/Humpback.Smo/Executor.cs index 4d39249..18854ab 100644 --- a/Humpback.Smo/Executor.cs +++ b/Humpback.Smo/Executor.cs @@ -8,7 +8,7 @@ public static class Executor /// /// Execute TSQL strings using Microsoft.SqlServer.Management.Smo. /// - /// Config connection string + /// Config connection string. /// Compiled TSQL script. /// number of records affected. public static int Execute(string connection_string, string sql) From 70154b04cd8379a503323f64033fadec68c07ef8 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 11 Dec 2023 16:42:24 -0500 Subject: [PATCH 29/49] Removed unused references. --- Humpback/Parts/SQLDatabaseProvider.cs | 2 -- Humpback/Program.cs | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/Humpback/Parts/SQLDatabaseProvider.cs b/Humpback/Parts/SQLDatabaseProvider.cs index 63d17c5..c2f0723 100644 --- a/Humpback/Parts/SQLDatabaseProvider.cs +++ b/Humpback/Parts/SQLDatabaseProvider.cs @@ -2,8 +2,6 @@ using System; using System.Collections.Generic; using System.Data.SqlClient; -using System.IO; -using System.Reflection; using Configuration = Humpback.ConfigurationOptions.Configuration; using Settings = Humpback.ConfigurationOptions.Settings; diff --git a/Humpback/Program.cs b/Humpback/Program.cs index 77cce14..87f2036 100644 --- a/Humpback/Program.cs +++ b/Humpback/Program.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Generic; using System.Diagnostics; -using System.Text; namespace Humpback { @@ -74,7 +73,7 @@ static int Main(string[] args) { Console.WriteLine(e.Message); var inner = e.InnerException; - while(inner != null) + while (inner != null) { Console.WriteLine(inner.Message); inner = inner.InnerException; From 35668189378d8290ca39251b007f30faf8132ed2 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 19 Dec 2023 16:37:19 -0500 Subject: [PATCH 30/49] Removed Fody packages to remove non-microsoft components. --- Humpback.Tests/app.config | 2 +- Humpback/Humpback.csproj | 4 ---- Humpback/packages.config | 2 -- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index b83a36b..f781220 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -56,7 +56,7 @@ - + diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index a805493..b8e7571 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -1,6 +1,5 @@  - Debug @@ -249,13 +248,10 @@ - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - diff --git a/Humpback/packages.config b/Humpback/packages.config index 93b908c..be9cc62 100644 --- a/Humpback/packages.config +++ b/Humpback/packages.config @@ -2,8 +2,6 @@ - - From 5a982b93076c58c59c596a96808a268e54452b41 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 2 Jan 2024 11:41:40 -0500 Subject: [PATCH 31/49] Removed lingering Fody files. --- Humpback/FodyWeavers.xml | 4 -- Humpback/FodyWeavers.xsd | 111 --------------------------------------- 2 files changed, 115 deletions(-) delete mode 100644 Humpback/FodyWeavers.xml delete mode 100644 Humpback/FodyWeavers.xsd diff --git a/Humpback/FodyWeavers.xml b/Humpback/FodyWeavers.xml deleted file mode 100644 index 4a3e403..0000000 --- a/Humpback/FodyWeavers.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Humpback/FodyWeavers.xsd b/Humpback/FodyWeavers.xsd deleted file mode 100644 index 44a5374..0000000 --- a/Humpback/FodyWeavers.xsd +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks - - - - - A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. - - - - - A list of unmanaged 32 bit assembly names to include, delimited with line breaks. - - - - - A list of unmanaged 64 bit assembly names to include, delimited with line breaks. - - - - - The order of preloaded assemblies, delimited with line breaks. - - - - - - This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. - - - - - Controls if .pdbs for reference assemblies are also embedded. - - - - - Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. - - - - - As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. - - - - - Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. - - - - - Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. - - - - - A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | - - - - - A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. - - - - - A list of unmanaged 32 bit assembly names to include, delimited with |. - - - - - A list of unmanaged 64 bit assembly names to include, delimited with |. - - - - - The order of preloaded assemblies, delimited with |. - - - - - - - - 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. - - - - - A comma-separated list of error codes that can be safely ignored in assembly verification. - - - - - 'false' to turn off automatic generation of the XML Schema file. - - - - - \ No newline at end of file From f53e33a1f99ba1c86d4d8daaf394fc536044f595 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 2 Jan 2024 12:44:21 -0500 Subject: [PATCH 32/49] Fixed linked assemblies. --- Humpback.Interfaces/Humpback.Interfaces.csproj | 3 +++ Humpback.Smo/Humpback.Smo.csproj | 3 +++ Humpback.Tests/Humpback.Tests.csproj | 3 +++ 3 files changed, 9 insertions(+) diff --git a/Humpback.Interfaces/Humpback.Interfaces.csproj b/Humpback.Interfaces/Humpback.Interfaces.csproj index c2ded75..68f2a58 100644 --- a/Humpback.Interfaces/Humpback.Interfaces.csproj +++ b/Humpback.Interfaces/Humpback.Interfaces.csproj @@ -41,6 +41,9 @@ + + Properties\SharedVersionInfo.cs + diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index b1e2c6f..64d2e26 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -269,6 +269,9 @@ + + Properties\SharedVersionInfo.cs + diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index 8e165aa..1c10368 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -99,6 +99,9 @@ + + Properties\SharedVersionInfo.cs + From b4e998e67af83d30413dd2373d2025d8ddf5fb92 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 2 Jan 2024 12:54:07 -0500 Subject: [PATCH 33/49] Renamed assembly to hump. --- Humpback/Humpback.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index b8e7571..ce99a68 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -7,7 +7,7 @@ {E7FEAF88-D6C7-4804-9950-E5F21C1D5811} Exe Humpback - Humpback + Hump v4.7.2 512 true From 4988bb689bb7b9a01eb612252f15e4d2a5cf1b63 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 2 Jan 2024 12:58:32 -0500 Subject: [PATCH 34/49] Consolidated package versions, verified that all tests still pass. --- Humpback.Tests/app.config | 10 ++--- Humpback/Humpback.csproj | 94 ++++++++++++++++++++------------------- Humpback/app.config | 10 ++--- Humpback/packages.config | 47 ++++++++++---------- 4 files changed, 83 insertions(+), 78 deletions(-) diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index f781220..350cad3 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -4,11 +4,11 @@ - + - + @@ -24,7 +24,7 @@ - + @@ -36,7 +36,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index ce99a68..76c3b55 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -50,44 +50,44 @@ 4 - - ..\packages\Azure.Core.1.25.0\lib\net461\Azure.Core.dll + + ..\packages\Azure.Core.1.36.0\lib\net472\Azure.Core.dll - - ..\packages\Azure.Identity.1.7.0\lib\netstandard2.0\Azure.Identity.dll + + ..\packages\Azure.Identity.1.10.4\lib\netstandard2.0\Azure.Identity.dll ..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll - - ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll ..\packages\Microsoft.Data.SqlClient.5.1.2\lib\net462\Microsoft.Data.SqlClient.dll - - ..\packages\Microsoft.Identity.Client.4.47.2\lib\net461\Microsoft.Identity.Client.dll + + ..\packages\Microsoft.Identity.Client.4.57.0\lib\net461\Microsoft.Identity.Client.dll - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.2.19.3\lib\net45\Microsoft.Identity.Client.Extensions.Msal.dll + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.57.0\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll - - ..\packages\Microsoft.IdentityModel.Abstractions.6.24.0\lib\net472\Microsoft.IdentityModel.Abstractions.dll + + ..\packages\Microsoft.IdentityModel.Abstractions.7.0.3\lib\net472\Microsoft.IdentityModel.Abstractions.dll - - ..\packages\Microsoft.IdentityModel.JsonWebTokens.6.24.0\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll + + ..\packages\Microsoft.IdentityModel.JsonWebTokens.7.0.3\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll - - ..\packages\Microsoft.IdentityModel.Logging.6.24.0\lib\net472\Microsoft.IdentityModel.Logging.dll + + ..\packages\Microsoft.IdentityModel.Logging.7.0.3\lib\net472\Microsoft.IdentityModel.Logging.dll - - ..\packages\Microsoft.IdentityModel.Protocols.6.24.0\lib\net472\Microsoft.IdentityModel.Protocols.dll + + ..\packages\Microsoft.IdentityModel.Protocols.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.dll - - ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.6.24.0\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll + + ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll - - ..\packages\Microsoft.IdentityModel.Tokens.6.24.0\lib\net472\Microsoft.IdentityModel.Tokens.dll + + ..\packages\Microsoft.IdentityModel.Tokens.7.0.3\lib\net472\Microsoft.IdentityModel.Tokens.dll @@ -95,29 +95,33 @@ - - ..\packages\System.Configuration.ConfigurationManager.6.0.1\lib\net461\System.Configuration.ConfigurationManager.dll + + ..\packages\System.Configuration.ConfigurationManager.8.0.0\lib\net462\System.Configuration.ConfigurationManager.dll - - ..\packages\System.Diagnostics.DiagnosticSource.4.6.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.8.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll + - - ..\packages\System.IdentityModel.Tokens.Jwt.6.24.0\lib\net472\System.IdentityModel.Tokens.Jwt.dll + + ..\packages\System.IdentityModel.Tokens.Jwt.7.0.3\lib\net472\System.IdentityModel.Tokens.Jwt.dll ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll True True - - ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + ..\packages\System.IO.FileSystem.AccessControl.5.0.0\lib\net461\System.IO.FileSystem.AccessControl.dll - - ..\packages\System.Memory.Data.1.0.2\lib\net461\System.Memory.Data.dll + + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + ..\packages\System.Memory.Data.8.0.0\lib\net462\System.Memory.Data.dll @@ -129,8 +133,8 @@ ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + + ..\packages\System.Runtime.4.3.1\lib\net462\System.Runtime.dll True True @@ -147,7 +151,7 @@ ..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll - ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + ..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net463\System.Security.Cryptography.Algorithms.dll True True @@ -161,26 +165,26 @@ True True - - ..\packages\System.Security.Cryptography.ProtectedData.4.7.0\lib\net461\System.Security.Cryptography.ProtectedData.dll + + ..\packages\System.Security.Cryptography.ProtectedData.8.0.0\lib\net462\System.Security.Cryptography.ProtectedData.dll - - ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll True True - - ..\packages\System.Security.Permissions.6.0.0\lib\net461\System.Security.Permissions.dll + + ..\packages\System.Security.Permissions.8.0.0\lib\net462\System.Security.Permissions.dll ..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll - - ..\packages\System.Text.Encodings.Web.6.0.0\lib\net461\System.Text.Encodings.Web.dll + + ..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll - - ..\packages\System.Text.Json.4.7.2\lib\net461\System.Text.Json.dll + + ..\packages\System.Text.Json.8.0.0\lib\net462\System.Text.Json.dll ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/Humpback/app.config b/Humpback/app.config index 5a4fb0b..5e8cb32 100644 --- a/Humpback/app.config +++ b/Humpback/app.config @@ -7,11 +7,11 @@ - + - + @@ -27,7 +27,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/Humpback/packages.config b/Humpback/packages.config index be9cc62..e44cd7e 100644 --- a/Humpback/packages.config +++ b/Humpback/packages.config @@ -1,41 +1,42 @@  - - - + + + - - - - - - - - + + + + + + + + - - - + + + - - + + + - + - + - - - + + + - - + + \ No newline at end of file From a9fc9ce8ebb23246789560235c7caef6efc45b13 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 2 Jan 2024 12:59:34 -0500 Subject: [PATCH 35/49] Updated xunit packages, verified that tests still pass. --- Humpback.Tests/Humpback.Tests.csproj | 28 ++++++++++++---------------- Humpback.Tests/packages.config | 14 +++++++------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index 1c10368..56c2348 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -1,8 +1,8 @@  - + + - Debug @@ -88,14 +88,14 @@ ..\packages\xunit.abstractions.2.0.3\lib\net35\xunit.abstractions.dll - - ..\packages\xunit.assert.2.6.2\lib\netstandard1.1\xunit.assert.dll + + ..\packages\xunit.assert.2.6.4\lib\netstandard1.1\xunit.assert.dll - - ..\packages\xunit.extensibility.core.2.6.2\lib\net452\xunit.core.dll + + ..\packages\xunit.extensibility.core.2.6.4\lib\net452\xunit.core.dll - - ..\packages\xunit.extensibility.execution.2.6.2\lib\net452\xunit.execution.desktop.dll + + ..\packages\xunit.extensibility.execution.2.6.4\lib\net452\xunit.execution.desktop.dll @@ -126,22 +126,18 @@ Humpback - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - + + + - + \ No newline at end of file diff --git a/Humpback.Tests/packages.config b/Humpback.Tests/packages.config index b16d899..d3bfe92 100644 --- a/Humpback.Tests/packages.config +++ b/Humpback.Tests/packages.config @@ -11,12 +11,12 @@ - + - - - - - - + + + + + + \ No newline at end of file From e1efe5c0f92d211f52cad4c824f8b4f641786268 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 2 Jan 2024 13:01:06 -0500 Subject: [PATCH 36/49] Updated Microsoft packages, verified tests still run. --- Humpback.Smo/Humpback.Smo.csproj | 60 ++++++++++++++++---------------- Humpback.Smo/app.config | 4 +-- Humpback.Smo/packages.config | 6 ++-- Humpback.Tests/app.config | 4 +-- Humpback/Humpback.csproj | 8 ++--- Humpback/app.config | 4 +-- Humpback/packages.config | 4 +-- 7 files changed, 45 insertions(+), 45 deletions(-) diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index 64d2e26..9b8b78f 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -46,13 +46,13 @@ ..\packages\Microsoft.Data.SqlClient.5.1.2\lib\net462\Microsoft.Data.SqlClient.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.Data.Tools.Sql.BatchParser.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.Data.Tools.Sql.BatchParser.dll - - ..\packages\Microsoft.Identity.Client.4.57.0\lib\net461\Microsoft.Identity.Client.dll + + ..\packages\Microsoft.Identity.Client.4.58.1\lib\net462\Microsoft.Identity.Client.dll - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.57.0\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.58.1\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll ..\packages\Microsoft.IdentityModel.Abstractions.7.0.3\lib\net472\Microsoft.IdentityModel.Abstractions.dll @@ -79,79 +79,79 @@ ..\packages\Microsoft.SqlServer.Assessment.Authoring.1.1.0\lib\net462\Microsoft.SqlServer.Assessment.Types.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.ConnectionInfo.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.ConnectionInfo.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Dmf.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Dmf.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Dmf.Common.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Dmf.Common.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.Assessment.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.Assessment.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.Collector.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.Collector.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.CollectorEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.CollectorEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.HadrData.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.HadrData.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.HadrModel.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.HadrModel.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.RegisteredServers.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.RegisteredServers.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.Sdk.Sfc.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.Sdk.Sfc.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.SqlScriptPublish.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.SqlScriptPublish.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.XEvent.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.XEvent.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScoped.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScoped.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScopedEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScopedEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Management.XEventEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.XEventEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.PolicyEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.PolicyEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.RegSvrEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.RegSvrEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.ServiceBrokerEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.ServiceBrokerEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Smo.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Smo.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.Smo.Notebook.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Smo.Notebook.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.SmoExtended.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.SmoExtended.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.SqlClrProvider.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.SqlClrProvider.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.SqlEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.SqlEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.SqlWmiManagement.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.SqlWmiManagement.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.18.0\lib\net462\Microsoft.SqlServer.WmiEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.WmiEnum.dll ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll diff --git a/Humpback.Smo/app.config b/Humpback.Smo/app.config index 04ae3ba..9ecc575 100644 --- a/Humpback.Smo/app.config +++ b/Humpback.Smo/app.config @@ -8,7 +8,7 @@ - + @@ -64,7 +64,7 @@ - + diff --git a/Humpback.Smo/packages.config b/Humpback.Smo/packages.config index 79089a4..c2c64f1 100644 --- a/Humpback.Smo/packages.config +++ b/Humpback.Smo/packages.config @@ -5,8 +5,8 @@ - - + + @@ -15,7 +15,7 @@ - + diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index 350cad3..fdd47cc 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -8,7 +8,7 @@ - + @@ -64,7 +64,7 @@ - + diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index 76c3b55..a6f3eb9 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -65,11 +65,11 @@ ..\packages\Microsoft.Data.SqlClient.5.1.2\lib\net462\Microsoft.Data.SqlClient.dll - - ..\packages\Microsoft.Identity.Client.4.57.0\lib\net461\Microsoft.Identity.Client.dll + + ..\packages\Microsoft.Identity.Client.4.58.1\lib\net462\Microsoft.Identity.Client.dll - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.57.0\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.58.1\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll ..\packages\Microsoft.IdentityModel.Abstractions.7.0.3\lib\net472\Microsoft.IdentityModel.Abstractions.dll diff --git a/Humpback/app.config b/Humpback/app.config index 5e8cb32..75fe981 100644 --- a/Humpback/app.config +++ b/Humpback/app.config @@ -11,7 +11,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/Humpback/packages.config b/Humpback/packages.config index e44cd7e..1dd5c96 100644 --- a/Humpback/packages.config +++ b/Humpback/packages.config @@ -5,8 +5,8 @@ - - + + From e9c63390fc919e2328f904db7e31ae2b94836cbb Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 22 Jan 2024 11:23:43 -0500 Subject: [PATCH 37/49] Added shared shared version info to project. --- Humpback/Humpback.csproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index b8e7571..d379536 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -199,6 +199,9 @@ + + Properties\SharedVersionInfo.cs + From f71c3d8f606924980d26f6ab2097ef82b2381f46 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Thu, 7 Mar 2024 15:43:11 -0500 Subject: [PATCH 38/49] Updated vulnerable packages. --- Humpback.Smo/Humpback.Smo.csproj | 26 +++++++++++++------------- Humpback.Smo/app.config | 10 +++++----- Humpback.Smo/packages.config | 14 +++++++------- Humpback.Tests/app.config | 10 +++++----- Humpback/Humpback.csproj | 26 +++++++++++++------------- Humpback/app.config | 10 +++++----- Humpback/packages.config | 14 +++++++------- 7 files changed, 55 insertions(+), 55 deletions(-) diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index 9b8b78f..4d265a8 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -43,7 +43,7 @@ ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll - ..\packages\Microsoft.Data.SqlClient.5.1.2\lib\net462\Microsoft.Data.SqlClient.dll + ..\packages\Microsoft.Data.SqlClient.5.2.0\lib\net462\Microsoft.Data.SqlClient.dll ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.Data.Tools.Sql.BatchParser.dll @@ -54,14 +54,14 @@ ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.58.1\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll - - ..\packages\Microsoft.IdentityModel.Abstractions.7.0.3\lib\net472\Microsoft.IdentityModel.Abstractions.dll + + ..\packages\Microsoft.IdentityModel.Abstractions.7.4.0\lib\net472\Microsoft.IdentityModel.Abstractions.dll - - ..\packages\Microsoft.IdentityModel.JsonWebTokens.7.0.3\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll + + ..\packages\Microsoft.IdentityModel.JsonWebTokens.7.4.0\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll - - ..\packages\Microsoft.IdentityModel.Logging.7.0.3\lib\net472\Microsoft.IdentityModel.Logging.dll + + ..\packages\Microsoft.IdentityModel.Logging.7.4.0\lib\net472\Microsoft.IdentityModel.Logging.dll ..\packages\Microsoft.IdentityModel.Protocols.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.dll @@ -69,8 +69,8 @@ ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll - - ..\packages\Microsoft.IdentityModel.Tokens.7.0.3\lib\net472\Microsoft.IdentityModel.Tokens.dll + + ..\packages\Microsoft.IdentityModel.Tokens.7.4.0\lib\net472\Microsoft.IdentityModel.Tokens.dll ..\packages\Microsoft.SqlServer.Assessment.1.1.17\lib\net462\Microsoft.SqlServer.Assessment.dll @@ -173,8 +173,8 @@ - - ..\packages\System.IdentityModel.Tokens.Jwt.7.0.3\lib\net472\System.IdentityModel.Tokens.Jwt.dll + + ..\packages\System.IdentityModel.Tokens.Jwt.7.4.0\lib\net472\System.IdentityModel.Tokens.Jwt.dll ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll @@ -280,11 +280,11 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + \ No newline at end of file diff --git a/Humpback.Smo/app.config b/Humpback.Smo/app.config index 9ecc575..68b3c05 100644 --- a/Humpback.Smo/app.config +++ b/Humpback.Smo/app.config @@ -4,7 +4,7 @@ - + @@ -84,19 +84,19 @@ - + - + - + - + diff --git a/Humpback.Smo/packages.config b/Humpback.Smo/packages.config index c2c64f1..16a53cb 100644 --- a/Humpback.Smo/packages.config +++ b/Humpback.Smo/packages.config @@ -3,16 +3,16 @@ - - + + - - - + + + - + @@ -20,7 +20,7 @@ - + diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index fdd47cc..afc227a 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -4,7 +4,7 @@ - + @@ -84,19 +84,19 @@ - + - + - + - + diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index 7d20a34..9220631 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -63,7 +63,7 @@ ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll - ..\packages\Microsoft.Data.SqlClient.5.1.2\lib\net462\Microsoft.Data.SqlClient.dll + ..\packages\Microsoft.Data.SqlClient.5.2.0\lib\net462\Microsoft.Data.SqlClient.dll ..\packages\Microsoft.Identity.Client.4.58.1\lib\net462\Microsoft.Identity.Client.dll @@ -71,14 +71,14 @@ ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.58.1\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll - - ..\packages\Microsoft.IdentityModel.Abstractions.7.0.3\lib\net472\Microsoft.IdentityModel.Abstractions.dll + + ..\packages\Microsoft.IdentityModel.Abstractions.7.4.0\lib\net472\Microsoft.IdentityModel.Abstractions.dll - - ..\packages\Microsoft.IdentityModel.JsonWebTokens.7.0.3\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll + + ..\packages\Microsoft.IdentityModel.JsonWebTokens.7.4.0\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll - - ..\packages\Microsoft.IdentityModel.Logging.7.0.3\lib\net472\Microsoft.IdentityModel.Logging.dll + + ..\packages\Microsoft.IdentityModel.Logging.7.4.0\lib\net472\Microsoft.IdentityModel.Logging.dll ..\packages\Microsoft.IdentityModel.Protocols.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.dll @@ -86,8 +86,8 @@ ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll - - ..\packages\Microsoft.IdentityModel.Tokens.7.0.3\lib\net472\Microsoft.IdentityModel.Tokens.dll + + ..\packages\Microsoft.IdentityModel.Tokens.7.4.0\lib\net472\Microsoft.IdentityModel.Tokens.dll @@ -106,8 +106,8 @@ - - ..\packages\System.IdentityModel.Tokens.Jwt.7.0.3\lib\net472\System.IdentityModel.Tokens.Jwt.dll + + ..\packages\System.IdentityModel.Tokens.Jwt.7.4.0\lib\net472\System.IdentityModel.Tokens.Jwt.dll ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll @@ -255,11 +255,11 @@ + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + - \ No newline at end of file diff --git a/Humpback/app.config b/Humpback/app.config index 75fe981..98fd2b1 100644 --- a/Humpback/app.config +++ b/Humpback/app.config @@ -7,7 +7,7 @@ - + @@ -87,19 +87,19 @@ - + - + - + - + diff --git a/Humpback/packages.config b/Humpback/packages.config index 1dd5c96..e228209 100644 --- a/Humpback/packages.config +++ b/Humpback/packages.config @@ -3,20 +3,20 @@ - - + + - - - + + + - + - + From 9868430c3ba0d740b9c227aa778f4fd946de7ed2 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Thu, 7 Mar 2024 15:47:30 -0500 Subject: [PATCH 39/49] case 40325 Updated non-vulnerable libraries. --- Humpback.Smo/Humpback.Smo.csproj | 79 +++++++++++++++------------- Humpback.Smo/app.config | 12 ++--- Humpback.Smo/packages.config | 15 +++--- Humpback.Tests/Humpback.Tests.csproj | 74 ++++++++++++++++++-------- Humpback.Tests/app.config | 8 +++ Humpback.Tests/packages.config | 29 ++++++---- 6 files changed, 132 insertions(+), 85 deletions(-) diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index 4d265a8..f487f20 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -33,8 +33,8 @@ 4 - - ..\packages\Azure.Core.1.36.0\lib\net472\Azure.Core.dll + + ..\packages\Azure.Core.1.38.0\lib\net472\Azure.Core.dll ..\packages\Azure.Identity.1.10.4\lib\netstandard2.0\Azure.Identity.dll @@ -46,13 +46,13 @@ ..\packages\Microsoft.Data.SqlClient.5.2.0\lib\net462\Microsoft.Data.SqlClient.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.Data.Tools.Sql.BatchParser.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.Data.Tools.Sql.BatchParser.dll - - ..\packages\Microsoft.Identity.Client.4.58.1\lib\net462\Microsoft.Identity.Client.dll + + ..\packages\Microsoft.Identity.Client.4.59.0\lib\net462\Microsoft.Identity.Client.dll - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.58.1\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.59.0\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll ..\packages\Microsoft.IdentityModel.Abstractions.7.4.0\lib\net472\Microsoft.IdentityModel.Abstractions.dll @@ -63,11 +63,11 @@ ..\packages\Microsoft.IdentityModel.Logging.7.4.0\lib\net472\Microsoft.IdentityModel.Logging.dll - - ..\packages\Microsoft.IdentityModel.Protocols.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.dll + + ..\packages\Microsoft.IdentityModel.Protocols.7.4.0\lib\net472\Microsoft.IdentityModel.Protocols.dll - - ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll + + ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.7.4.0\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll ..\packages\Microsoft.IdentityModel.Tokens.7.4.0\lib\net472\Microsoft.IdentityModel.Tokens.dll @@ -79,79 +79,79 @@ ..\packages\Microsoft.SqlServer.Assessment.Authoring.1.1.0\lib\net462\Microsoft.SqlServer.Assessment.Types.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.ConnectionInfo.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.ConnectionInfo.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Dmf.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Dmf.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Dmf.Common.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Dmf.Common.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.Assessment.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.Assessment.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.Collector.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.Collector.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.CollectorEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.CollectorEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.HadrData.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.HadrData.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.HadrModel.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.HadrModel.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.RegisteredServers.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.RegisteredServers.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.Sdk.Sfc.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.Sdk.Sfc.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.SqlScriptPublish.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.SqlScriptPublish.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.XEvent.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.XEvent.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScoped.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScoped.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScopedEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScopedEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Management.XEventEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.XEventEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.PolicyEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.PolicyEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.RegSvrEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.RegSvrEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.ServiceBrokerEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.ServiceBrokerEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Smo.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Smo.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.Smo.Notebook.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Smo.Notebook.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.SmoExtended.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.SmoExtended.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.SqlClrProvider.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.SqlClrProvider.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.SqlEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.SqlEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.SqlWmiManagement.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.SqlWmiManagement.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.21.0\lib\net462\Microsoft.SqlServer.WmiEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.WmiEnum.dll ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -160,6 +160,9 @@ ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + ..\packages\System.ClientModel.1.0.0\lib\netstandard2.0\System.ClientModel.dll + @@ -250,8 +253,8 @@ ..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll - - ..\packages\System.Text.Json.8.0.0\lib\net462\System.Text.Json.dll + + ..\packages\System.Text.Json.8.0.2\lib\net462\System.Text.Json.dll ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/Humpback.Smo/app.config b/Humpback.Smo/app.config index 68b3c05..f8d7862 100644 --- a/Humpback.Smo/app.config +++ b/Humpback.Smo/app.config @@ -8,7 +8,7 @@ - + @@ -36,7 +36,7 @@ - + @@ -64,11 +64,11 @@ - + - + @@ -76,11 +76,11 @@ - + - + diff --git a/Humpback.Smo/packages.config b/Humpback.Smo/packages.config index 16a53cb..0f904f0 100644 --- a/Humpback.Smo/packages.config +++ b/Humpback.Smo/packages.config @@ -1,23 +1,24 @@  - + - - + + - - + + - + + @@ -40,7 +41,7 @@ - + \ No newline at end of file diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index 56c2348..b539a62 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -1,8 +1,10 @@  - - - + + + + + Debug @@ -41,24 +43,42 @@ 4 + + ..\packages\Microsoft.ApplicationInsights.2.22.0\lib\net46\Microsoft.ApplicationInsights.dll + + + ..\packages\Microsoft.Testing.Extensions.Telemetry.1.0.2\lib\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.dll + + + ..\packages\Microsoft.Testing.Extensions.TrxReport.Abstractions.1.0.2\lib\netstandard2.0\Microsoft.Testing.Extensions.TrxReport.Abstractions.dll + + + ..\packages\Microsoft.Testing.Extensions.VSTestBridge.1.0.2\lib\netstandard2.0\Microsoft.Testing.Extensions.VSTestBridge.dll + + + ..\packages\Microsoft.Testing.Platform.MSBuild.1.0.2\lib\netstandard2.0\Microsoft.Testing.Platform.dll + + + ..\packages\Microsoft.Testing.Platform.MSBuild.1.0.2\lib\netstandard2.0\Microsoft.Testing.Platform.MSBuild.dll + - ..\packages\Microsoft.TestPlatform.ObjectModel.17.8.0\lib\net462\Microsoft.TestPlatform.CoreUtilities.dll + ..\packages\Microsoft.TestPlatform.ObjectModel.17.9.0\lib\net462\Microsoft.TestPlatform.CoreUtilities.dll - ..\packages\Microsoft.TestPlatform.ObjectModel.17.8.0\lib\net462\Microsoft.TestPlatform.PlatformAbstractions.dll + ..\packages\Microsoft.TestPlatform.ObjectModel.17.9.0\lib\net462\Microsoft.TestPlatform.PlatformAbstractions.dll - ..\packages\Microsoft.TestPlatform.ObjectModel.17.8.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll + ..\packages\Microsoft.TestPlatform.ObjectModel.17.9.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll - ..\packages\MSTest.TestFramework.3.1.1\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll + ..\packages\MSTest.TestFramework.3.2.2\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - ..\packages\MSTest.TestFramework.3.1.1\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll + ..\packages\MSTest.TestFramework.3.2.2\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - - ..\packages\NuGet.Frameworks.6.8.0\lib\net472\NuGet.Frameworks.dll + + ..\packages\NuGet.Frameworks.6.9.1\lib\net472\NuGet.Frameworks.dll @@ -69,9 +89,13 @@ + + ..\packages\System.Diagnostics.DiagnosticSource.8.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll @@ -88,14 +112,14 @@ ..\packages\xunit.abstractions.2.0.3\lib\net35\xunit.abstractions.dll - - ..\packages\xunit.assert.2.6.4\lib\netstandard1.1\xunit.assert.dll + + ..\packages\xunit.assert.2.7.0\lib\netstandard1.1\xunit.assert.dll - - ..\packages\xunit.extensibility.core.2.6.4\lib\net452\xunit.core.dll + + ..\packages\xunit.extensibility.core.2.7.0\lib\net452\xunit.core.dll - - ..\packages\xunit.extensibility.execution.2.6.4\lib\net452\xunit.execution.desktop.dll + + ..\packages\xunit.extensibility.execution.2.7.0\lib\net452\xunit.execution.desktop.dll @@ -132,12 +156,16 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - + + + + + + + + - - + + + \ No newline at end of file diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index afc227a..c55bd89 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -106,6 +106,14 @@ + + + + + + + + \ No newline at end of file diff --git a/Humpback.Tests/packages.config b/Humpback.Tests/packages.config index d3bfe92..29ccf8b 100644 --- a/Humpback.Tests/packages.config +++ b/Humpback.Tests/packages.config @@ -1,22 +1,29 @@  + - - - - + + + + + + + + + + - + - - - - - - + + + + + + \ No newline at end of file From f39514d006f7a26ca8f3585425d70e265f3c5ca2 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 5 Aug 2024 08:35:46 -0400 Subject: [PATCH 40/49] Updated azure configurations. --- Humpback.Smo/Humpback.Smo.csproj | 16 ++++++++-------- Humpback.Smo/app.config | 6 +++--- Humpback.Smo/packages.config | 8 ++++---- Humpback.Tests/app.config | 6 +++--- Humpback/Humpback.csproj | 19 +++++++++++-------- Humpback/app.config | 6 +++--- Humpback/packages.config | 9 +++++---- 7 files changed, 37 insertions(+), 33 deletions(-) diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index f487f20..468f364 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -33,11 +33,11 @@ 4 - - ..\packages\Azure.Core.1.38.0\lib\net472\Azure.Core.dll + + ..\packages\Azure.Core.1.42.0\lib\net472\Azure.Core.dll - - ..\packages\Azure.Identity.1.10.4\lib\netstandard2.0\Azure.Identity.dll + + ..\packages\Azure.Identity.1.12.0\lib\netstandard2.0\Azure.Identity.dll ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll @@ -48,11 +48,11 @@ ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.Data.Tools.Sql.BatchParser.dll - - ..\packages\Microsoft.Identity.Client.4.59.0\lib\net462\Microsoft.Identity.Client.dll + + ..\packages\Microsoft.Identity.Client.4.61.3\lib\net462\Microsoft.Identity.Client.dll - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.59.0\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.61.3\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll ..\packages\Microsoft.IdentityModel.Abstractions.7.4.0\lib\net472\Microsoft.IdentityModel.Abstractions.dll diff --git a/Humpback.Smo/app.config b/Humpback.Smo/app.config index f8d7862..123ec7c 100644 --- a/Humpback.Smo/app.config +++ b/Humpback.Smo/app.config @@ -8,7 +8,7 @@ - + @@ -68,11 +68,11 @@ - + - + diff --git a/Humpback.Smo/packages.config b/Humpback.Smo/packages.config index 0f904f0..d8f766b 100644 --- a/Humpback.Smo/packages.config +++ b/Humpback.Smo/packages.config @@ -1,12 +1,12 @@  - - + + - - + + diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index c55bd89..645e6c8 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -8,7 +8,7 @@ - + @@ -68,11 +68,11 @@ - + - + diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index 9220631..32894a3 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -50,11 +50,11 @@ 4 - - ..\packages\Azure.Core.1.36.0\lib\net472\Azure.Core.dll + + ..\packages\Azure.Core.1.42.0\lib\net472\Azure.Core.dll - - ..\packages\Azure.Identity.1.10.4\lib\netstandard2.0\Azure.Identity.dll + + ..\packages\Azure.Identity.1.12.0\lib\netstandard2.0\Azure.Identity.dll ..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll @@ -65,11 +65,11 @@ ..\packages\Microsoft.Data.SqlClient.5.2.0\lib\net462\Microsoft.Data.SqlClient.dll - - ..\packages\Microsoft.Identity.Client.4.58.1\lib\net462\Microsoft.Identity.Client.dll + + ..\packages\Microsoft.Identity.Client.4.61.3\lib\net462\Microsoft.Identity.Client.dll - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.58.1\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.61.3\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll ..\packages\Microsoft.IdentityModel.Abstractions.7.4.0\lib\net472\Microsoft.IdentityModel.Abstractions.dll @@ -93,6 +93,9 @@ ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + ..\packages\System.ClientModel.1.0.0\lib\netstandard2.0\System.ClientModel.dll + diff --git a/Humpback/app.config b/Humpback/app.config index 98fd2b1..57778ae 100644 --- a/Humpback/app.config +++ b/Humpback/app.config @@ -11,7 +11,7 @@ - + @@ -71,11 +71,11 @@ - + - + diff --git a/Humpback/packages.config b/Humpback/packages.config index e228209..b97dfd9 100644 --- a/Humpback/packages.config +++ b/Humpback/packages.config @@ -1,12 +1,12 @@  - - + + - - + + @@ -14,6 +14,7 @@ + From b7da1b5bdbaf7f9b98fe61eec51e1156d6f4be17 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 5 Aug 2024 08:36:22 -0400 Subject: [PATCH 41/49] updated xunit --- Humpback.Tests/Humpback.Tests.csproj | 24 ++++++++++++++---------- Humpback.Tests/packages.config | 12 ++++++------ 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index b539a62..2eae285 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -1,7 +1,7 @@  + - @@ -112,14 +112,14 @@ ..\packages\xunit.abstractions.2.0.3\lib\net35\xunit.abstractions.dll - - ..\packages\xunit.assert.2.7.0\lib\netstandard1.1\xunit.assert.dll + + ..\packages\xunit.assert.2.9.0\lib\netstandard1.1\xunit.assert.dll - - ..\packages\xunit.extensibility.core.2.7.0\lib\net452\xunit.core.dll + + ..\packages\xunit.extensibility.core.2.9.0\lib\net452\xunit.core.dll - - ..\packages\xunit.extensibility.execution.2.7.0\lib\net452\xunit.execution.desktop.dll + + ..\packages\xunit.extensibility.execution.2.9.0\lib\net452\xunit.execution.desktop.dll @@ -150,6 +150,10 @@ Humpback + + + + @@ -161,11 +165,11 @@ - - + + - + \ No newline at end of file diff --git a/Humpback.Tests/packages.config b/Humpback.Tests/packages.config index 29ccf8b..14aed6d 100644 --- a/Humpback.Tests/packages.config +++ b/Humpback.Tests/packages.config @@ -18,12 +18,12 @@ - + - - - - - + + + + + \ No newline at end of file From 06128ce6377e5b476c29838ae0cd17fe1147771c Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 5 Aug 2024 08:37:46 -0400 Subject: [PATCH 42/49] updated system libraries. --- Humpback.Smo/Humpback.Smo.csproj | 32 ++++++++++++++-------------- Humpback.Smo/app.config | 16 +++++++------- Humpback.Smo/packages.config | 16 +++++++------- Humpback.Tests/Humpback.Tests.csproj | 18 ++++++++-------- Humpback.Tests/app.config | 16 +++++++------- Humpback.Tests/packages.config | 8 +++---- Humpback/Humpback.csproj | 32 ++++++++++++++-------------- Humpback/app.config | 16 +++++++------- Humpback/packages.config | 16 +++++++------- 9 files changed, 85 insertions(+), 85 deletions(-) diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index 468f364..758f5c8 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -54,14 +54,14 @@ ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.61.3\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll - - ..\packages\Microsoft.IdentityModel.Abstractions.7.4.0\lib\net472\Microsoft.IdentityModel.Abstractions.dll + + ..\packages\Microsoft.IdentityModel.Abstractions.8.0.1\lib\net472\Microsoft.IdentityModel.Abstractions.dll - - ..\packages\Microsoft.IdentityModel.JsonWebTokens.7.4.0\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll + + ..\packages\Microsoft.IdentityModel.JsonWebTokens.8.0.1\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll - - ..\packages\Microsoft.IdentityModel.Logging.7.4.0\lib\net472\Microsoft.IdentityModel.Logging.dll + + ..\packages\Microsoft.IdentityModel.Logging.8.0.1\lib\net472\Microsoft.IdentityModel.Logging.dll ..\packages\Microsoft.IdentityModel.Protocols.7.4.0\lib\net472\Microsoft.IdentityModel.Protocols.dll @@ -69,8 +69,8 @@ ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.7.4.0\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll - - ..\packages\Microsoft.IdentityModel.Tokens.7.4.0\lib\net472\Microsoft.IdentityModel.Tokens.dll + + ..\packages\Microsoft.IdentityModel.Tokens.8.0.1\lib\net472\Microsoft.IdentityModel.Tokens.dll ..\packages\Microsoft.SqlServer.Assessment.1.1.17\lib\net462\Microsoft.SqlServer.Assessment.dll @@ -170,14 +170,14 @@ - - ..\packages\System.Diagnostics.DiagnosticSource.8.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.8.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll - - ..\packages\System.IdentityModel.Tokens.Jwt.7.4.0\lib\net472\System.IdentityModel.Tokens.Jwt.dll + + ..\packages\System.IdentityModel.Tokens.Jwt.8.0.1\lib\net472\System.IdentityModel.Tokens.Jwt.dll ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll @@ -217,8 +217,8 @@ True - - ..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll + + ..\packages\System.Security.AccessControl.6.0.1\lib\net461\System.Security.AccessControl.dll ..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net463\System.Security.Cryptography.Algorithms.dll @@ -253,8 +253,8 @@ ..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll - - ..\packages\System.Text.Json.8.0.2\lib\net462\System.Text.Json.dll + + ..\packages\System.Text.Json.8.0.4\lib\net462\System.Text.Json.dll ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/Humpback.Smo/app.config b/Humpback.Smo/app.config index 123ec7c..99a2c0c 100644 --- a/Humpback.Smo/app.config +++ b/Humpback.Smo/app.config @@ -4,7 +4,7 @@ - + @@ -36,11 +36,11 @@ - + - + @@ -48,7 +48,7 @@ - + @@ -84,19 +84,19 @@ - + - + - + - + diff --git a/Humpback.Smo/packages.config b/Humpback.Smo/packages.config index d8f766b..264a1a4 100644 --- a/Humpback.Smo/packages.config +++ b/Humpback.Smo/packages.config @@ -7,12 +7,12 @@ - - - + + + - + @@ -20,8 +20,8 @@ - - + + @@ -31,7 +31,7 @@ - + @@ -41,7 +41,7 @@ - + \ No newline at end of file diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index 2eae285..6297a63 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -1,7 +1,7 @@  + - @@ -63,13 +63,13 @@ ..\packages\Microsoft.Testing.Platform.MSBuild.1.0.2\lib\netstandard2.0\Microsoft.Testing.Platform.MSBuild.dll - ..\packages\Microsoft.TestPlatform.ObjectModel.17.9.0\lib\net462\Microsoft.TestPlatform.CoreUtilities.dll + ..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.TestPlatform.CoreUtilities.dll - ..\packages\Microsoft.TestPlatform.ObjectModel.17.9.0\lib\net462\Microsoft.TestPlatform.PlatformAbstractions.dll + ..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.TestPlatform.PlatformAbstractions.dll - ..\packages\Microsoft.TestPlatform.ObjectModel.17.9.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll + ..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll ..\packages\MSTest.TestFramework.3.2.2\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll @@ -77,8 +77,8 @@ ..\packages\MSTest.TestFramework.3.2.2\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - - ..\packages\NuGet.Frameworks.6.9.1\lib\net472\NuGet.Frameworks.dll + + ..\packages\NuGet.Frameworks.6.10.1\lib\net472\NuGet.Frameworks.dll @@ -89,8 +89,8 @@ - - ..\packages\System.Diagnostics.DiagnosticSource.8.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.8.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll @@ -165,9 +165,9 @@ - + diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index 645e6c8..16c3607 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -4,7 +4,7 @@ - + @@ -36,11 +36,11 @@ - + - + @@ -48,7 +48,7 @@ - + @@ -84,19 +84,19 @@ - + - + - + - + diff --git a/Humpback.Tests/packages.config b/Humpback.Tests/packages.config index 14aed6d..87b1731 100644 --- a/Humpback.Tests/packages.config +++ b/Humpback.Tests/packages.config @@ -7,13 +7,13 @@ - + - + - + @@ -25,5 +25,5 @@ - + \ No newline at end of file diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index 32894a3..c2a14f1 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -71,14 +71,14 @@ ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.61.3\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll - - ..\packages\Microsoft.IdentityModel.Abstractions.7.4.0\lib\net472\Microsoft.IdentityModel.Abstractions.dll + + ..\packages\Microsoft.IdentityModel.Abstractions.8.0.1\lib\net472\Microsoft.IdentityModel.Abstractions.dll - - ..\packages\Microsoft.IdentityModel.JsonWebTokens.7.4.0\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll + + ..\packages\Microsoft.IdentityModel.JsonWebTokens.8.0.1\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll - - ..\packages\Microsoft.IdentityModel.Logging.7.4.0\lib\net472\Microsoft.IdentityModel.Logging.dll + + ..\packages\Microsoft.IdentityModel.Logging.8.0.1\lib\net472\Microsoft.IdentityModel.Logging.dll ..\packages\Microsoft.IdentityModel.Protocols.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.dll @@ -86,8 +86,8 @@ ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll - - ..\packages\Microsoft.IdentityModel.Tokens.7.4.0\lib\net472\Microsoft.IdentityModel.Tokens.dll + + ..\packages\Microsoft.IdentityModel.Tokens.8.0.1\lib\net472\Microsoft.IdentityModel.Tokens.dll @@ -103,14 +103,14 @@ - - ..\packages\System.Diagnostics.DiagnosticSource.8.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.8.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll - - ..\packages\System.IdentityModel.Tokens.Jwt.7.4.0\lib\net472\System.IdentityModel.Tokens.Jwt.dll + + ..\packages\System.IdentityModel.Tokens.Jwt.8.0.1\lib\net472\System.IdentityModel.Tokens.Jwt.dll ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll @@ -150,8 +150,8 @@ True - - ..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll + + ..\packages\System.Security.AccessControl.6.0.1\lib\net461\System.Security.AccessControl.dll ..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net463\System.Security.Cryptography.Algorithms.dll @@ -186,8 +186,8 @@ ..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll - - ..\packages\System.Text.Json.8.0.0\lib\net462\System.Text.Json.dll + + ..\packages\System.Text.Json.8.0.4\lib\net462\System.Text.Json.dll ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/Humpback/app.config b/Humpback/app.config index 57778ae..d701f53 100644 --- a/Humpback/app.config +++ b/Humpback/app.config @@ -7,7 +7,7 @@ - + @@ -39,11 +39,11 @@ - + - + @@ -51,7 +51,7 @@ - + @@ -87,19 +87,19 @@ - + - + - + - + diff --git a/Humpback/packages.config b/Humpback/packages.config index b97dfd9..f8e94c0 100644 --- a/Humpback/packages.config +++ b/Humpback/packages.config @@ -7,17 +7,17 @@ - - - + + + - + - - + + @@ -27,7 +27,7 @@ - + @@ -37,7 +37,7 @@ - + \ No newline at end of file From 7a5443fae15daa02ade7050faa7f6da9f5a6131a Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Mon, 5 Aug 2024 08:39:10 -0400 Subject: [PATCH 43/49] case 41609 Updated packages, re-ran unit tests. --- Humpback.Smo/Humpback.Smo.csproj | 70 ++++++++++++++-------------- Humpback.Smo/app.config | 8 ++-- Humpback.Smo/packages.config | 12 ++--- Humpback.Tests/Humpback.Tests.csproj | 46 +++++++++--------- Humpback.Tests/app.config | 8 ++-- Humpback.Tests/packages.config | 14 +++--- Humpback/Humpback.csproj | 18 +++---- Humpback/app.config | 8 ++-- Humpback/packages.config | 10 ++-- 9 files changed, 98 insertions(+), 96 deletions(-) diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index 758f5c8..2198306 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -43,16 +43,16 @@ ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll - ..\packages\Microsoft.Data.SqlClient.5.2.0\lib\net462\Microsoft.Data.SqlClient.dll + ..\packages\Microsoft.Data.SqlClient.5.2.1\lib\net462\Microsoft.Data.SqlClient.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.Data.Tools.Sql.BatchParser.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.Data.Tools.Sql.BatchParser.dll - - ..\packages\Microsoft.Identity.Client.4.61.3\lib\net462\Microsoft.Identity.Client.dll + + ..\packages\Microsoft.Identity.Client.4.62.0\lib\net472\Microsoft.Identity.Client.dll - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.61.3\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.62.0\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll ..\packages\Microsoft.IdentityModel.Abstractions.8.0.1\lib\net472\Microsoft.IdentityModel.Abstractions.dll @@ -63,11 +63,11 @@ ..\packages\Microsoft.IdentityModel.Logging.8.0.1\lib\net472\Microsoft.IdentityModel.Logging.dll - - ..\packages\Microsoft.IdentityModel.Protocols.7.4.0\lib\net472\Microsoft.IdentityModel.Protocols.dll + + ..\packages\Microsoft.IdentityModel.Protocols.8.0.1\lib\net472\Microsoft.IdentityModel.Protocols.dll - - ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.7.4.0\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll + + ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.8.0.1\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll ..\packages\Microsoft.IdentityModel.Tokens.8.0.1\lib\net472\Microsoft.IdentityModel.Tokens.dll @@ -79,79 +79,79 @@ ..\packages\Microsoft.SqlServer.Assessment.Authoring.1.1.0\lib\net462\Microsoft.SqlServer.Assessment.Types.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.ConnectionInfo.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.ConnectionInfo.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Dmf.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Dmf.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Dmf.Common.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Dmf.Common.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.Assessment.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.Assessment.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.Collector.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.Collector.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.CollectorEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.CollectorEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.HadrData.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.HadrData.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.HadrModel.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.HadrModel.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.RegisteredServers.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.RegisteredServers.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.Sdk.Sfc.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.Sdk.Sfc.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.SqlScriptPublish.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.SqlScriptPublish.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.XEvent.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.XEvent.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScoped.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScoped.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScopedEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScopedEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Management.XEventEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.XEventEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.PolicyEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.PolicyEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.RegSvrEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.RegSvrEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.ServiceBrokerEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.ServiceBrokerEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Smo.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Smo.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.Smo.Notebook.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Smo.Notebook.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.SmoExtended.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.SmoExtended.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.SqlClrProvider.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.SqlClrProvider.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.SqlEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.SqlEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.SqlWmiManagement.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.SqlWmiManagement.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.170.23.0\lib\net462\Microsoft.SqlServer.WmiEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.WmiEnum.dll ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll diff --git a/Humpback.Smo/app.config b/Humpback.Smo/app.config index 99a2c0c..691eaf1 100644 --- a/Humpback.Smo/app.config +++ b/Humpback.Smo/app.config @@ -8,7 +8,7 @@ - + @@ -64,7 +64,7 @@ - + @@ -76,11 +76,11 @@ - + - + diff --git a/Humpback.Smo/packages.config b/Humpback.Smo/packages.config index 264a1a4..bbf3d08 100644 --- a/Humpback.Smo/packages.config +++ b/Humpback.Smo/packages.config @@ -3,19 +3,19 @@ - + - - + + - - + + - + diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index 6297a63..a1afe06 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -1,10 +1,11 @@  + + + + - - - Debug @@ -47,20 +48,20 @@ ..\packages\Microsoft.ApplicationInsights.2.22.0\lib\net46\Microsoft.ApplicationInsights.dll - - ..\packages\Microsoft.Testing.Extensions.Telemetry.1.0.2\lib\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.dll + + ..\packages\Microsoft.Testing.Extensions.Telemetry.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.dll - - ..\packages\Microsoft.Testing.Extensions.TrxReport.Abstractions.1.0.2\lib\netstandard2.0\Microsoft.Testing.Extensions.TrxReport.Abstractions.dll + + ..\packages\Microsoft.Testing.Extensions.TrxReport.Abstractions.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.TrxReport.Abstractions.dll - - ..\packages\Microsoft.Testing.Extensions.VSTestBridge.1.0.2\lib\netstandard2.0\Microsoft.Testing.Extensions.VSTestBridge.dll + + ..\packages\Microsoft.Testing.Extensions.VSTestBridge.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.VSTestBridge.dll - - ..\packages\Microsoft.Testing.Platform.MSBuild.1.0.2\lib\netstandard2.0\Microsoft.Testing.Platform.dll + + ..\packages\Microsoft.Testing.Platform.1.3.1\lib\netstandard2.0\Microsoft.Testing.Platform.dll - - ..\packages\Microsoft.Testing.Platform.MSBuild.1.0.2\lib\netstandard2.0\Microsoft.Testing.Platform.MSBuild.dll + + ..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\lib\netstandard2.0\Microsoft.Testing.Platform.MSBuild.dll ..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.TestPlatform.CoreUtilities.dll @@ -72,10 +73,10 @@ ..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll - ..\packages\MSTest.TestFramework.3.2.2\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll + ..\packages\MSTest.TestFramework.3.5.0\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - ..\packages\MSTest.TestFramework.3.2.2\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll + ..\packages\MSTest.TestFramework.3.5.0\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll ..\packages\NuGet.Frameworks.6.10.1\lib\net472\NuGet.Frameworks.dll @@ -160,16 +161,17 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - + + + + + + - - + + \ No newline at end of file diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index 16c3607..5feab6c 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -8,7 +8,7 @@ - + @@ -64,7 +64,7 @@ - + @@ -76,11 +76,11 @@ - + - + diff --git a/Humpback.Tests/packages.config b/Humpback.Tests/packages.config index 87b1731..8ac6f33 100644 --- a/Humpback.Tests/packages.config +++ b/Humpback.Tests/packages.config @@ -2,14 +2,14 @@ - - - - - + + + + + - - + + diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index c2a14f1..cf2ed47 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -63,13 +63,13 @@ ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll - ..\packages\Microsoft.Data.SqlClient.5.2.0\lib\net462\Microsoft.Data.SqlClient.dll + ..\packages\Microsoft.Data.SqlClient.5.2.1\lib\net462\Microsoft.Data.SqlClient.dll - - ..\packages\Microsoft.Identity.Client.4.61.3\lib\net462\Microsoft.Identity.Client.dll + + ..\packages\Microsoft.Identity.Client.4.62.0\lib\net472\Microsoft.Identity.Client.dll - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.61.3\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.62.0\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll ..\packages\Microsoft.IdentityModel.Abstractions.8.0.1\lib\net472\Microsoft.IdentityModel.Abstractions.dll @@ -80,11 +80,11 @@ ..\packages\Microsoft.IdentityModel.Logging.8.0.1\lib\net472\Microsoft.IdentityModel.Logging.dll - - ..\packages\Microsoft.IdentityModel.Protocols.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.dll + + ..\packages\Microsoft.IdentityModel.Protocols.8.0.1\lib\net472\Microsoft.IdentityModel.Protocols.dll - - ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.7.0.3\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll + + ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.8.0.1\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll ..\packages\Microsoft.IdentityModel.Tokens.8.0.1\lib\net472\Microsoft.IdentityModel.Tokens.dll diff --git a/Humpback/app.config b/Humpback/app.config index d701f53..93d7a7d 100644 --- a/Humpback/app.config +++ b/Humpback/app.config @@ -11,7 +11,7 @@ - + @@ -67,7 +67,7 @@ - + @@ -79,11 +79,11 @@ - + - + diff --git a/Humpback/packages.config b/Humpback/packages.config index f8e94c0..a225bed 100644 --- a/Humpback/packages.config +++ b/Humpback/packages.config @@ -3,15 +3,15 @@ - + - - + + - - + + From 538ca8e3b5f0f60f3c90db8c8724cc88ae2b03a2 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 26 Nov 2024 08:56:41 -0500 Subject: [PATCH 44/49] case 42381 updated vulnerable packages. --- Humpback.Smo/Humpback.Smo.csproj | 4 ++-- Humpback.Smo/app.config | 2 +- Humpback.Smo/packages.config | 2 +- Humpback.Tests/app.config | 2 +- Humpback/Humpback.csproj | 4 ++-- Humpback/app.config | 2 +- Humpback/packages.config | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index 2198306..ad4181d 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -253,8 +253,8 @@ ..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll - - ..\packages\System.Text.Json.8.0.4\lib\net462\System.Text.Json.dll + + ..\packages\System.Text.Json.8.0.5\lib\net462\System.Text.Json.dll ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/Humpback.Smo/app.config b/Humpback.Smo/app.config index 691eaf1..db16fb0 100644 --- a/Humpback.Smo/app.config +++ b/Humpback.Smo/app.config @@ -36,7 +36,7 @@ - + diff --git a/Humpback.Smo/packages.config b/Humpback.Smo/packages.config index bbf3d08..83a43ea 100644 --- a/Humpback.Smo/packages.config +++ b/Humpback.Smo/packages.config @@ -41,7 +41,7 @@ - + \ No newline at end of file diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index 5feab6c..e9d9497 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -36,7 +36,7 @@ - + diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index cf2ed47..f771b4c 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -186,8 +186,8 @@ ..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll - - ..\packages\System.Text.Json.8.0.4\lib\net462\System.Text.Json.dll + + ..\packages\System.Text.Json.8.0.5\lib\net462\System.Text.Json.dll ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll diff --git a/Humpback/app.config b/Humpback/app.config index 93d7a7d..1d893c2 100644 --- a/Humpback/app.config +++ b/Humpback/app.config @@ -39,7 +39,7 @@ - + diff --git a/Humpback/packages.config b/Humpback/packages.config index a225bed..4a93a45 100644 --- a/Humpback/packages.config +++ b/Humpback/packages.config @@ -37,7 +37,7 @@ - + \ No newline at end of file From b1e96091ab298c8bbe2a262e114b9feaf765548e Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 26 Nov 2024 09:00:18 -0500 Subject: [PATCH 45/49] Updated xunit packages. --- Humpback.Tests/Humpback.Tests.csproj | 24 ++++++++++++------------ Humpback.Tests/packages.config | 12 ++++++------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index a1afe06..2202e01 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -1,11 +1,11 @@  + - Debug @@ -113,14 +113,14 @@ ..\packages\xunit.abstractions.2.0.3\lib\net35\xunit.abstractions.dll - - ..\packages\xunit.assert.2.9.0\lib\netstandard1.1\xunit.assert.dll + + ..\packages\xunit.assert.2.9.2\lib\netstandard1.1\xunit.assert.dll - - ..\packages\xunit.extensibility.core.2.9.0\lib\net452\xunit.core.dll + + ..\packages\xunit.extensibility.core.2.9.2\lib\net452\xunit.core.dll - - ..\packages\xunit.extensibility.execution.2.9.0\lib\net452\xunit.execution.desktop.dll + + ..\packages\xunit.extensibility.execution.2.9.2\lib\net452\xunit.execution.desktop.dll @@ -152,8 +152,8 @@ - - + + @@ -161,8 +161,6 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - @@ -170,8 +168,10 @@ + + - + \ No newline at end of file diff --git a/Humpback.Tests/packages.config b/Humpback.Tests/packages.config index 8ac6f33..41fe6d7 100644 --- a/Humpback.Tests/packages.config +++ b/Humpback.Tests/packages.config @@ -18,12 +18,12 @@ - + - - - - - + + + + + \ No newline at end of file From 7593621914ea362797476e6f5d984ec9c7a2ab0a Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 26 Nov 2024 09:03:35 -0500 Subject: [PATCH 46/49] Updated System libraries. --- Humpback.Smo/Humpback.Smo.csproj | 155 +++++++++--------- .../ILLink.Descriptors.LibraryBuild.xml | 8 + Humpback.Smo/app.config | 50 +++--- Humpback.Smo/packages.config | 52 +++--- Humpback.Tests/Humpback.Tests.csproj | 85 +++++----- .../ILLink.Descriptors.LibraryBuild.xml | 8 + Humpback.Tests/app.config | 54 +++--- Humpback.Tests/packages.config | 30 ++-- Humpback/Humpback.csproj | 103 ++++++------ .../ILLink.Descriptors.LibraryBuild.xml | 8 + Humpback/app.config | 50 +++--- Humpback/packages.config | 50 +++--- 12 files changed, 369 insertions(+), 284 deletions(-) create mode 100644 Humpback.Smo/ILLink/ILLink.Descriptors.LibraryBuild.xml create mode 100644 Humpback.Tests/ILLink/ILLink.Descriptors.LibraryBuild.xml create mode 100644 Humpback/ILLink/ILLink.Descriptors.LibraryBuild.xml diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index ad4181d..3042a43 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -39,38 +39,41 @@ ..\packages\Azure.Identity.1.12.0\lib\netstandard2.0\Azure.Identity.dll - - ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\packages\Microsoft.Bcl.TimeProvider.9.0.0\lib\net462\Microsoft.Bcl.TimeProvider.dll - ..\packages\Microsoft.Data.SqlClient.5.2.1\lib\net462\Microsoft.Data.SqlClient.dll + ..\packages\Microsoft.Data.SqlClient.5.2.2\lib\net462\Microsoft.Data.SqlClient.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.Data.Tools.Sql.BatchParser.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.Data.Tools.Sql.BatchParser.dll - - ..\packages\Microsoft.Identity.Client.4.62.0\lib\net472\Microsoft.Identity.Client.dll + + ..\packages\Microsoft.Identity.Client.4.66.2\lib\net472\Microsoft.Identity.Client.dll - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.62.0\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.66.2\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll - - ..\packages\Microsoft.IdentityModel.Abstractions.8.0.1\lib\net472\Microsoft.IdentityModel.Abstractions.dll + + ..\packages\Microsoft.IdentityModel.Abstractions.8.2.1\lib\net472\Microsoft.IdentityModel.Abstractions.dll - - ..\packages\Microsoft.IdentityModel.JsonWebTokens.8.0.1\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll + + ..\packages\Microsoft.IdentityModel.JsonWebTokens.8.2.1\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll - - ..\packages\Microsoft.IdentityModel.Logging.8.0.1\lib\net472\Microsoft.IdentityModel.Logging.dll + + ..\packages\Microsoft.IdentityModel.Logging.8.2.1\lib\net472\Microsoft.IdentityModel.Logging.dll - - ..\packages\Microsoft.IdentityModel.Protocols.8.0.1\lib\net472\Microsoft.IdentityModel.Protocols.dll + + ..\packages\Microsoft.IdentityModel.Protocols.8.2.1\lib\net472\Microsoft.IdentityModel.Protocols.dll - - ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.8.0.1\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll + + ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.8.2.1\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll - - ..\packages\Microsoft.IdentityModel.Tokens.8.0.1\lib\net472\Microsoft.IdentityModel.Tokens.dll + + ..\packages\Microsoft.IdentityModel.Tokens.8.2.1\lib\net472\Microsoft.IdentityModel.Tokens.dll ..\packages\Microsoft.SqlServer.Assessment.1.1.17\lib\net462\Microsoft.SqlServer.Assessment.dll @@ -79,105 +82,105 @@ ..\packages\Microsoft.SqlServer.Assessment.Authoring.1.1.0\lib\net462\Microsoft.SqlServer.Assessment.Types.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.ConnectionInfo.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.ConnectionInfo.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Dmf.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Dmf.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Dmf.Common.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Dmf.Common.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.Assessment.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.Assessment.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.Collector.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.Collector.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.CollectorEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.CollectorEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.HadrData.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.HadrData.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.HadrModel.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.HadrModel.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.RegisteredServers.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.RegisteredServers.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.Sdk.Sfc.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.Sdk.Sfc.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.SqlScriptPublish.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.SqlScriptPublish.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.XEvent.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.XEvent.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScoped.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.XEventDbScoped.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.XEventDbScopedEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.XEventDbScopedEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Management.XEventEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Management.XEventEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.PolicyEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.PolicyEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.RegSvrEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.RegSvrEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.ServiceBrokerEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.ServiceBrokerEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Smo.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Smo.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.Smo.Notebook.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.Smo.Notebook.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.SmoExtended.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.SmoExtended.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.SqlClrProvider.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.SqlClrProvider.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.SqlEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.SqlEnum.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.SqlWmiManagement.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.SqlWmiManagement.dll - ..\packages\Microsoft.SqlServer.SqlManagementObjects.171.30.0\lib\net462\Microsoft.SqlServer.WmiEnum.dll + ..\packages\Microsoft.SqlServer.SqlManagementObjects.172.52.0\lib\net472\Microsoft.SqlServer.WmiEnum.dll ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll - - ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + ..\packages\System.Buffers.4.6.0\lib\net462\System.Buffers.dll - - ..\packages\System.ClientModel.1.0.0\lib\netstandard2.0\System.ClientModel.dll + + ..\packages\System.ClientModel.1.2.1\lib\netstandard2.0\System.ClientModel.dll - - ..\packages\System.Configuration.ConfigurationManager.8.0.0\lib\net462\System.Configuration.ConfigurationManager.dll + + ..\packages\System.Configuration.ConfigurationManager.9.0.0\lib\net462\System.Configuration.ConfigurationManager.dll - - ..\packages\System.Diagnostics.DiagnosticSource.8.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.9.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll - - ..\packages\System.IdentityModel.Tokens.Jwt.8.0.1\lib\net472\System.IdentityModel.Tokens.Jwt.dll + + ..\packages\System.IdentityModel.Tokens.Jwt.8.2.1\lib\net472\System.IdentityModel.Tokens.Jwt.dll ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll @@ -187,11 +190,14 @@ ..\packages\System.IO.FileSystem.AccessControl.5.0.0\lib\net461\System.IO.FileSystem.AccessControl.dll - - ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + ..\packages\System.IO.Pipelines.9.0.0\lib\net462\System.IO.Pipelines.dll + + + ..\packages\System.Memory.4.6.0\lib\net462\System.Memory.dll - - ..\packages\System.Memory.Data.8.0.0\lib\net462\System.Memory.Data.dll + + ..\packages\System.Memory.Data.9.0.0\lib\net462\System.Memory.Data.dll @@ -200,16 +206,16 @@ True - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Numerics.Vectors.4.6.0\lib\net462\System.Numerics.Vectors.dll ..\packages\System.Runtime.4.3.1\lib\net462\System.Runtime.dll True True - - ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.1.0\lib\net462\System.Runtime.CompilerServices.Unsafe.dll ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll @@ -235,29 +241,29 @@ True True - - ..\packages\System.Security.Cryptography.ProtectedData.8.0.0\lib\net462\System.Security.Cryptography.ProtectedData.dll + + ..\packages\System.Security.Cryptography.ProtectedData.9.0.0\lib\net462\System.Security.Cryptography.ProtectedData.dll ..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll True True - - ..\packages\System.Security.Permissions.8.0.0\lib\net462\System.Security.Permissions.dll + + ..\packages\System.Security.Permissions.9.0.0\lib\net462\System.Security.Permissions.dll ..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll - - ..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll + + ..\packages\System.Text.Encodings.Web.9.0.0\lib\net462\System.Text.Encodings.Web.dll - - ..\packages\System.Text.Json.8.0.5\lib\net462\System.Text.Json.dll + + ..\packages\System.Text.Json.9.0.0\lib\net462\System.Text.Json.dll - - ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + ..\packages\System.Threading.Tasks.Extensions.4.6.0\lib\net462\System.Threading.Tasks.Extensions.dll @@ -282,6 +288,9 @@ + + + diff --git a/Humpback.Smo/ILLink/ILLink.Descriptors.LibraryBuild.xml b/Humpback.Smo/ILLink/ILLink.Descriptors.LibraryBuild.xml new file mode 100644 index 0000000..a42d7f0 --- /dev/null +++ b/Humpback.Smo/ILLink/ILLink.Descriptors.LibraryBuild.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Humpback.Smo/app.config b/Humpback.Smo/app.config index db16fb0..5c05ea6 100644 --- a/Humpback.Smo/app.config +++ b/Humpback.Smo/app.config @@ -4,11 +4,11 @@ - + - + @@ -16,15 +16,15 @@ - + - + - + @@ -32,19 +32,19 @@ - + - + - + - + @@ -52,19 +52,19 @@ - + - + - + - + @@ -76,27 +76,39 @@ - + - + - + - + - + - + + + + + + + + + + + + + diff --git a/Humpback.Smo/packages.config b/Humpback.Smo/packages.config index 83a43ea..c0ddc58 100644 --- a/Humpback.Smo/packages.config +++ b/Humpback.Smo/packages.config @@ -2,46 +2,48 @@ - - + + + - - - - - - - - + + + + + + + + - + - - - - - + + + + + - - + + + - + - + - + - + - - - + + + \ No newline at end of file diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index 2202e01..ad2e573 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -1,10 +1,10 @@  + + + + - - - - @@ -48,65 +48,65 @@ ..\packages\Microsoft.ApplicationInsights.2.22.0\lib\net46\Microsoft.ApplicationInsights.dll - - ..\packages\Microsoft.Testing.Extensions.Telemetry.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.dll + + ..\packages\Microsoft.Testing.Extensions.Telemetry.1.4.3\lib\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.dll - - ..\packages\Microsoft.Testing.Extensions.TrxReport.Abstractions.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.TrxReport.Abstractions.dll + + ..\packages\Microsoft.Testing.Extensions.TrxReport.Abstractions.1.4.3\lib\netstandard2.0\Microsoft.Testing.Extensions.TrxReport.Abstractions.dll - - ..\packages\Microsoft.Testing.Extensions.VSTestBridge.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.VSTestBridge.dll + + ..\packages\Microsoft.Testing.Extensions.VSTestBridge.1.4.3\lib\netstandard2.0\Microsoft.Testing.Extensions.VSTestBridge.dll - - ..\packages\Microsoft.Testing.Platform.1.3.1\lib\netstandard2.0\Microsoft.Testing.Platform.dll + + ..\packages\Microsoft.Testing.Platform.1.4.3\lib\netstandard2.0\Microsoft.Testing.Platform.dll - - ..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\lib\netstandard2.0\Microsoft.Testing.Platform.MSBuild.dll + + ..\packages\Microsoft.Testing.Platform.MSBuild.1.4.3\lib\netstandard2.0\Microsoft.Testing.Platform.MSBuild.dll - ..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.TestPlatform.CoreUtilities.dll + ..\packages\Microsoft.TestPlatform.ObjectModel.17.12.0\lib\net462\Microsoft.TestPlatform.CoreUtilities.dll - ..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.TestPlatform.PlatformAbstractions.dll + ..\packages\Microsoft.TestPlatform.ObjectModel.17.12.0\lib\net462\Microsoft.TestPlatform.PlatformAbstractions.dll - ..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll + ..\packages\Microsoft.TestPlatform.ObjectModel.17.12.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll - ..\packages\MSTest.TestFramework.3.5.0\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll + ..\packages\MSTest.TestFramework.3.6.3\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - ..\packages\MSTest.TestFramework.3.5.0\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll + ..\packages\MSTest.TestFramework.3.6.3\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll ..\packages\NuGet.Frameworks.6.10.1\lib\net472\NuGet.Frameworks.dll - - ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + ..\packages\System.Buffers.4.6.0\lib\net462\System.Buffers.dll - - ..\packages\System.Collections.Immutable.8.0.0\lib\net462\System.Collections.Immutable.dll + + ..\packages\System.Collections.Immutable.9.0.0\lib\net462\System.Collections.Immutable.dll - - ..\packages\System.Diagnostics.DiagnosticSource.8.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.9.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll - - ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + ..\packages\System.Memory.4.6.0\lib\net462\System.Memory.dll - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Numerics.Vectors.4.6.0\lib\net462\System.Numerics.Vectors.dll - - ..\packages\System.Reflection.Metadata.8.0.0\lib\net462\System.Reflection.Metadata.dll + + ..\packages\System.Reflection.Metadata.9.0.0\lib\net462\System.Reflection.Metadata.dll - - ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.1.0\lib\net462\System.Runtime.CompilerServices.Unsafe.dll @@ -155,6 +155,9 @@ + + + @@ -162,16 +165,16 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - + + + + + + - - + + \ No newline at end of file diff --git a/Humpback.Tests/ILLink/ILLink.Descriptors.LibraryBuild.xml b/Humpback.Tests/ILLink/ILLink.Descriptors.LibraryBuild.xml new file mode 100644 index 0000000..a42d7f0 --- /dev/null +++ b/Humpback.Tests/ILLink/ILLink.Descriptors.LibraryBuild.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index e9d9497..26f85aa 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -4,11 +4,11 @@ - + - + @@ -16,15 +16,15 @@ - + - + - + @@ -32,19 +32,19 @@ - + - + - + - + @@ -52,19 +52,19 @@ - + - + - + - + @@ -76,31 +76,31 @@ - + - + - + - + - + - + - + @@ -108,12 +108,24 @@ - + + + + + + + + + + + + + \ No newline at end of file diff --git a/Humpback.Tests/packages.config b/Humpback.Tests/packages.config index 41fe6d7..8dac4db 100644 --- a/Humpback.Tests/packages.config +++ b/Humpback.Tests/packages.config @@ -2,22 +2,22 @@ - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index f771b4c..59047f2 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -59,58 +59,61 @@ ..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll - - ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\packages\Microsoft.Bcl.TimeProvider.9.0.0\lib\net462\Microsoft.Bcl.TimeProvider.dll - ..\packages\Microsoft.Data.SqlClient.5.2.1\lib\net462\Microsoft.Data.SqlClient.dll + ..\packages\Microsoft.Data.SqlClient.5.2.2\lib\net462\Microsoft.Data.SqlClient.dll - - ..\packages\Microsoft.Identity.Client.4.62.0\lib\net472\Microsoft.Identity.Client.dll + + ..\packages\Microsoft.Identity.Client.4.66.2\lib\net472\Microsoft.Identity.Client.dll - - ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.62.0\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll + + ..\packages\Microsoft.Identity.Client.Extensions.Msal.4.66.2\lib\netstandard2.0\Microsoft.Identity.Client.Extensions.Msal.dll - - ..\packages\Microsoft.IdentityModel.Abstractions.8.0.1\lib\net472\Microsoft.IdentityModel.Abstractions.dll + + ..\packages\Microsoft.IdentityModel.Abstractions.8.2.1\lib\net472\Microsoft.IdentityModel.Abstractions.dll - - ..\packages\Microsoft.IdentityModel.JsonWebTokens.8.0.1\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll + + ..\packages\Microsoft.IdentityModel.JsonWebTokens.8.2.1\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll - - ..\packages\Microsoft.IdentityModel.Logging.8.0.1\lib\net472\Microsoft.IdentityModel.Logging.dll + + ..\packages\Microsoft.IdentityModel.Logging.8.2.1\lib\net472\Microsoft.IdentityModel.Logging.dll - - ..\packages\Microsoft.IdentityModel.Protocols.8.0.1\lib\net472\Microsoft.IdentityModel.Protocols.dll + + ..\packages\Microsoft.IdentityModel.Protocols.8.2.1\lib\net472\Microsoft.IdentityModel.Protocols.dll - - ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.8.0.1\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll + + ..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.8.2.1\lib\net472\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll - - ..\packages\Microsoft.IdentityModel.Tokens.8.0.1\lib\net472\Microsoft.IdentityModel.Tokens.dll + + ..\packages\Microsoft.IdentityModel.Tokens.8.2.1\lib\net472\Microsoft.IdentityModel.Tokens.dll - - ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + ..\packages\System.Buffers.4.6.0\lib\net462\System.Buffers.dll - - ..\packages\System.ClientModel.1.0.0\lib\netstandard2.0\System.ClientModel.dll + + ..\packages\System.ClientModel.1.2.1\lib\netstandard2.0\System.ClientModel.dll - - ..\packages\System.Configuration.ConfigurationManager.8.0.0\lib\net462\System.Configuration.ConfigurationManager.dll + + ..\packages\System.Configuration.ConfigurationManager.9.0.0\lib\net462\System.Configuration.ConfigurationManager.dll - - ..\packages\System.Diagnostics.DiagnosticSource.8.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.9.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll - - ..\packages\System.IdentityModel.Tokens.Jwt.8.0.1\lib\net472\System.IdentityModel.Tokens.Jwt.dll + + ..\packages\System.IdentityModel.Tokens.Jwt.8.2.1\lib\net472\System.IdentityModel.Tokens.Jwt.dll ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll @@ -120,11 +123,14 @@ ..\packages\System.IO.FileSystem.AccessControl.5.0.0\lib\net461\System.IO.FileSystem.AccessControl.dll - - ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + ..\packages\System.IO.Pipelines.9.0.0\lib\net462\System.IO.Pipelines.dll + + + ..\packages\System.Memory.4.6.0\lib\net462\System.Memory.dll - - ..\packages\System.Memory.Data.8.0.0\lib\net462\System.Memory.Data.dll + + ..\packages\System.Memory.Data.9.0.0\lib\net462\System.Memory.Data.dll @@ -133,16 +139,16 @@ True - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Numerics.Vectors.4.6.0\lib\net462\System.Numerics.Vectors.dll ..\packages\System.Runtime.4.3.1\lib\net462\System.Runtime.dll True True - - ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.1.0\lib\net462\System.Runtime.CompilerServices.Unsafe.dll ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll @@ -168,29 +174,29 @@ True True - - ..\packages\System.Security.Cryptography.ProtectedData.8.0.0\lib\net462\System.Security.Cryptography.ProtectedData.dll + + ..\packages\System.Security.Cryptography.ProtectedData.9.0.0\lib\net462\System.Security.Cryptography.ProtectedData.dll ..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll True True - - ..\packages\System.Security.Permissions.8.0.0\lib\net462\System.Security.Permissions.dll + + ..\packages\System.Security.Permissions.9.0.0\lib\net462\System.Security.Permissions.dll ..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll - - ..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll + + ..\packages\System.Text.Encodings.Web.9.0.0\lib\net462\System.Text.Encodings.Web.dll - - ..\packages\System.Text.Json.8.0.5\lib\net462\System.Text.Json.dll + + ..\packages\System.Text.Json.9.0.0\lib\net462\System.Text.Json.dll - - ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + ..\packages\System.Threading.Tasks.Extensions.4.6.0\lib\net462\System.Threading.Tasks.Extensions.dll @@ -257,6 +263,9 @@ false + + + diff --git a/Humpback/ILLink/ILLink.Descriptors.LibraryBuild.xml b/Humpback/ILLink/ILLink.Descriptors.LibraryBuild.xml new file mode 100644 index 0000000..a42d7f0 --- /dev/null +++ b/Humpback/ILLink/ILLink.Descriptors.LibraryBuild.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Humpback/app.config b/Humpback/app.config index 1d893c2..e71a253 100644 --- a/Humpback/app.config +++ b/Humpback/app.config @@ -7,11 +7,11 @@ - + - + @@ -19,15 +19,15 @@ - + - + - + @@ -35,19 +35,19 @@ - + - + - + - + @@ -55,19 +55,19 @@ - + - + - + - + @@ -79,27 +79,39 @@ - + - + - + - + - + - + + + + + + + + + + + + + diff --git a/Humpback/packages.config b/Humpback/packages.config index 4a93a45..98a9a96 100644 --- a/Humpback/packages.config +++ b/Humpback/packages.config @@ -2,42 +2,44 @@ - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - - + + + - + - + - + - + - - - + + + \ No newline at end of file From 7b16b99d73457c16423e85af356c4316c910e79f Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 26 Nov 2024 09:04:16 -0500 Subject: [PATCH 47/49] Updated Azure --- Humpback.Smo/Humpback.Smo.csproj | 8 ++++---- Humpback.Smo/app.config | 4 ++-- Humpback.Smo/packages.config | 4 ++-- Humpback.Tests/app.config | 4 ++-- Humpback/Humpback.csproj | 8 ++++---- Humpback/app.config | 4 ++-- Humpback/packages.config | 4 ++-- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Humpback.Smo/Humpback.Smo.csproj b/Humpback.Smo/Humpback.Smo.csproj index 3042a43..5b53ea7 100644 --- a/Humpback.Smo/Humpback.Smo.csproj +++ b/Humpback.Smo/Humpback.Smo.csproj @@ -33,11 +33,11 @@ 4 - - ..\packages\Azure.Core.1.42.0\lib\net472\Azure.Core.dll + + ..\packages\Azure.Core.1.44.1\lib\net472\Azure.Core.dll - - ..\packages\Azure.Identity.1.12.0\lib\netstandard2.0\Azure.Identity.dll + + ..\packages\Azure.Identity.1.13.1\lib\netstandard2.0\Azure.Identity.dll ..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll diff --git a/Humpback.Smo/app.config b/Humpback.Smo/app.config index 5c05ea6..fc98ecb 100644 --- a/Humpback.Smo/app.config +++ b/Humpback.Smo/app.config @@ -68,11 +68,11 @@ - + - + diff --git a/Humpback.Smo/packages.config b/Humpback.Smo/packages.config index c0ddc58..6a183f2 100644 --- a/Humpback.Smo/packages.config +++ b/Humpback.Smo/packages.config @@ -1,7 +1,7 @@  - - + + diff --git a/Humpback.Tests/app.config b/Humpback.Tests/app.config index 26f85aa..f0391df 100644 --- a/Humpback.Tests/app.config +++ b/Humpback.Tests/app.config @@ -68,11 +68,11 @@ - + - + diff --git a/Humpback/Humpback.csproj b/Humpback/Humpback.csproj index 59047f2..a619fe5 100644 --- a/Humpback/Humpback.csproj +++ b/Humpback/Humpback.csproj @@ -50,11 +50,11 @@ 4 - - ..\packages\Azure.Core.1.42.0\lib\net472\Azure.Core.dll + + ..\packages\Azure.Core.1.44.1\lib\net472\Azure.Core.dll - - ..\packages\Azure.Identity.1.12.0\lib\netstandard2.0\Azure.Identity.dll + + ..\packages\Azure.Identity.1.13.1\lib\netstandard2.0\Azure.Identity.dll ..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll diff --git a/Humpback/app.config b/Humpback/app.config index e71a253..e6369af 100644 --- a/Humpback/app.config +++ b/Humpback/app.config @@ -71,11 +71,11 @@ - + - + diff --git a/Humpback/packages.config b/Humpback/packages.config index 98a9a96..9bd1454 100644 --- a/Humpback/packages.config +++ b/Humpback/packages.config @@ -1,7 +1,7 @@  - - + + From ee6783fa76afef55024e3f91dede95571c9ff7b8 Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 26 Nov 2024 09:04:45 -0500 Subject: [PATCH 48/49] Updated Nuget --- Humpback.Tests/Humpback.Tests.csproj | 4 ++-- Humpback.Tests/packages.config | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index ad2e573..aea7fa6 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -78,8 +78,8 @@ ..\packages\MSTest.TestFramework.3.6.3\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - - ..\packages\NuGet.Frameworks.6.10.1\lib\net472\NuGet.Frameworks.dll + + ..\packages\NuGet.Frameworks.6.12.1\lib\net472\NuGet.Frameworks.dll diff --git a/Humpback.Tests/packages.config b/Humpback.Tests/packages.config index 8dac4db..9818404 100644 --- a/Humpback.Tests/packages.config +++ b/Humpback.Tests/packages.config @@ -10,7 +10,7 @@ - + From 8a2d1a5f9ca461f16a277f47df91305f775ddcee Mon Sep 17 00:00:00 2001 From: Peter Schmidt Date: Tue, 26 Nov 2024 09:06:55 -0500 Subject: [PATCH 49/49] Removed MSTests. --- Humpback.Tests/Humpback.Tests.csproj | 10 ---------- Humpback.Tests/packages.config | 2 -- 2 files changed, 12 deletions(-) diff --git a/Humpback.Tests/Humpback.Tests.csproj b/Humpback.Tests/Humpback.Tests.csproj index aea7fa6..69fd83d 100644 --- a/Humpback.Tests/Humpback.Tests.csproj +++ b/Humpback.Tests/Humpback.Tests.csproj @@ -1,6 +1,5 @@  - @@ -72,12 +71,6 @@ ..\packages\Microsoft.TestPlatform.ObjectModel.17.12.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll - - ..\packages\MSTest.TestFramework.3.6.3\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - - - ..\packages\MSTest.TestFramework.3.6.3\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - ..\packages\NuGet.Frameworks.6.12.1\lib\net472\NuGet.Frameworks.dll @@ -171,10 +164,7 @@ - - - \ No newline at end of file diff --git a/Humpback.Tests/packages.config b/Humpback.Tests/packages.config index 9818404..c83e4c7 100644 --- a/Humpback.Tests/packages.config +++ b/Humpback.Tests/packages.config @@ -8,8 +8,6 @@ - -