Just an update on things I have tried - If I use any DLL from v9 at all, VS 2019 crashes.
- Using the v8 folders, but updating all DLLs to v9 that had a match.
- Added all files from all 4 folders into one folder from the v9 download.
- Updated just the Registration tool path to v9
- Updated just the Bin tool path to v9 (Tried combined bin, just v9 bin, or all files folder I created)
Last ditch effort - I took the v8 BIN and started coping over DLLs one by one - to see which file crashed the program:
Microsoft.Xrm.Sdk.dll - GOOD
microsoft.xrm.sdk.workflow.dll - GOOD
Microsoft.Crm.Sdk.Proxy.dll - GOOD
Microsoft.IdentityModel.Clients.ActiveDirectory.dll - GOOD
Microsoft.Xrm.Sdk.Deployment.dll - GOOD
Microsoft.Xrm.Tooling.Connector.dll - CRASHED - Reverted back to v8.
Microsoft.Xrm.Tooling.CrmConnectControl.dll - CRASHED - Reverted back to v8.
Microsoft.Xrm.Tooling.Ui.Styles.dll - GOOD
Copied these 3 files which CRASHED it again.
CrmSvcUtil.exe
CrmSvcUtil.exe.config
CrmSvcUtil.xml
Manually updated CrmSvcUtil.exe.config. This file holds version information for the CrmSvcUtil.exe program which uses the DLLs i replaced above. The net result of the change is to use the v9 config file, but change the following 2 lines in the file back to use the old DLL versions:
CrmSvcUtil.xml - this file copies over fine and it doesn't crash. There's a lot of new entries in the v9 version of the file however referencing Microsoft.Crm.Services.Utility.{new namespace}.
After all of these changes - I copied the CrmSvcUtil.exe v9 into the BIN - still CRASHED.
This is the crash error in the event log:
Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.FormatException
at System.Version VersionResult.SetFailure(ParseFailureKind, System.String)
at System.Version.TryParseComponent(System.String, System.String, VersionResult ByRef, Int32 ByRef)
at System.Version.TryParseVersion(System.String, VersionResult ByRef)
at System.Version.Parse(System.String)
at System.Version..ctor(System.String)
at Microsoft.CrmDeveloperTools.OptionsWindow.PathSettingViewModel.ValidateSettings(System.String ByRef)
at Microsoft.CrmDeveloperTools.OptionsWindow.PathSettingDialogPage.OnApply(PageApplyEventArgs)
at Microsoft.VisualStudio.Shell.DialogPage DialogSubclass.WndProc(System.Windows.Forms.Message ByRef)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr)
at Microsoft.VisualStudio.Shell.Interop.IVsUIDataSource.Invoke(System.String, System.Object, System.Object ByRef)
at Microsoft.Internal.VisualStudio.PlatformUI.DataSource.Invoke(System.String, System.Object, System.Object ByRef)
at Microsoft.VisualStudio.PlatformUI.VsCommand.Execute(System.Object)
at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(System.Windows.Input.ICommandSource, Boolean)
at System.Windows.Controls.MenuItem.InvokeClickAfterRender(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
PluginRegistration Tool Directory:
I copied all the files over one by one - here are the files that caused a Crash:
PluginCommonControls.dll
CrmLibraries.dll
I removed this file:
Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll
Note - this is not really a solution yet. I can set my tools paths now in VS without it crashing using these 2 modified folders I created but mixing and matching the DLLs made it so I can't connect correctly to my CRM instance. I'm just putting this here in case this information helps someone troubleshoot.
Thanks.