DynamoDS / Dynamo

Open Source Graphical Programming for Design
https://dynamobim.org
Other
1.7k stars 628 forks source link

Unable to find sharpdx file when loading #4211

Closed MartinHenriksen closed 9 years ago

MartinHenriksen commented 9 years ago

when loading the DynamoSandbox.exe (v.0.8.1.974) a messagebox says it could not find "sharpdx_direct3d11_1_effects_x64.dll" - what it should be looking for is "sharpdx_direct3d11_effects_x64.dll". Compiling the .dll from the helixToolkit source gives the same file (without the extra '_1'). Workaround was to simply change the file name.

ikeough commented 9 years ago

@MartinHenriksen Thanks for the feedback. And I'm glad you took the time to investigate a workaround. This sounds suspiciously like, although the file is there, it's not finding it because of some sort of path resolution issue.

MartinHenriksen commented 9 years ago

@ikeough Yes I built it from source v.0.8.1.974 I do have a version from installer as well in .../Program Files/Dynamo 0.8/ - but there are no sharpdx files in this folder. In the .../bin/AnyCPU/Debug/ where I am running DynamoSandbox.exe from I have: sharpdx_direct3d11_effects_x64.dll sharpdx_direct3d11_effects_x86.dll and now also: sharpdx_direct3d11_1_effects_x64.dll (my confusion is why it is even asking for this file)

I am on a 64 bit win 7 pc (a dell latitude e4310), DirectX version 11

ikeough commented 9 years ago

The "stable" release of Dynamo (0.8), doesn't yet have the new visualization work. So, it's no surprise that the sharpdx files aren't in that install. Daily builds, like this one would have the sharpdx stuff in them. I would be interested to know if installing the daily build cures the problem. If it does, then there's something in the build process which is causing the problem.

MartinHenriksen commented 9 years ago

just installed the daily that you liked to in the default .../program files location. I removed the sharpdx_direct3d11_1_effects_x64.dll from the .../Debug folder and ran the DynamoSandbox.exe from same .../Debug folder and it did NOT complain! ...color me confused - but hey, it works

ikeough commented 9 years ago

And now I am confused too :(

You're saying that you ran your debug version after installing the daily build and it worked?

I'm going to close this, but please reopen if you can consistently recreate the problem.

MartinHenriksen commented 9 years ago

didn't notice your last reply... sorry about that. But yes that is right: installing the daily build made the debug version work (or at least no give the missing .dll error - did not test further) and in completely different locations

RodRecker commented 9 years ago

@jnealb @ikeough Do we have a defect ID for this?

jnealb commented 9 years ago

@MartinHenriksen @ikeough @RodRecker This is tracked with MAGN-7125.

RodRecker commented 9 years ago

Hi all - I had this problem earlier today using a Windows 8.1 machine. However, Microsoft released a number of updates to Windows 7 and 8.1 today and I no longer have this problem. Give that a try and let us know if that helps.

ikeough commented 9 years ago

@MartinHenriksen Can you try an updated daily build? We've added a step to the Dynamo installer to install the neccesssary DirectX components for the new visualization.

MartinHenriksen commented 9 years ago

@ikeough ok, so I updated to the latest daily build, compiled, ran the 'DXSETUP.EXE' and I did not get the missing .dll error!... But I did get the 'error registring effects' which is still a dx issue i think. The error report said:

Object reference not set to an instance of an object.

at >HelixToolkit.Wpf.SharpDX.Viewport3DX.HelixToolkit.Wpf.SharpDX.IRenderer.Render(RenderContext context) at HelixToolkit.Wpf.SharpDX.DPFCanvas.Render() at HelixToolkit.Wpf.SharpDX.DPFCanvas.UpdateAndRender() at HelixToolkit.Wpf.SharpDX.DPFCanvas.OnRendering(Object sender, EventArgs e) at System.EventHandler.Invoke(Object sender, EventArgs e) at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget) at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) at System.Windows.Application.RunInternal(Window window) at DynamoSandbox.Program.MakeStandaloneAndRun(String commandFilePath, DynamoViewModel& viewModel) in c:\Users\mhenriks\Documents\GitHub\Dynamo\src\DynamoSandbox\Program.cs:line 113 at DynamoSandbox.Program.Main(String[] args) in c:\Users\mhenriks\Documents\GitHub\Dynamo\src\DynamoSandbox\Program.cs:line 186

ikeough commented 9 years ago

@MartinHenriksen Turns out that the dll you originally referenced is not included and not referenced anywhere in the Helix component, but IS part of SharpDX. I've added the missing dll. Should show up in the daily build by tomorrow morning. Can you remove all Dynamos and try with the latest?

MartinHenriksen commented 9 years ago

@ikeough Tried your suggestion and I do see the files in the Debug-folder - But Dynamo still won't run. The first error message is the missing D3DCOMPILE.dll (I created a new issue for that #4367 ) and the sharpDX dlls are still not loaded giving the error that the files are not in the path (I think this is similar to #4256) I tried adding the Debug-folder path to the path env. variable but they are still not found. fyi; I use " %SystemRoot% " in the path env. variable in case % could be an issue

ikeough commented 9 years ago

@MartinHenriksen I believe this issue is solved with the fix that also fixed #4367. I'm closing now, but re-open if this is still an issue.