Okay, now I'm on 5.5.4. It is broken in SSMS v17. Here's the error I'm getting:
<entry>
<record>353</record>
<time>2017/04/26 20:49:11.063</time>
<type>Information</type>
<source>VisualStudio</source>
<description>Begin package load [SqlSourceControlPackage]</description>
<guid>{29D00CBC-D1F6-4F0A-9418-FC8454E3B4FE}</guid>
</entry>
<entry>
<record>354</record>
<time>2017/04/26 20:49:11.070</time>
<type>Error</type>
<source>VisualStudio</source>
<description>CreateInstance failed for package [SqlSourceControlPackage]Source: 'mscorlib' Description: Exception has been thrown by the target of an invocation.
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: Failed to compare two elements in the array. ---> System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.GetPriorityAttribute(Type type)
at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.OrderByPriority(Type x, Type y)
at System.Array.FunctorComparer`1.Compare(T x, T y)
at System.Collections.Generic.ArraySortHelper`1.SwapIfGreater(T[] keys, IComparer`1 comparer, Int32 a, Int32 b)
at System.Collections.Generic.ArraySortHelper`1.IntroSort(T[] keys, Int32 lo, Int32 hi, Int32 depthLimit, IComparer`1 comparer)
at System.Collections.Generic.ArraySortHelper`1.IntrospectiveSort(T[] keys, Int32 left, Int32 length, IComparer`1 comparer)
at System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer)
--- End of inner exception stack trace ---
at System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer)
at System.Array.Sort[T](T[] array, Int32 index, Int32 length, IComparer`1 comparer)
at System.Collections.Generic.List`1.Sort(Comparison`1 comparison)
at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.PriorityOrderedCompatibleTypes[T](IEnumerable`1 assemblyNames)
at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.TryGetBestCompatible[T](IEnumerable`1 assemblies, T& instance)
at RedGate.SQLSourceControl.Extension.SqlSourceControlPackage..ctor()
--- End of inner exception stack trace ---
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstanceFromInternal(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo)
at System.AppDomain.CreateInstanceFrom(String assemblyFile, String typeName)System.InvalidOperationException: Failed to compare two elements in the array. ---> System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.GetPriorityAttribute(Type type)
at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.OrderByPriority(Type x, Type y)
at System.Array.FunctorComparer`1.Compare(T x, T y)
at System.Collections.Generic.ArraySortHelper`1.SwapIfGreater(T[] keys, IComparer`1 comparer, Int32 a, Int32 b)
at System.Collections.Generic.ArraySortHelper`1.IntroSort(T[] keys, Int32 lo, Int32 hi, Int32 depthLimit, IComparer`1 comparer)
at System.Collections.Generic.ArraySortHelper`1.IntrospectiveSort(T[] keys, Int32 left, Int32 length, IComparer`1 comparer)
at System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer)
--- End of inner exception stack trace ---
at System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer)
at System.Array.Sort[T](T[] array, Int32 index, Int32 length, IComparer`1 comparer)
at System.Collections.Generic.List`1.Sort(Comparison`1 comparison)
at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.PriorityOrderedCompatibleTypes[T](IEnumerable`1 assemblyNames)
at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.TryGetBestCompatible[T](IEnumerable`1 assemblies, T& instance)
at RedGate.SQLSourceControl.Extension.SqlSourceControlPackage..ctor()System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.GetPriorityAttribute(Type type)
at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.OrderByPriority(Type x, Type y)
at System.Array.FunctorComparer`1.Compare(T x, T y)
at System.Collections.Generic.ArraySortHelper`1.SwapIfGreater(T[] keys, IComparer`1 comparer, Int32 a, Int32 b)
at System.Collections.Generic.ArraySortHelper`1.IntroSort(T[] keys, Int32 lo, Int32 hi, Int32 depthLimit, IComparer`1 comparer)
at System.Collections.Generic.ArraySortHelper`1.IntrospectiveSort(T[] keys, Int32 left, Int32 length, IComparer`1 comparer)
at System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer)</description>
<guid>{29D00CBC-D1F6-4F0A-9418-FC8454E3B4FE}</guid>
<hr>80004005 - E_FAIL</hr>
<errorinfo></errorinfo>
</entry>
I'm trying to get Source Control from the trial version I downed today to work on SSMS 17 and have the same problem. I want to upgrade Source Control from 5.4.2.4269, but I can't find out how. SSMS shows no trace of Source Control, and I can't upgrade through Programs and features on control panel (maybe I'm missing something obvious, most of my experience is with Mac and Linux). But more importantly, if this version has issues, wouldn't you want to put the latest release up for download in your demo version?
I've got the same issue as GuidoC already described above: the SQLToolbelt trial includes Source Control 5.4 and it doesn't work with SSMS 17. How do I upgrade it? Or why wouldn't you want to put the latest release up for download in your demo version?
There is one known issue - if you only have SSMS 17 installed (with no other versions of SSMS), that version of the installer will not recognise it and will refuse to install SQL Source Control. There is a fix for that problem available in version 5.6.1, in the Frequent Updates channel. You can download this version directly from the updates server
I can confirm that SSC 5.6.1 is working in SSMS 17. I had to uninstall the old version before installing or I'd get an error during the install about a file being locked.
Comments
It should work in v5.5.2 and later
Do let me know if you have any issues with that!
Warmly,
Technical Sales Engineer
Redgate Software
SSC v.5.4.2.4269
SSMS v.14.0.17099.0
SQL Source Control reports that there are no updates available. How do I get v.5.5?
<entry>
<record>353</record>
<time>2017/04/26 20:49:11.063</time>
<type>Information</type>
<source>VisualStudio</source>
<description>Begin package load [SqlSourceControlPackage]</description>
<guid>{29D00CBC-D1F6-4F0A-9418-FC8454E3B4FE}</guid>
</entry>
<entry>
<record>354</record>
<time>2017/04/26 20:49:11.070</time>
<type>Error</type>
<source>VisualStudio</source>
<description>CreateInstance failed for package [SqlSourceControlPackage]Source: 'mscorlib' Description: Exception has been thrown by the target of an invocation. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: Failed to compare two elements in the array. ---> System.InvalidOperationException: Sequence contains no elements at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source) at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.GetPriorityAttribute(Type type) at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.OrderByPriority(Type x, Type y) at System.Array.FunctorComparer`1.Compare(T x, T y) at System.Collections.Generic.ArraySortHelper`1.SwapIfGreater(T[] keys, IComparer`1 comparer, Int32 a, Int32 b) at System.Collections.Generic.ArraySortHelper`1.IntroSort(T[] keys, Int32 lo, Int32 hi, Int32 depthLimit, IComparer`1 comparer) at System.Collections.Generic.ArraySortHelper`1.IntrospectiveSort(T[] keys, Int32 left, Int32 length, IComparer`1 comparer) at System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer) --- End of inner exception stack trace --- at System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer) at System.Array.Sort[T](T[] array, Int32 index, Int32 length, IComparer`1 comparer) at System.Collections.Generic.List`1.Sort(Comparison`1 comparison) at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.PriorityOrderedCompatibleTypes[T](IEnumerable`1 assemblyNames) at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.TryGetBestCompatible[T](IEnumerable`1 assemblies, T& instance) at RedGate.SQLSourceControl.Extension.SqlSourceControlPackage..ctor() --- End of inner exception stack trace --- at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstanceFromInternal(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo) at System.AppDomain.CreateInstanceFrom(String assemblyFile, String typeName)System.InvalidOperationException: Failed to compare two elements in the array. ---> System.InvalidOperationException: Sequence contains no elements at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source) at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.GetPriorityAttribute(Type type) at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.OrderByPriority(Type x, Type y) at System.Array.FunctorComparer`1.Compare(T x, T y) at System.Collections.Generic.ArraySortHelper`1.SwapIfGreater(T[] keys, IComparer`1 comparer, Int32 a, Int32 b) at System.Collections.Generic.ArraySortHelper`1.IntroSort(T[] keys, Int32 lo, Int32 hi, Int32 depthLimit, IComparer`1 comparer) at System.Collections.Generic.ArraySortHelper`1.IntrospectiveSort(T[] keys, Int32 left, Int32 length, IComparer`1 comparer) at System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer) --- End of inner exception stack trace --- at System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer) at System.Array.Sort[T](T[] array, Int32 index, Int32 length, IComparer`1 comparer) at System.Collections.Generic.List`1.Sort(Comparison`1 comparison) at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.PriorityOrderedCompatibleTypes[T](IEnumerable`1 assemblyNames) at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.TryGetBestCompatible[T](IEnumerable`1 assemblies, T& instance) at RedGate.SQLSourceControl.Extension.SqlSourceControlPackage..ctor()System.InvalidOperationException: Sequence contains no elements at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source) at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.GetPriorityAttribute(Type type) at RedGate.SQLSourceControl.Engine.Utils.NinjectExtensions.BestTypeFinder.OrderByPriority(Type x, Type y) at System.Array.FunctorComparer`1.Compare(T x, T y) at System.Collections.Generic.ArraySortHelper`1.SwapIfGreater(T[] keys, IComparer`1 comparer, Int32 a, Int32 b) at System.Collections.Generic.ArraySortHelper`1.IntroSort(T[] keys, Int32 lo, Int32 hi, Int32 depthLimit, IComparer`1 comparer) at System.Collections.Generic.ArraySortHelper`1.IntrospectiveSort(T[] keys, Int32 left, Int32 length, IComparer`1 comparer) at System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer)</description>
<guid>{29D00CBC-D1F6-4F0A-9418-FC8454E3B4FE}</guid>
<hr>80004005 - E_FAIL</hr>
<errorinfo></errorinfo>
</entry>
There is one known issue - if you only have SSMS 17 installed (with no other versions of SSMS), that version of the installer will not recognise it and will refuse to install SQL Source Control. There is a fix for that problem available in version 5.6.1, in the Frequent Updates channel. You can download this version directly from the updates server
Redgate Software